栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot实现项目注册邮箱验证码的发送

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot实现项目注册邮箱验证码的发送

在我们项目的注册业务模块中,我们一般会有邮箱验证这个部分(也可以采用短信验证,但阿里云和腾讯云的短信服务申请比较麻烦,所以我就以后端接口实现为例,写一写邮箱验证)。那我们如何实现呢?

这里我以QQ邮箱为例,首先我们打开QQ邮箱首页,点开设置

 点账户

 移到最下面,会有个开启服务,这里我们选择开启POP3/SMTP服务。

 在点开启后,会需要让你验证手机密保,我们只需要跟着验证就好了,验证完会有一个密匙,是一个一连串的英文字母组成的密匙。

这一步完成后。我们就打开我们的idea,引入相关依赖


        
        
            org.springframework.boot
            spring-boot-starter-mail
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

引入完成之后,我们需要在springboot的配置文件中进行相关配置

这里我们就会用到刚才我们获取到的密匙,填到配置文件中

#邮件发送任务
spring.mail.password=//密匙
spring.mail.username=//你的邮箱
spring.mail.host=smtp.QQ.com //固定
#开启加密验证
spring.mail.properties.mail.smtp.ssl.enable=true //这个是一个加密配置

 我这里是以一个后端接口为例解释的

这一般都是一个post请求,所以我们用@PostMapping请求,填上我们的地址

@Apioperation只是一个Swagger的注解

Swagger是用来测试接口的Api的,有兴趣的伙伴可以去了解一下,并整合到Springboot中,这里我就不加赘述了。

RandomUtil是一个工具类,产生一个随机的六位有效数字,如果有需要的小伙伴可以私信我,我发给你,不过这里只是介绍邮箱发送的使用,所以我就不贴上该工具类的代码了,大家随便输入值都是可以的。

至于返回的JsonData,只是一个统一的与前端交互的数据格式,对我们的邮箱验证无影响。

这里我们可以借助redis对该验证码进行设置过期时间,通过redisTemplate对象进行设置,这里博主有点懒,就不提及了。不过还是需要提一点,在我们的项目中,一般该验证码都是需要设置过期时间的,也就是我们平常收到的验证码短信,有效期为××,这里可以借助于redis实现。我就懒得敲了,有兴趣的伙伴可以找我拿该段源码,我后面加了,但懒得改本博客了。

 由于我的方法写在了MsmService接口中,故我们到MsmService的实现类中实现该方法。

package com.liu.service.impl;

import com.liu.service.MsmService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.stereotype.Service;


@Service
public class MsmServiceImpl implements MsmService {
    @Autowired
    JavaMailSenderImpl mailSender;//注入JavaMailSenderImpl对象,这里需要注入对象
    @Override
    public void send(String email, String code) {
        SimpleMailMessage mailMessage = new SimpleMailMessage();//创建一个简单的邮件信息对象
        //设置邮件发送信息的内容
        mailMessage.setSubject("在线教育项目验证码");//标题
        mailMessage.setText("您的验证码为:" + code);//内容
        mailMessage.setFrom("");//内容为发送方的邮箱地址
        mailMessage.setTo(email);//内容为接收方邮箱地址
        mailSender.send(mailMessage);//发送邮件
    }
}

这里填写完成后,我们启动项目

 然后打开Swagger进行接口测试

地址为ip:端口号/swagger-ui.html(注意,这样测试需要集成Swagger才行,如果还不会的伙伴可以先写个页面表单,提交就可以了)

   

这里我就输入我自己的邮箱进行测试了。

  测试完成

然后我们到邮箱去查看一下

完成!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/353377.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号