SpringBoot2.2.2 发送邮件

pom.xml添加依赖
SpringBoot2.2.2 发送邮件_第1张图片
这里要注意,原本以为SpringBoot会自动匹配版本,所以一开始没添加,然后运行报错了java.lang.NoClassDefFoundError: com/sun/mail/util/MailLogger
查阅Stack Overflow后得到答案,需要明确版本并且版本要最新的,查maven依赖最新版本可在这里查
接下来的直接上代码

// 服务器地址:
        String smtp = "SMTP.qq.com";
        // 登录用户名:
        String username = "[email protected]";
        // 登录口令:
        String password = "xxxxx";
        // 连接到SMTP服务器587端口:
        Properties props = new Properties();
        props.put("mail.smtp.host", smtp); // SMTP主机名
        props.put("mail.smtp.port", "465"); // 主机端口号
        props.put("mail.smtp.auth", "true"); // 是否需要用户认证
        // 启动SSL:
        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        props.put("mail.smtp.socketFactory.port", "465");
        Session session = Session.getInstance(props, new Authenticator() {
            // 用户名+口令认证:
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(username, password);
            }
        });
        // 设置debug模式便于调试:
        session.setDebug(true);
        MimeMessage message = new MimeMessage(session);
        // 设置发送方地址:
        message.setFrom(new InternetAddress("[email protected]"));
        // 设置接收方地址:
        message.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));
        // 设置邮件主题:
        message.setSubject("TEST", "UTF-8");
        // 设置邮件正文:
        message.setText("This is an test email", "UTF-8");
        // 发送:
        Transport.send(message);

涉及到的类
SpringBoot2.2.2 发送邮件_第2张图片
效果如图
SpringBoot2.2.2 发送邮件_第3张图片
如果想要发html格式的话,只需做小许调整
将message.setText(body, “UTF-8”);改为
message.setText(body, “UTF-8”, “html”);
body是类似

Hello

Hi, xxx

这样的HTML字符串

如需对发邮件功能封装成类需要自行设计

欢迎大家交流和指正

你可能感兴趣的:(开发,后台开发,java,SpringBoot,javamail,发送邮件)