SpringBoot2.1(8)发邮件
《回顾》
上一篇,说到HTTP/2、HTTPS。如果你在现有的项目中,还没有接触过,也没关系,毕竟,这俩东西需要你负责的部分,都不难,需要的时候再来翻看,不是所有的东西都需要完全记住。但是所有的东西,你都需要知道。
本篇,介绍下如何使用SpringBoot2.1,发送邮件。
本文以163邮箱为例。
一、邮箱设置
1、开启SMTP
开启授权码:(使用Java连接时,使用此密码)
二、Maven配置
添加Maven依赖
<!-- 发邮件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
三、SpringBoot配置支持
在 application.properties 中添加以下配置
spring.mail.default-encoding=UTF-8
# 邮箱地址
spring.mail.host=smtp.163.com
# 邮箱用户名
[email protected]
# 授权码
spring.mail.password=*****
# 端口号 不通使用465
spring.mail.port=25
# 协议
spring.mail.protocol=smtp
四、编写代码
新建Controller
@Resource
private JavaMailSender jms;
@Value("${spring.mail.username}")
private String formUser;
@ApiOperation(value = "发送短信接口", notes = "发送短信接口")
@ApiImplicitParams({
@ApiImplicitParam(name = "email", value = "发送地址", required = true),
@ApiImplicitParam(name = "title", value = "发送标题", required = true),
@ApiImplicitParam(name = "content", value = "发送内容", required = true)
})
@GetMapping("/send")
public Map send(@RequestParam String email,@RequestParam String title,@RequestParam String content){
try{
sendMail(email,title,content);
return Map.of("msg","success");
}catch (Exception e){
return Map.of("msg","fail");
}
}
// 发邮件
private void sendMail(String toEmail,String title,String content){
var mainMessage = new SimpleMailMessage(); //建立邮件连接
mainMessage.setFrom(formUser); //发送者
mainMessage.setTo(toEmail); //接收者
mainMessage.setSubject(title); //发送的标题
mainMessage.setText(content); //发送的内容
log.info("线程:{}【发送邮件内容】:{}", Thread.currentThread().getName(), JSON.toJSONString(mainMessage));
jms.send(mainMessage);
}
五、使用Swagger-UI 测试
前面文章已经详细介绍过Swagger-UI,为了方便测试,我们就使用它来做接口测试。
参数:
返回值:
六、登陆接收邮箱查看
博客内所有文章,每周从公众号同步一次。
文章源码均可从公众号获取。
如果您可以关注下,那就好了。