1、开启邮箱的 POP3/SMTP 服务。
使用qq邮箱开启SMTP服务,登录进qq邮箱网页版->找到设置->第三方服务,具体如下图
点击开启服务
得到授权码
2、创建springboot项目
2.1选择spring Initializr创建,我这里选择的是jdk17,可以根据自己情况选择
2.2点击下一步快速创建,依赖后面再导入
2.3导入项目所需依赖
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- 邮箱验证码依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <!-- 一个很强大的工具库 --> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.19</version> </dependency> </dependencies>
2.3配置yaml文件,配置如下
server: port: 8080 spring: #邮箱验证码配置 mail: #smtp服务主机 qq邮箱则为smtp.qq.com; 163邮箱是smtp.163.com host: smtp.qq.com #服务协议 protocol: smtp # 编码集 default-encoding: UTF-8 #发送邮件的账户 username: #填刚刚开通服务的qq邮箱账号 #授权码 password: #选择刚刚qq邮箱生成的授权码填写在这 # 昵称 nickname: 超级帅哥 test-connection: true properties: mail: smtp: auth: true starttls: enable: true required: true
3、编写测试代码
测试代码如下:
package com.example.email; import cn.hutool.core.util.RandomUtil; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; @SpringBootTest class EmailApplicationTests { // 这个是 mail 依赖提供给我们的发送邮件的接口 @Autowired private JavaMailSender mailSender; // 获取发件人邮箱 @Value("${spring.mail.username}") private String sender; // 获取发件人昵称 @Value("${spring.mail.nickname}") private String nickname; @Test void testSendMail(){ String email = "564981866@qq.com"; SimpleMailMessage message = new SimpleMailMessage(); message.setFrom(nickname + '<' + sender + '>'); message.setTo(email); message.setSubject("邮箱登录验证码"); // 使用 hutool-all 生成 6 位随机数验证码 String code = RandomUtil.randomNumbers(6); String content = "【验证码】您的验证码为:" + code + " 。 验证码五分钟内有效,逾期作废。"; message.setText(content); mailSender.send(message); } }
4、发送成功效果图
大功告成,以上便是全部步骤。