当前位置: 首页 > article >正文

SpringBoot实现发邮箱验证码简单实现

一、maven导入依赖

<dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version>
</dependency>

二、配置yml文件配置

spring:mail:host: smtp.qq.comusername: XXXXX@qq.compassword: //这里的密码并不是邮箱密码,而是需要开启POP3/IMAP/SMTP/Exchange/CardDAV 服务port: 587 //端口号default-encoding: UTF-8properties:mail:smtp:socketFactoryClass: javax.net.ssl.SSLSocketFactorydebug: true

三、以qq邮箱为例开启POP3/IMAP/SMTP/Exchange/CardDAV 服务

进入qq邮箱点击设置->账户,如下图:

下滑看到POP3/IMAP/SMTP/Exchange/CardDAV 服务,点击开启,如下图:

通过绑定的手机进行验证,会得到一串字符串,将该字符串复制到配置文件的password后即可。注:开启服务并不是永久有效,在一定时间后程序报错,是因为时效过期,需重新申请。

三、发送邮箱验证码代码实现

发生文本邮箱:

public void sendSimpleMail(String code,String touser) {// 构建一个邮件对象SimpleMailMessage message = new SimpleMailMessage();// 设置邮件主题message.setSubject("邮箱注册码");// 设置邮件发送者,这个跟application.yml中设置的要一致     username:message.setFrom(username);// 设置邮件接收者,可以有多个接收者,中间用逗号隔开,以下类似// message.setTo("10@qq.com","12qq.com");message.setTo(touser);// 设置邮件发送日期message.setSentDate(new Date());// 设置邮件的正文message.setText("邮箱注册码:" + code);// 发送邮件javaMailSender.send(message);
}

调用方法

@ResponseBody
@PostMapping(value = "/sendCode")
@CrossOrigin
public Response sendCode(@RequestParam String touser, HttpServletRequest request) {try {int code = (int)((Math.random()*9+1)*1000);sendSimpleMail(code+"",touser);return Response.success(code);} catch (Exception e) {return Response.error();}
}

四、说明

一般邮箱验证码有时效性,后续注册账户时,生成的验证码需使用redis保存,并设置时效性。后续用户点击注册时,从redis中去拿验证码去校验即可。

http://www.lryc.cn/news/2412519.html

相关文章:

  • 【博主推荐】html好看的个人简历网页版(附源码)
  • 张小龙谈用户体验
  • 纯手码优质JAVA面试八股文
  • 数字媒体概论——视频
  • 代码传奇 | 身价10亿的程序员 雷军当年也为他打工——WPS之父 求伯君
  • asp:DropDownList 的一些属性
  • 网络抓包原理及Fiddler的使用
  • SHELLEXECUTEINFO,ShellExecuteEx
  • Win7 开启显示快速启动工具栏,发送到快速启动右键菜单
  • leetcode刷题汇总
  • 假如金融危机来临,比特币、房产、黄金哪个更保值?
  • rr与hr_统计基本功:OR、RR和HR的区别和选择
  • 方差分析(单因素ANOVA(One-Way ANOVA)、两因素ANOVA(Two-Way ANOVA))
  • Halcon找圆系列(1)如何检测圆形
  • 硬盘检测HD tune使用教程(图文)
  • 全国大学生网络安全精英赛练习题
  • 活久见!TCP两次挥手,你见过吗?那四次握手呢?
  • [Win10]鼠标没用,插入USB口电脑提示USB Optical Mouse找不到驱动程序的解决方案
  • 智能股票选取系统(JSP+java+springmvc+mysql+MyBatis)
  • 怎样利用directX SDK
  • Expression Blend4经验分享:自适应布局浅析
  • 数据挖掘技术:从数据中挖掘价值
  • Linux网络编程:socket与常用函数
  • 【前端素材】推荐5种优质大数据分析展示页面网站设计(8)(附源码)
  • 【QT开发教程】Qt多线程编程:提高应用性能
  • Android 程序静态分析
  • CIS关键工艺技术概览
  • 商城源码:建立自己的电子商务平台的利器!
  • Python3 识别判断图片主要颜色,提取指定颜色的方法
  • 计算机的起源与发展历程