使用Spring Boot發(fā)送郵件需要滿足下面幾個(gè)步驟:
- 添加發(fā)送郵件的依賴
- 配置郵件發(fā)送端的基本信息
- 添加郵件發(fā)送工具服務(wù)類
- 在Controller中實(shí)現(xiàn)通過調(diào)用REST發(fā)送郵件
1. 添加發(fā)送郵件的依賴
<!--添加郵件發(fā)送的依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2. 配置郵件發(fā)送端的基本信息
在項(xiàng)目的application.properties文件中進(jìn)行配置:
# 發(fā)送郵件的設(shè)置
spring.mail.host=smtp.163.com
spring.mail.username=發(fā)信郵箱
spring.mail.password=密碼或者授權(quán)碼
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服務(wù)肃弟,要經(jīng)過一大堆驗(yàn)證涡拘,然后在密碼處填寫授權(quán)碼狸膏。而163郵箱之類会油,就省了這個(gè)麻煩。
3. 添加發(fā)送郵件的服務(wù)層
@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("測試郵件內(nèi)容");
try {
mailSender.send(message);
} catch (Exception e) {
e.printStackTrace();
}
}
}
在服務(wù)層注入郵件發(fā)送接口類撵彻,創(chuàng)建一個(gè)發(fā)送簡單內(nèi)容的方法皮璧,是現(xiàn)在后續(xù)的RES請求響應(yīng)中調(diào)用舟扎。
4. 在Controller中實(shí)現(xiàn)通過調(diào)用REST發(fā)送郵件
在REST響應(yīng)類中注入郵件服務(wù)層的實(shí)例,然后調(diào)用接口進(jìn)行觸發(fā)悴务。實(shí)現(xiàn)了郵件的實(shí)際發(fā)送。
/**
* 系統(tǒng)內(nèi)部使用的REST服務(wù)
* */
@RestController
@RequestMapping("/system/")
@Slf4j
public class SystemInterController {
@Autowired
private MailUtilService mailUtilServiceService;
@PostMapping("/mail/simple/test")
public void sendSimpleMail(){
log.info("準(zhǔn)備發(fā)送譬猫!");
mailUtilServiceService.sendSimpleMail();
log.info("已經(jīng)發(fā)送了郵件讯檐!");
}
}
最后發(fā)送后的效果如圖所示:
收到測試郵件