SpringBoot整合Mail发送邮件功能
SpringBoot整合Mail发送邮件功能
目录前言Maven依赖使用QQ邮箱演示发送普通邮件验证码案例
前言
我们在网站上注册账号的时候一般需要获取验证码,而这个验证码一般发送在你的手机号上还有的是发送在你的邮箱中,注册,账号密码…都需要用到验证,今天就演示一下如何用SpringBoot整合Mail发送邮箱。
Maven依赖
使用QQ邮箱演示
国内QQ邮箱的用户占多数,所以本文以QQ邮箱作为演示。
使用QQ邮箱需要开启SMTP服务
QQ邮箱默认关闭了SMTP服务,所以需要我们手动打开:
配置application.properties/yml
# 应用服务 WEB 访问端口
server.port=8080
# 邮箱用户名
spring.mail.username=your mail
# 授权码
spring.mail.password=授权码
# 邮箱主机
spring.mail.host=smtp.qq.com
# 开启SSL
spring.mail.properties.mail.smtp.ssl.enable=true
# 认证
spring.mail.properties.mail.smtp.auth=true
# 开启SSL安全模式
spring.mail.properties.mail.smtp.starttls.enable=true
# 必须启动SSL安全模式
spring.mail.properties.mail.smtp.starttls.required=true
# SSL Config
# 端口
spring.mail.port=465
# 协议
spring.mail.protocol=smtp
# 默认编码
spring.mail.default-encoding=UTF-8
# 套接字工厂端口
spring.mail.properties.mail.smtp.socketFactory.port=465
# 套接字工厂类
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
配置好这些后,springboot会自动帮我们配置好相关的邮件发送类。
发送普通邮件
@SpringBootTest
class Demo1ApplicationTests {
@Autowired
JavaMailSender javaMailSender;
@Test
public void sendSimpleMail() {
// 构建一个邮件对象
SimpleMailMessage message = new SimpleMailMessage();
// 设置邮件主题
message.setSubject("这是一封测试邮件");
// 设置邮件发送者,这个跟application.yml中设置的要一致
message.setFrom("1926585708@qq.com");
// 设置邮件接收者,可以有多个接收者,中间用逗号隔开,以下类似
// message.setTo("1*****@qq.com","2*****qq.com");
message.setTo("1926585708@qq.com");
// 设置邮件发送日期
message.setSentDate(new Date());
// 设置邮件的正文
message.setText("这是测试邮件的正文");
// 发送邮件
javaMailSender.send(message);
}
}
查看邮箱:
验证码案例
使用thymeleaf模板搭建HTML页面
请输入您的邮箱:
验证码: