1、导入依赖(pom.xml)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
2、修改配置(application.properties)
spring.mail.host=smtp.qq.com
spring.mail.username=XXXXXX@qq.com
spring.mail.password=XXXXXXXX
spring.mail.default-encoding=utf-8
spring.mail.port=587
3、邮件服务接口(IMailService.java)
public interface IMailService {
void sendSimpleMail(String subject, String content, String... to);
void sendHtmlMail(String subject, String content, String... to);
void sendAttachmentsMail(String subject, String content, String[] filePaths, String... to);
}
4、邮件服务类(MailServiceImpl.java)
@Service("mailService")
public class MailServiceImpl implements IMailService {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
private JavaMailSender mailSender;
@Value("${spring.mail.username}")
private String from;
@Override
public void sendSimpleMail(String subject, String content, String... to) {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(from);
message.setTo(to);
message.setSubject(subject);
message.setText(content);
try {
mailSender.send(message);
this.logger.info("邮件发送成功!");
} catch (Exception e) {
this.logger.error("邮件发送失败!", e);
}
}
@Override
public void sendHtmlMail(String subject, String content, String... to) {
try {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true);
mailSender.send(message);
this.logger.info("邮件发送成功!");
} catch (Exception e) {
this.logger.error("邮件发送失败!", e);
}
}
@Override
public void sendAttachmentsMail(String subject, String content, String[] filePaths, String... to) {
try {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content);
if (Objects.nonNull(filePaths)) {
for (String filePath : filePaths) {
FileSystemResource file = new FileSystemResource(new File(filePath));
String fileName = filePath.substring(filePath.lastIndexOf(File.separator));
helper.addAttachment(fileName, file);
}
}
mailSender.send(message);
this.logger.info("邮件发送成功!");
} catch (
Exception e) {
this.logger.error("邮件发送失败!", e);
}
}
}
5、Html模板(emailVerifyCodeTemplate.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>
6、测试类(MailServiceTest.java)
@Service("mailService")
public class MailServiceImpl implements IMailService {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
private JavaMailSender javaMailSender;
}