SpringBoot 发送邮件
Posted jrookie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot 发送邮件相关的知识,希望对你有一定的参考价值。
准备
1. 引入依赖
<!-- 发送邮件依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2. 在application.yml中配置必要的属性
PS: 在这里因为使用的是QQ邮箱,而QQ邮箱的软件收发服务是默认关闭的,需要手动打开
进入邮箱->账户设置
spring:
mail:
host: smtp.qq.com
username: 邮箱用户名
password: 密码或验证码
properties:
mail:
smtp:
auth: true
starttls:
enable: true
required: true
3. 发送简单邮件
@Autowired
private JavaMailSender mailSender;
@Test
public void sendSimpleMail() throws Exception {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom("邮件发送方");
message.setTo("邮件接收方");
message.setSubject("主题");
message.setText("正文");
mailSender.send(message);
}
4. 发送模板邮件(使用thymeleaf来做)
1. 引入thymeleaf依赖
<!-- 引入thymeleaf模块 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
2. 配置thymeleaf
# thymeleaf 参数配置
spring:
thymeleaf:
cache: true
prefix: classpath:/templates/
suffix: .html
encoding: UTF-8
servlet:
content-type: text/html
check-template-location: true
enabled: true
mode: HTML5
3. 编写模板
<html xmlns:th="http://www.w3.org/1999/xhtml">
<body>
<p>
吾儿,<span th:text="${username}">错误</span>,最后一次测试了!!!
</p>
</body>
</html>
4. 编写发送方法
@Autowired
private TemplateEngine templateEngine;
@Autowired
private JavaMailSender mailSender;
public void sendTemplateMail() throws Exception{
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message);
helper.setFrom("发送方");
helper.setTo("接收方");
helper.setSubject("主题");
Context context = new Context();
context.setVariable("username","name");
String emailContent = templateEngine.process("template",context);
helper.setText(emailContent,true);
mailSender.send(message);
}
以上是关于SpringBoot 发送邮件的主要内容,如果未能解决你的问题,请参考以下文章