SpringBoot-(八)SpringBoot实现邮件发送

本文最后更新于:February 13, 2022 pm

SpringBoot框架中有两个非常重要的策略:开箱即用和约定优于配置。其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

目录

导入依赖

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

配置

这里以QQ邮箱为例。

先网页登录QQ邮箱→设置→开启相应服务(POP3/SMTP)并生成授权码。再配置

1
2
3
4
5
6
7
spring:
mail:
username: 1111111@qq.com # 刚才开启的邮箱
password: xxxxx # 这里是刚才开启邮箱获得的授权码
host: smtp.qq.com
# 开启加密验证
properties.mail.smtp.ssl.enable: true

发送邮件

简单邮件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@Autowired
JavaMailSenderImpl javaMailSender;
@Test
void contextLoads() throws JsonProcessingException {
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
//主题,标题
simpleMailMessage.setSubject("通知测试2");
//内容
simpleMailMessage.setText("这是内容2");
//发送给
simpleMailMessage.setTo("1111111@qq.com");
//谁发送的
simpleMailMessage.setFrom("1111111@qq.com");
javaMailSender.send(simpleMailMessage);
}

这样就可以发送成功。

复杂邮件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@Autowired
JavaMailSenderImpl javaMailSender;
@Test
void contextLoads() throws JsonProcessingException, MessagingException {
//创建
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
//组装
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage,true);

mimeMessageHelper.setSubject("这里是标题");
mimeMessageHelper.setText("<h1 style='color:red'>这是内容</h1>",true); //true表示开启解析html标签

//附件
mimeMessageHelper.addAttachment("1.png",new File("C:\\Users\\lenovo\\Desktop\\xm.png"));

mimeMessageHelper.setTo("1111111@qq.com");
mimeMessageHelper.setFrom("1111111@qq.com");

javaMailSender.send(mimeMessage);
}

其中,添加附件的第一个参数是给附件重命名,第二个参数是文件的位置。(如果是在本地测试,是可以直接写文件的绝对地址的。)

扩展

网易系(126/163/yeah)邮箱配置

网页登录网易邮箱→设置→POP3/SMTP/IMAP ,设置开启。

配置文件

1
2
3
4
5
6
7
spring:
mail:
username: 1111111@126.com # 刚才开启的邮箱
password: xxxxx # 这里是刚才开启邮箱获得的授权码
host: smtp.126.com
# 开启加密验证
properties.mail.smtp.ssl.enable: true