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

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

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

 点账户

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

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

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

<dependencies>
        <!--javax.mail-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

引入完成之后,我们需要在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;

/**
 * @author liuweixin
 * @create 2021-10-28 11:00
 */
@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才行,如果还不会的伙伴可以先写个页面表单,提交就可以了)

   

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

  测试完成

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

完成!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值