导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>2.3.3.RELEASE</version>
</dependency>
获取邮箱授权码
设置服务邮箱,以QQ邮箱为例
- 进入QQ邮箱,选择设置
- 下拉到下图所示位置,点击生成授权码
发送邮件
yaml配置
- application.yml
spring: mail: username: # 用户名,邮箱账号 password: # 授权码 # 主机地址 host: smtp.qq.com # 开启SSL安全连接 properties: mail: smtp: ssl: enable: true
常用类介绍
-
JavaMailSender
JavaMailSender用于发送邮件 -
SimpleMailMessage
SimpleMailMessage 可以用来发送一些简单邮件(没有附件)
@Autowired
private JavaMailSender mailSender;
public void sendMessage() {
SimpleMailMessage message = new SimpleMailMessage();
message.setTo("xxxxxx@163.com"); // 接收邮箱账号
message.setFrom("xxxxxx@qq.com"); // yml配置文件中邮箱账号
message.setText("邮箱测试...");
message.setSubject("mail test");
mailSender.send(message);
}
- MimeMessage
MimeMessage用于发送复杂消息
public void sendMultMessage() {
MimeMessage mimeMessage = mailSender.createMimeMessage();
// 设置发送复杂邮件消息
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
mimeMessageHelper.setTo("xxxxxx@163.com");
mimeMessageHelper.setFrom("xxxxxx@qq.com");
mimeMessageHelper.setSubject("发送复杂邮件测试");
mimeMessageHelper.setText("<h1>邮件测试</h1><p>通过设置第二个参数为true,可发送含有html标签的文本</p>", true);
mimeMessageHelper.addAttachment("图片.jpg", FileUtil.file("static/emotion.jpg"));
mailSender.send(mimeMessage);
}
补充
- 以上demo,还使用了
hutool与lombok依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.10</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.4.1</version> </dependency>