springboot 发送邮件
1.加入依赖
<!-- 邮件 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!-- 邮件 -->
2.向application.properties中添加
######企业邮箱########
spring.mail.host=smtp.mxhichina.com
spring.mail.username=xxxx@begoit.com
spring.mail.password=xxx123456
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
3.邮件发送工具类,例子发送重置密码
/**
*
* 邮件发送工具类
*
*/
@Component
public class SendEmailUtils {
@Autowired
private JavaMailSender javaMailSender; // 注入JavaMailSender
@Value("${spring.mail.username}")
private String username; // 发送邮件者
/**
* 发送邮件
*
* @param title
* 标题
* @param titleWithName
* 是否在标题后添加名称
* @param content
* 邮件内容
* @param contentWithName
* 是否在内容后添加名称
* @param email
* 接收者的邮箱
*/
private void sendNormalEmail(String title, boolean titleWithName, String content, boolean contentWithName,
String email) {
String dName = "VMI云平台";
try {
MimeMessage mimeMessage = javaMailSender.createMimeMessage(); // 创建要发送的消息
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setFrom(new InternetAddress(username, dName, "UTF-8")); // 设置发送者是谁
helper.setTo(email); // 接收者邮箱
title = titleWithName ? dName + title : title; // 标题内容
helper.setSubject(title); // 发送邮件的标题
if (contentWithName) {
content += "<p style='text-align:right'>" + dName + "</p>";
content += "<p style='text-align:right'>" + RandomTools.curDate("yyyy-MM-dd HH:mm:ss") + "</p>";
}
helper.setText(content, true); // 发送的内容 是否为HTML
javaMailSender.send(mimeMessage);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 发送重置密码
*
* @param email
* 接收者的邮箱
* @param newPassword
* 新密码
*
*/
public void sendResetPassword(final String email, String newPassword) {
final StringBuffer sb = new StringBuffer(); // 实例化一个StringBuffer
sb.append("<div style='line-height:16px'><p style='text-align: left; font-size: 16px;'>"
+ "亲爱的<a href='#'; style='color:rgb(0,112,192)'>" + email + "</a>您好!</p>").append("<br/>")
.append("<p style='text-align: left; font-size: 16px;'>您的新密码为:</p>")
.append("<p style='text-align: left; font-size: 18px; color: rgb(0,112,192)'>" + newPassword + "</p>")
.append("<br/>").append("<p style='text-align: left; font-size: 16px;'>请使用新密码登录;</p>").append("<br/>")
.append("<p style='text-align: left; font-size: 16px;'>如非本人操作,请忽略。</p>")
.append("<p style='text-align: left; font-size: 16px;'>系统发信,请勿回复。</p>").append("<br/>")
.append("<p style='text-align: left; font-size: 16px;'>云平台开发团队</p></div>");
new Thread(new Runnable() {
@Override
public void run() {
sendNormalEmail("用户邮箱验证", true, sb.toString(), false, email);
}
}).start();
}
}
4.调用发送重置密码的sendResetPassword(femail, newPassword)方法即可,这里省略

本文介绍了如何在SpringBoot项目中实现邮件发送功能,包括添加相关依赖、配置属性以及创建邮件发送工具类,并以重置密码邮件为例进行详细说明。
2814

被折叠的 条评论
为什么被折叠?



