前景介绍
在日常的工作中,我们经常会用到邮件服务,比如发送验证码,找回密码确认,注册时邮件验证等,所以今天在这里进行邮件服务的一些操作。
大致思路
我们要做的其实就是把Java程序作为一个客户端,然后通过配置SMTP协议去连接我们所使用的发送邮箱(from)对应的SMTP服务器,然后通过SMTP协议,将邮件转投到目标邮箱(to)对应的SMTP服务器,最后将该邮件分发到目标邮箱
Spring Boot给我们集成了邮件的相关服务,并给出了对应的starter,这里我们来实战学习一下邮件服务是怎么玩的。
引入POM
万年不变的第一步:引入所需要的starter依赖,这里我采用的是和我的Spring Boot对应的版本2.1.4,其余版本的话应该是相差不大,可以同样作为借鉴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>2.1.4.RELEASE</version>
</dependency>
配置文件
这里由于国内有几大邮箱运营商,所以分为四种不同的情况来说明
-
QQ邮箱
QQ邮箱是比较麻烦的一种,需要登录到邮箱中找到对应的配置,并验证密码后开启STMP服务
点击这里可以去获取对应的授权码,后面的配置中我们会用到~
个人QQ邮箱的SMTP服务器的host是:smtp.qq.com
-
163邮箱
对应的授权码就是我们邮箱的密码~
SMTP服务器的host是:smtp.163.com
-
腾讯企业邮箱
对应的授权码也是我们邮箱的密码
企业的和个人的host略有不同:smtp.exmail.qq.com
-
阿里企业邮箱
对应的授权码也是我们邮箱的密码
阿里的企业邮箱host是: smtp.mxhichina.com
得到对应的信息之后,我们就可以去完善我们的配置信息了 ~
# 这里的host对应是上面的几大运营商的STMP服务器的host
spring.mail.host=smtp.163.com
spring.mail.username=****@163.com
# 这里的password对应的就是上面的授权码
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
spring.mail.default-encoding=UTF-8
编写邮件的实体类
/**
* 邮件实体类
* @author vi
* @since 2019/07/17
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Mail {
/**
* 邮件发送人
*/
private String from;
/**
* 邮件接收人
*/
private String to;
/**
* 邮件主题
*/
private String subject;
/**
* 邮件内容
*/
private String content;
/**
* 邮件主题
*/