pom.xml添加依赖
这里要注意,原本以为SpringBoot会自动匹配版本,所以一开始没添加,然后运行报错了java.lang.NoClassDefFoundError: com/sun/mail/util/MailLogger
查阅Stack Overflow后得到答案,需要明确版本并且版本要最新的,查maven依赖最新版本可在这里查
接下来的直接上代码
// 服务器地址:
String smtp = "SMTP.qq.com";
// 登录用户名:
String username = "xxx@qq.com";
// 登录口令:
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("xxxxx@qq.com"));
// 设置接收方地址:
message.setRecipient(Message.RecipientType.TO, new InternetAddress("xxx@qq.com"));
// 设置邮件主题:
message.setSubject("TEST", "UTF-8");
// 设置邮件正文:
message.setText("This is an test email", "UTF-8");
// 发送:
Transport.send(message);
涉及到的类
效果如图
如果想要发html格式的话,只需做小许调整
将message.setText(body, “UTF-8”);改为
message.setText(body, “UTF-8”, “html”);
body是类似<h1>Hello</h1><p>Hi, xxx</p>
这样的HTML字符串
如需对发邮件功能封装成类需要自行设计
欢迎大家交流和指正