前记

最近做的项目中注册功能要用到验证码,本来想用阿里云的短信服务,但是有点小贵,就另辟捷径,选择了用邮箱来发送验证码。记录一下整合过程,也希望能帮助一些有需要的人。

正文

1、Spring Boot2.x集成了mail模块,在dependencies引入这个

     <!--邮箱--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>

2、在配置文件中,填写相关配置,qq邮箱就把163 换成qq就行了。

#Mail
spring.mail.host=smtp.163.com
spring.mail.username=****@163.com
spring.mail.password=********
spring.mail.default-encoding=UTF-8mail.from=****@163.com

username和mail.from填写自己的账号名就行了(就是邮箱),password是你的秘钥 不是邮箱密码,需要去相关邮箱里去开启,一般都在邮箱设置-账号里就可以找到,按照提示完成即可。秘钥仅出现一次记得保存

3、controller层
controller比较简单,按照自己的方式写一下就行了,图中,Result是我自己封装的VO类,memberMail参数是收件人的邮箱地址

4、service层
首先导注入JavaMailSender 和配置文件中的相关参数。
RedisTemplate,是我项目中用到的,跟发送邮件没有关系,不需要的话可忽略注释此部分代码 具体接口api看代码注释。

@Slf4j
@Service
public class MailServiceImpl implements MailService{@Autowiredprivate JavaMailSender mailSender;@Value("${mail.from}")private String mailFrom;@Autowiredprivate RedisTemplate<String, String> redisTemplate;/*** 发送简单的邮件* mailFrom 是发件人,* mailTo 是收件人。* message.setSubject()设置邮件主题。* message.setText()设置邮件内容。* mailSender.send(message)是发送短信。* @param mailTo 邮件*/@Overridepublic void sendSimpleMail(String mailTo) {//创建邮件  SimpleMailMessage是创建文件 包括内容,邮件消息,发件人,收件人……SimpleMailMessage message = new SimpleMailMessage();message.setFrom(mailFrom);message.setTo(mailTo);message.setSubject("映雁学院注册");//RandomUtil是我自己封装的工具类,随机生成四位数的数字当验证码。不需要可忽略String fourBitRandom = RandomUtil.getFourBitRandom();//把验证码存入resdis中,设置过期时间为三分钟,不需要可忽略redisTemplate.opsForValue().set(mailTo,fourBitRandom,3, TimeUnit.MINUTES);//setText 就是设置邮件发送的内容,根据自己的需要自行编写即可。message.setText("【秃发映雁】"+ fourBitRandom +"(映雁学院注册验证码),请在3分钟内完成注册。如非本人操作,请忽略!");//发送邮件mailSender.send(message);log.info("邮件已经发送");}
}

后记

以上就是整合163或者qq邮箱发送验证码全过程,因为163和qq邮箱比较常用,如果使用国外的谷歌等邮箱,会出现time out 超时的情况。希望对你有所帮助。学识有限,有错误积极欢迎指正。

Spring Boot 整合163或者qq邮箱发送验证码相关推荐

  1. SpringBoot通过qq邮箱发送验证码

    SpringBoot通过qq邮箱发送验证码 1.开启qq授权码 2.编写配置文件 spring:#邮箱验证mail:##163 smtp.163.com(反垃圾系统发送不了了)##qq smtp.qq ...

  2. 最简单Java实现QQ邮箱发送验证码

    Java使用QQ邮箱发送验证码 1. 开启服务,获取授权码 需登录自己的QQ邮箱,打开 POP3/SMTP 服务,并获取授权码. 具体操作: 登录邮箱 邮箱首页 "设置" 选择 & ...

  3. java发送qq邮箱验证_JAVA 实现 QQ 邮箱发送验证码功能(不局限于框架)

    JAVA 实现 QQ 邮箱发送验证码功能(不局限于框架) 本来想实现 QQ 登录,有域名一直没用过,还得备案,好麻烦,只能过几天再更新啦. 先把实现的发送邮箱验证码更能更新了. 老规矩,更多内容在注释 ...

