目录
3.点击账号后下拉,看到SMTP服务后点击 继续获取授权码 或者 开启SMTP服务
4.点击获取或开启服务后,就会看到短信验证提示,成功发送短信后即可获取授权码
一.前言
在实际项目中,经常需要用到邮件通知功能。比如,用户通过邮件注册,通过邮件找回密码等;又比如通过邮件发送系统情况,通过邮件发送报表信息等等,实际应用场景很多。这篇文章,就教大家通过springboot快速的实现一个发送邮件的功能。
二.环境约束
本文章教程使用到的工具及版本如下:
IntelliJ IDEA 2022.3.3;
Apache Maven 3.9.1;
jdk:版本为1.8;
SpringBoot:2.5.3
三.添加依赖
创建springboot项目后在pom.xml文件里添加如下依赖
<!--添加邮件依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
四.配置application.yml文件
1 配置application.yml文件代码
#配置cron表达式
time:
cron: 0/1 * * * * *
interval: 5
#配置邮箱基本信息
spring:
mail:
host: smtp.qq.com #发送邮件服务器
username: 11111111@qq.com #发送邮件的邮箱账户
password: fupdebiyrwmy #客户端授权码,需要使用自己QQ邮箱的授权码,获取授权码教程如下
default-encoding: utf-8 #默认邮件编码
properties:
mail:
smtp:
port: 465
#邮件服务超时时间配置
connectiontimeout: 5000
timeout: 3000
writetimeout: 5000
debug: true
#ssl开启配置
starttls:
enable: true
required: true
ssl:
enable: true
2配置客户端授权码获取方法(qq邮箱)
1.先打开要发送邮件的qq邮箱,然后在邮箱首页点击 设置
2.点击上面导航栏的 账号
3.点击账号后下拉,看到SMTP服务后点击 继续获取授权码 或者 开启SMTP服务
4.点击获取或开启服务后,就会看到短信验证提示,成功发送短信后即可获取授权码
5.获得授权码后点击授权码右边的复制,然后将application.yml文件的授权码改成自己的
五.在test里编写测试类
在test里编写测试类,发送一个简单邮件
@Autowired
JavaMailSenderImpl mailSender;
/**
* 发送文本邮件
*/
@Test
void contextLoads() {
//定制发送的简单文本邮件信息
SimpleMailMessage message = new SimpleMailMessage();
//发送邮件的邮箱
message.setFrom("123456789@qq.com");
//接收邮件的邮箱
message.setTo("987654321@qq.com");
//邮件主题
message.setSubject("简单文本邮件");
//邮件内容
message.setText("测试邮件内容");
mailSender.send(message);
将参数修改成自己的就可以了
六.运行测试类
运行测试类就可以发送邮件啦,打开qq邮箱已发送就可以看到邮件投递成功
七.发送带附件的邮件
@Autowired
JavaMailSenderImpl mailSender;
/**
* 发送文本邮件
*/
@Test
void sendAttachment() throws MessagingException {
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setFrom("123456789@qq.com");
helper.setTo("987654321@qq.com");
helper.setSubject("主题:Attachment邮件");
helper.setText("<html><body><h1>您有附件未收取,请查看!</h1></body></html>", true);
helper.addAttachment("head1", new File("D:\\班级\\学风建设方案.docx"));
mailSender.send(mimeMessage);
}
将文件路径改成自己要发送的附件路径,再修改剩下的一些基础参数就可以发送带附件的邮件了
八.发送复杂邮件
有需要的同学可以点击链接自行学习
到此,使用spring Boot实现文件发送就到此学习结束了