Spring Boot 发送邮件比较简单,已经傻瓜化了,用两分钟看完,三分钟搞定,五分钟做出此功能足矣。
如果五分钟还没做出来,那请检查一下自己的电脑是否有开发工具,电脑是否过于老旧,网络是否缓慢。
首先获取一下授权码吧:腾讯QQ个人邮箱授权码的获取方式:
在application-local.yml中配置文件中配置以下信息
#在.yml文件中配置一下信息
server:
port: 8080
servlet:
context-path: /mailsender
# 数据源相关配置
spring:
mail:
#host: smtp.exmail.qq.com # 腾讯企业邮箱
host: smtp.qq.com # 腾讯个人邮箱
protocol: smtp
port: 465
username: ******@qq.com #邮箱地址
password: xxxxxxxx #邮箱授权码
properties:
mail:
smtp:
auth: true
ssl:
enable: true
socketFactory:
class: com.sun.mail.util.MailSSLSocketFactory
fallback: false
在pom.xml中加入mail发送的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
@RestController
@RequestMapping("/mail")
public class MailController {
@Autowired
JavaMailSender jms;
@Autowired
MailConfig mailConfig;
@PostMapping(value = "/send")
public JsonResult<String> postMail(@RequestBody MailDto mailDto) {
try {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(mailConfig.getUserEmail());
message.setTo(mailDto.getTo()); //收件人邮箱地址
message.setSubject(mailDto.getSubject());
message.setText(mailDto.getText());
jms.send(message);
} catch (Exception e) {
throw new MessageException(e.getMessage());
}
return JsonResult.success("success");
}
}
完成以上步骤就可以发送报文进行测试了。可以使用Postman等工具向接口发送测试请求。如下:
POST :
http://localhost:8080/mailsender/mail/send
{
"to":"moumoumou@126.com",
"subject": "好久不见",
"text":"好久不见了,你还好么?顺便问一下,想我了么"
}