使用Spring Boot发送邮件需要满足下面几个步骤:
- 添加发送邮件的依赖
- 配置邮件发送端的基本信息
- 添加邮件发送工具服务类
- 在Controller中实现通过调用REST发送邮件
1. 添加发送邮件的依赖
<!--添加邮件发送的依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2. 配置邮件发送端的基本信息
在项目的application.properties文件中进行配置:
# 发送邮件的设置
spring.mail.host=smtp.163.com
spring.mail.username=发信邮箱
spring.mail.password=密码或者授权码
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
需要注意的是,对于QQ邮箱,首先要开启账户的smtp服务,要经过一大堆验证,然后在密码处填写授权码。而163邮箱之类,就省了这个麻烦。
3. 添加发送邮件的服务层
@Service
public class MailUtilService {
@Autowired
private JavaMailSender mailSender;
public void sendSimpleMail() {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom("xxx@163.com");
message.setTo("1xxx8@qq.com");
message.setSubject("主题:简单邮件");
message.setText("测试邮件内容");
try {
mailSender.send(message);
} catch (Exception e) {
e.printStackTrace();
}
}
}
在服务层注入邮件发送接口类,创建一个发送简单内容的方法,是现在后续的RES请求响应中调用。
4. 在Controller中实现通过调用REST发送邮件
在REST响应类中注入邮件服务层的实例,然后调用接口进行触发。实现了邮件的实际发送。
/**
* 系统内部使用的REST服务
* */
@RestController
@RequestMapping("/system/")
@Slf4j
public class SystemInterController {
@Autowired
private MailUtilService mailUtilServiceService;
@PostMapping("/mail/simple/test")
public void sendSimpleMail(){
log.info("准备发送!");
mailUtilServiceService.sendSimpleMail();
log.info("已经发送了邮件!");
}
}
最后发送后的效果如图所示:

收到测试邮件