实现邮箱发送验证码功能(邮箱验证码怎么发)

  本篇文章为你整理了实现邮箱发送验证码功能(邮箱验证码怎么发)的详细内容,包含有实现邮箱发送验证码功能的软件 邮箱验证码怎么发 发给邮箱的验证码在哪里 发送邮件验证码 实现邮箱发送验证码功能,希望能帮助你了解 实现邮箱发送验证码功能。

  本文使用了redis数据库做验证码的缓存,不想用redis数据库也可以直接将验证码放入mysql中,设置验证码有效期即可。

  

 dependency 

 

   groupId org.springframework.boot /groupId

   artifactId spring-boot-starter-mail /artifactId

   /dependency

  

 

  application.yaml

  【用yaml在后面注入JavaMailSender的bean时会爆红但不会影响运行,因为JavaMailSenderImpl在初始加载时是要读取properties,不读取yaml,但运行后就会读取了】

  

spring:

 

   mail:

   # 163邮箱的地址为smtp.163.com,直接填写即可

   host: smtp.163.com

   # 你申请的163邮箱

   username: xxxxxx@163.com

   # 注意密码是在开启smtp/pop3时自动生成的,不是邮箱密码,记得保存一下,不然就找不到了

   password: xxxxxxxxxxx

  

 

  放入静态资源,创建相应的controller

  此处省略一万字~~~

  编写service接口,以及其实现类(接口和controller自己想)

  

@Service

 

  public class VerifyServiceImpl implements VerifyService {

   @Resource

   JavaMailSender sender; //一个用于发送邮箱的类

   @Resource

   StringRedisTemplate template; //用于Redis数据库操作

   @Value("${spring.mail.username}")

   String email;

   @Override

   public void sendVerifyCode(String mail) {

   SimpleMailMessage message = new SimpleMailMessage();

   //邮件标题

   message.setSubject("【xxx网站】您的注册码");

   //设置随机数作为验证码

   Random random = new Random();

   int code = random.nextInt(89999) + 10000;//小心机

   //用redis保存验证码

   //提前验证一下,如果发送了多次则删除上一次的验证码,保留最新的验证码

   if (template.opsForValue().get("verify:code:"+mail)!=null){

   template.delete("verify:code:"+mail);

   template.opsForValue().set("verify:code:"+mail,code+"",5, TimeUnit.MINUTES);//设置五分钟过期时间

   //邮件内容

   message.setText("您的验证码是:"+code+",五分钟有效,请及时完成注册。若不是本人操作请忽略");

   message.setFrom(email); //谁发送,必须和yaml文件中的账号一致

   message.setTo(mail); //谁接收

   sender.send(message);

   @Override

   public boolean doVerify(String mail, String code) {

   String string = template.opsForValue().get("verify:code:"+mail);

   if (string.equals(code)){

   template.delete("verify:code:"+mail);

   return true;

   return false;

  

 

  
本文来自,作者:不吃紫菜,遵循CC 4.0 BY-SA版权协议,

  转载请附上原文出处链接:https:///buchizicai/p/16517289.html及本声明;

  本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  以上就是实现邮箱发送验证码功能(邮箱验证码怎么发)的详细内容,想要了解更多 实现邮箱发送验证码功能的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: