在Sprint boot上集成一个简单的发送邮件的功能

pom.xml 加入以下配置

1
2
3
4
5
6
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
</dependencies>

application.yml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
spring:
#邮箱
mail:
protocol: smtps
# 配置 SMTP 服务器地址
# 我这里是阿里邮箱
host: smtp.qiye.aliyun.com
# 发送者邮箱
username: tangyong@tangyongyong.cn
# 配置密码
#这里是授权码,阿里邮箱直接用密码即可
password:
# 端口号465或587
#port: 465
# 默认的邮件编码为UTF-8
default-encoding: UTF-8
# 配置SSL 加密工厂
properties:
mail:
smtp:
auth: true
starttls:
enable: true
socketFactory:
port: 465
port: 465
socketFactoryClass: javax.net.ssl.SSLSocketFactory
#表示开启 DEBUG 模式,这样,邮件发送过程的日志会在控制台打印出来,方便排查错误
debug: true

定义服务类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
@Service
public class SendEmail {

//定义邮件发送器
@Autowired
private JavaMailSender mailSender;

//定义邮件发送者
//private String from;

/**
* @param to 接收者
* @param subject 主题
* @param content 内容
*/
@Test
public void send(String to, String subject, String content) {
//创建一个简单文本邮件的对象
SimpleMailMessage message = new SimpleMailMessage();
//赋予相应的内容
message.setTo(to);
message.setSubject(subject);
message.setText(content);
// 需要与配置文件发件人的值相同
message.setFrom(from);
message.setSentDate(new Date());
//将邮件对象赋予邮件发送器
mailSender.send(message);
}
}