SpringBoot2.1(8)发邮件

《回顾》

上一篇,说到HTTP/2、HTTPS。如果你在现有的项目中,还没有接触过,也没关系,毕竟,这俩东西需要你负责的部分,都不难,需要的时候再来翻看,不是所有的东西都需要完全记住。但是所有的东西,你都需要知道。

 

本篇,介绍下如何使用SpringBoot2.1,发送邮件。

本文以163邮箱为例。

 

一、邮箱设置

1、开启SMTP

SpringBoot2.1(8)发邮件

 

SpringBoot2.1(8)发邮件

 

开启授权码:(使用Java连接时,使用此密码)

SpringBoot2.1(8)发邮件

 

 

二、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,为了方便测试,我们就使用它来做接口测试。

参数:

SpringBoot2.1(8)发邮件

 

返回值:

SpringBoot2.1(8)发邮件

 

 

 

六、登陆接收邮箱查看

 

 

SpringBoot2.1(8)发邮件

 

 

博客内所有文章,每周从公众号同步一次。

文章源码均可从公众号获取。

如果您可以关注下,那就好了。

SpringBoot2.1(8)发邮件