前言:
邮箱验证码功能的实现,是所有web项目创建注册账号必不可少的一个部分.
目录
1.我们需要一个邮箱用于验证码的发送.这里以网易的163邮箱为例;
准备工作
1.我们需要一个邮箱用于验证码的发送.这里以网易的163邮箱为例;
1.1 创建账号
打开 网易163邮箱 官网,点击注册账号,选择普通注册,可以自定义自己的用户名,方便使用.
1.2 登录账号 获取授权码
授权码只会出现一次,务必复制. 163邮箱的主机名是 smtp.163.com 后面会用到.
2.idae 配置
2.1 新建项目
2.2配置application.yml
代码如下: yml文件对格式要求高 注意空格
spring:
mail:
host: smtp.163.com
username: g62b533@163.com
password: .................
properties:
mail:
smtp:
auth: true
starttls:
enable: true
required: true
2.3 搭建目录架构 生成6位随机数作为验证码
这是tools文件夹中 tools 部分的代码 主要作用是用来生成6位数验证码
/创建6位数验证码功能的
public static String getStringRandom() {
Random random = new Random();
//把随机生成的数字转成字符串
String str = String.valueOf(random.nextInt(9));
for (int i = 0; i < 5; i++) {
str += random.nextInt(9);
}
return str;
}
2.4 配置JavaMailTool 工具类
@Component
public class JavaMailTool {
@Autowired
private JavaMailSender mailSender;
public void sendEmail(String email_to,String verifycode ){
SimpleMailMessage mailMessage = new SimpleMailMessage();
mailMessage.setFrom("g62b533@163.com");
mailMessage.setTo(email_to);
mailMessage.setSubject("验证码");
mailMessage.setText("你的注册验证是 : " + verifycode);
mailSender.send(mailMessage);
}
2.5 书写测试类
@SpringBootTest
@RunWith(SpringRunner.class)
public class MyTest {
@Autowired
private JavaMailTool javaMailTool;
@Test
public void sendEmail(){
javaMailTool.sendEmail("2572749974@qq.com",tools.getStringRandom());
}
2.6 测试结果
3.pom 依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
<relativePath />
</parent>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>