  4. react-hooks + node 使用qq邮箱发送验证码,验证修改密码

    在平常,我们写登录注册react项目时,我们可能会考虑使用QQ邮箱发送验证码登录注册,或者使用QQ邮箱验证来修改密码,下面,我们就来使用QQ邮箱来简单发送个邮件. 1.当我们想在react项目中使用Q ...

  5. Spring Boot 整合 Shiro(三)Kaptcha验证码 附源码

    前言 本文是根据上篇<Spring Boot 整合Shiro(二)加密登录与密码加盐处理>进行修改,如有不明白的转上篇文章了解. 1.导入依赖 <!-- https://mvnrep ...

  6. Python使用QQ邮箱发送验证码

    向指定对象发送验证码 在做一些个人的demo或者实战项目等,涉及登录验证的,可以通过该方式实现一个简易的邮箱发送验证码. 该方法使用了Python的smtplib第三方库,需要保证发送者的QQ邮箱开通 ...

  7. 引入QQ邮箱发送验证码进行安全校验

    其他方案=>引入短信服务发送手机验证码进行安全校验 操作相对复杂且收费,详细教程可供参考选择 最近想给自己的项目在注册时加点安全校验,本想着使用短信验证码,奈何囊中羞涩只能退而求次改用QQ邮箱验 ...

  8. QQ邮箱发送验证码功能的实现

    1.打开QQ邮箱的xxx服务,记住授权码 2.引入依赖 <dependency>             <groupId>org.springframework.boot&l ...

  9. java springboot借助qq邮箱发送验证码

    1.起因 主流的短信验证无论是阿里云还是腾讯云,都是需要收费的,且一般需要企业认证才可以使用.作为学习,我们可以选择无门槛的qq邮箱验证登录的方式. 2.步骤 2.1 访问qq邮箱官网qq邮箱,打开Q ...

最新文章

  1. C语言中函数的参数列表为空和void的区别
  2. Debug Tensorflow: Expected these arguments to match one of the following 4 option(s):
  3. Java使用预定格式获取时间字符串
  4. 五十五、uniapp简单实现Todo项目(慕课网)
  5. 《梦断代码》读书笔记
  6. 【贪心】数据备份(P6320)
  7. c# 连接各种数据库 Access、Server等
  8. [Objective-c 基础 - 2.5] .h和.m文件,点语法,成员变量作用域
  9. 01 | 研发工程师想提升面试竞争力,该具备这三个技术认知
  10. EMNLP'21中预训练模型最新研究进展
  11. [转载]从MyEclipse到IntelliJ IDEA-让你摆脱鼠标,全键盘操作
  12. php phantomjs 安装_安装php-phantomjs
  13. 腾达U12无线网卡驱动安装教程
  14. 物 理 学 简 介(三)
  15. Uri.parse()的各种用法
  16. ecshop模板中使用php,使ecshop模板中可引用常量的实现方法_php
  17. Supermap机器学习功能实操
  18. java 时间格式检查
  19. 【原创】2009年8月18日老谷项目管理MSN群专题—项目案例分享文字实录
  20. 美团在外卖市场一家独大,但餐饮商家对高企的佣金抽成日益不满

热门文章

  1. Pr动态图形模板Mogrt导入失败 Mogrt is Corrupt 解决方法 Motion Graphics Templates is corrupt.
  2. 学习.NET MAUI Blazor(三)、创建.NET MAUI Blazor应用并使用AntDesignBlazor
  3. macbook视频格式转换_告别格式工厂的视频格式转换方法(mac版 命令行)
  4. 【超详细】Docker从入门到干活,就看这一篇文章
  5. pppoe拨号.bat
  6. 什么是孤独?。。。一款只有6个用户的APP
  7. Redis淘汰机制(Eviction policies)
  8. Allegro自动10度走线详细教程
  9. 语义分析(Semantic Parsing)调研
  10. 同时打开对比两个pdf文件软件推荐