Springboot项目中,如何通过邮件发送验证码?

1.需求分析

  • 在web项目中,通常会用到注册登录功能,在采用邮箱注册的时候,需要发送验证码给注册的 用户,如何在springboot项目中实现。

2.导入依赖

springboot版本:2.5.5

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
<!--        hutool工具类-->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>4.6.8</version>
        </dependency>
<!--        邮件依赖-->
        <dependency>
            <groupId>com.sun.mail</groupId>
            <artifactId>javax.mail</artifactId>
            <version>1.6.2</version>
        </dependency>

3.编写邮件配置

在classpath(在标准Maven项目中为src/main/resources)的config目录下新建mail.setting文件,最小配置内容如下,在此配置下,smtp服务器和用户名都将通过from参数识别:

#发件人(必须正确,否则发送失败)
from = jansonzdh@163.com
#密码(注意,某些邮箱需要为SMTP服务单独设置密码,详情查看相关帮助)此处用的是授权码,生成方式如下所示:
pass = KGNYZYIYXPIXZMAL

在这里插入图片描述

4.编写测试类,测试发送邮件

log.info("***********验证码生成中!**********************");
String code = RandomUtil.randomNumbers(4);
log.info("***********验证码生成结束!**********************");

log.info("***********邮件发送开始!**********************");
 // 采用hutool包下的工具类 MailUtil,发送邮件
MailUtil.send("zhangdh@vhengdata.com","验证码", "您的验证码是:"+code, false);
log.info("***********邮件发送成功!**********************");
4.1 执行结果

在这里插入图片描述

4.2 查看邮件

已经发送成功:
在这里插入图片描述

5、总结

  • 在具体应用过程中,我们发送验证码的同时,将验证码存储在redis缓存中,并设置过期时间为 1分钟;
  • 用户在接收到验证码后,输入验证码,系统就可以从redis缓存中,查询数据,进行比对,完成验证过程。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Janson666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值