后端 Java发送邮件 JavaMail 模版 20241128测试可用

配置授权码

依赖

复制代码
<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>javax.mail-api</artifactId>
    <version>1.5.5</version>
</dependency>
<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.5.4</version>
</dependency>

工具类

复制代码
package com.dduo.dduoj.utils;

import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;

import com.sun.mail.util.MailSSLSocketFactory;

/**
 * @author Dduo
 * @Title SendEmailService
 */

public class JavaMailUtils {

    // 仅供测试
    public static void main(String[] args) throws Exception {
            send_email("我是标题", "12345", "1507319255@qq.com");
    }

    /**
     * 传入的参数是 邮件地址 和 发送的内容 和 发送的标题
     *
     * @param subject 标题
     * @param text 正文内容
     * @param mail 收件人地址
     * @throws Exception
     */
    public static void send_email(String subject, String text, String mail) throws Exception {
        // 如果jdk版本太高 要加这个
        System.setProperty("java.net.preferIPv4Stack", "true");
        System.setProperty("https.protocols", "TLSv1.2");
        // 配置邮件发送的相关属性
        Properties props = new Properties();
        props.setProperty("mail.debug", "true");
        props.setProperty("mail.smtp.auth", "true");
        props.setProperty("mail.smtp.host", "smtp.qq.com");
        props.setProperty("mail.smtp.port", "465");
        props.setProperty("mail.transport.protocol", "smtp");
        props.setProperty("mail.smtp.ssl.enable", "true");
        // 设置SSL连接的工厂
        MailSSLSocketFactory msf = new MailSSLSocketFactory();
        msf.setTrustAllHosts(true);
        props.put("mail.smtp.ssl.socketFactory", msf);
        // 创建邮箱会话

        // todo 填写发发件人的QQ邮箱和授权码
        Session session = Session.getInstance(props, new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("1732446549@qq.com", "mxytgpalxokeedjd");
            }
        });

        // 创建邮件消息对象
        Message message = new MimeMessage(session);
        message.setSubject(subject);
        message.setText(text);
        message.setFrom(new InternetAddress("1732446549@qq.com"));
        // 处理收件人部分,单个收件人和多个收件人的处理方式
        message.setRecipient(Message.RecipientType.TO, new InternetAddress(mail));
        // 获取邮件传输对象
        Transport transport = session.getTransport();
        transport.connect();
        // 发送邮件
        transport.sendMessage(message, message.getAllRecipients());
        // 关闭连接
        transport.close();
    }

}
相关推荐
m0_720245019 小时前
1543.统计好三元组(简单)
开发语言·算法
EntyIU10 小时前
NFS离线部署
java
叠层归一研究院10 小时前
AGI 系统(八):符号范畴嵌入函子 — SymCat ↪ C_M107 严格化
c语言·开发语言·人工智能·算法·transformer·agi
祈禾10 小时前
Redis三大缓存问题与分布式锁
运维·数据库·redis·笔记·分布式·缓存
明朝百晓生11 小时前
Deep RL learning[2026/8]
开发语言·javascript·人工智能
DBA小马哥11 小时前
关系型数据库核心概念手册:SQL、事务与存储引擎的技术脉络
数据库·sql
丫头,冲鸭!!!11 小时前
记账网站3-连数据库
数据库·个人开发
weixin-a1530030831611 小时前
python-装饰器
开发语言·python
灯澜忆梦12 小时前
【MySQL12】进阶篇 | SQL优化
数据库·sql·mysql·性能优化
我的xiaodoujiao12 小时前
快速学习Python基础知识详细图文教程17--类型注解和断点调试
开发语言·python·学习·测试工具