- pom.xml依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
- application.yml配置文件
spring:
mail:
host: smtp.qq.com
username: xxx@qq.com
password: xxx
default-encoding: utf-8
mail:
fromMail:
addr: xxx@qq.com
- 编写MailService类以及其实现类
public interface MailService {
/**
* 发送邮件
* @param to 邮件收件人
* @param subject 邮件主题
* @param verifyCode 邮件验证码
*/
public void sendMail(String to, String subject, String verifyCode);
}
@Service
public class MailServiceImpl implements MailService {
@Autowired
private JavaMailSender mailSender;
//邮件发件人
@Value("${mail.fromMail.addr}")
private String from;
@Autowired
TemplateEngine templateEngine;
@Override
public void sendMail(String to, String subject, String verifyCode) {
//创建邮件正文
Context context = new Context();
context.setVariable("verifyCode", verifyCode);
//将模块引擎内容解析成html字符串
String emailContent = templateEngine.process("emailTemplate", context);
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(from);
message.setTo(to);
message.setSubject(subject);
message.setText(emailContent);
try {
mailSender.send(message);
//logger.info("简单邮件已经发送。");
} catch (Exception e) {
//logger.error("发送简单邮件时发生异常!", e);
}
}
}
- 创建模板,在resources目录下创建templates文件夹,在templates文件夹下创建emailTemplate.html,邮件发送的模板页面
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
您好,本次验证的验证码为:[[${verifyCode}]]
</body>
</html>
- 测试类
@Autowired
private MailService mailService;
@Test
public void sendTemplateMail() {
//发送邮件
mailService.sendMail("xxx@qq.com","主题:这是模板邮件","123456");
}