发送邮件 Spring Email
开启自己邮箱的POP3/SMTP服务
导入spring mail 依赖
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-mail -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>2.6.3</version>
</dependency>
邮箱参数配置 applicateion.properties
#MailProperties
spring.mail.host=smtp.sina.com //新浪 对应邮件服务厂家域名 QQ --- smtp.qq.com
spring.mail.port=465
spring.mail.username=xxxxxxxxxxxx
spring.mail.password=xxxxxxxxxxx //若出现连接错误,可替换为 认证码,去服务厂家获取
#ssl安全连接
spring.mail.properties.mail.smtp.ssl.enable=true
邮件工具类
/**
* @Author 孑然
*
* 发送邮件类
*/
@Component
public class MailClient {
public static final Logger logger = LoggerFactory.getLogger(MailClient.class);
@Resource
private JavaMailSender mailSender;
@Value("${spring.mail.username}")
private String from;
/**
* 发送邮件
* @param to 发送目标
* @param subject 邮件标题
* @param content 邮件内容
*/
public void sendMail(String to, String subject, String content) {
try {
// 构建邮件
MimeMessage message = mailSender.createMimeMessage();
//使用邮件助手构建邮件内容
MimeMessageHelper helper = new MimeMessageHelper(message);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true);//true代表可发送html格式
//发送邮件
mailSender.send(helper.getMimeMessage());
} catch (MessagingException e) {
logger.error("发送邮件失败" + e.getMessage());
}
}
}
测试发送邮件 文本邮件和html邮件
/**
* @Author 孑然
*/
@SpringBootTest
public class MailTest {
@Autowired
private MailClient mailClient;
/**
* Thymeleaf模板引擎
*/
@Resource
private TemplateEngine templateEngine;
@Test
public void testTextMail(){
mailClient.sendMail("xxxxxxx@qq.com", "TEST", "你好啊!");
}
@Test
public void testHtmlMail() {
//向html中传入数据
Context context = new Context();
context.setVariable("username", "sunday");
//构建邮件内容
String content = templateEngine.process("/mail/demo", context);
System.out.println(content);
//发送邮件
mailClient.sendMail("xxxxxxx@qq.com", "html邮件", content);
}
}
/static/mail/demo 目录下的 demo.html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>邮件示例</title>
</head>
<body>
<p>欢迎你,<span style="color: red" th:text="${username}"></span>!</p>
</body>
</html>