1. 首先我们要开启邮箱的 POP3/SMTP服务
可以看到我这里已经开启,流程是开启的时候会让你发送一条短信验证,之后验证成功会生成一串秘钥,秘钥待会我们是需要用到的。
2. 引入maven 依赖
<!--邮件服务-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
3.yml 文件中配置
spring:
# 邮件服务
mail:
# 配置 SMTP 服务器地址
host: smtp.qq.com
# 发送者邮箱
username: [email protected]
# 配置密码,注意不是真正的密码,而是刚刚申请到的授权码
password: xxxxxxxxxx
# 端口号465或587
port: 587
default-encoding: utf-8
# 配置SSL 加密工厂
properties:
mail:
smtp:
socketFactoryClass: javax.net.ssl.SSLSocketFactory
#表示开启 DEBUG 模式,这样,邮件发送过程的日志会在控制台打印出来,方便排查错误
debug: true
3.在业务代码中使用
import java.util.Date;
/**
* @Author Lxq
* @Date 2021-11-05 11:29
* @Version 1.0
* 邮件的业务类
*/
@Service
public class EmailServiceImpl implements IEmailService {
@Autowired
private JavaMailSender javaMailSender;
/**
* 简单邮件
*
* @param sendFrom 发送这
* @param sendTo 接收者(多个用逗号隔开,"10*****[email protected]","12****32*qq.com")
* @param subject 主题
* @param sendText 正文
*/
@Override
public void sendSimpleMail(String sendFrom, String[] sendTo, String subject, String sendText) {
// 构建一个邮件对象
SimpleMailMessage message = new SimpleMailMessage();
// 设置邮件主题
message.setSubject(subject);
// 设置邮件发送者,这个跟application.yml中设置的要一致
message.setFrom(sendFrom);
// 设置邮件接收者,可以有多个接收者,中间用逗号隔开,以下类似
//message.setTo("10*****[email protected]","12****32*qq.com");
message.setTo(sendTo);
// 设置邮件发送日期
message.setSentDate(new Date());
// 设置邮件的正文
message.setText(sendText);
// 发送邮件
javaMailSender.send(message);
}
}
这里只是发送一个简单的邮件,若需要复杂可以找相关文档查看即可。