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

springboot实现发送邮箱验证码

准备工作

在邮箱官网开放SMTP授权,获取相应密钥,才可以进行发送邮件

这里以网易163邮箱为例,登录邮箱后,依次点击“设置-POP3/SMTP/IMAP” ,然后开启SMTP服务。这时候会提示一个授权码,例如:HMASDWFASCZSMTAS,一定要记下来,一会会用到


实现步骤 

第一步、在pom.xml中添加邮箱依赖

        <!-- 邮箱验证码依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>

第二步、在application.yml中配置邮箱连接信息

spring:mail:#smtp服务主机  qq邮箱则为smtp.qq.com;163邮箱是smtp.163.comhost: smtp.163.com#服务协议protocol: smtp# 编码集default-encoding: UTF-8#发送邮件的账户username: ************@163.com#授权码password: ****************test-connection: trueproperties:mail:smtp:auth: truestarttls:enable: truerequired: true

第三步、新建一个工具类,用于生成6位数的随机数

/*** 字符处理工具*/
public class CharUtil {/*** 随机数6位生成* @return*/public static String randomVerify () {Random random = new Random();String result = "";for (int i=0; i<6; i++){result += random.nextInt(10);}return result;}
}

第四步、新建一个controller接口类(核心)即可实现发送邮件

@RestController
@RequestMapping("/mail")
public class MailVerifyController {@Autowiredprivate JavaMailSender mailSender;//	获得发件人信息@Value("${spring.mail.username}")private String from;/*** 发送邮件验证码* @param mail 发送的邮箱* @return*/@PostMapping("/send")public Result save(@RequestParam String mail) {// 获取随机6位验证码String verify = CharUtil.randomVerify();SimpleMailMessage message = new SimpleMailMessage();// 发送邮箱message.setFrom(from);// 接受邮箱message.setTo(mail);// 标题message.setSubject("测试服务平台-邮箱验证");// 内容message.setText("<h1>尊敬的用户您好:</h1><br>" +"<h5> 您正在进行邮箱验证,本次验证码为:<span style='color:#ec0808;font-size: 20px;'>" + verify + "</span>,请在10分钟内进行使用。</h5>" +"<h5>如非本人操作,请忽略此邮件,由此给您带来的不便请谅解!</h5> <h5 style='text-align: right;'>--测试服务平台</h5>");try{// 发送邮件mailSender.send(message);return Result.success(200,"验证码发送成功");} catch (Exception e) {return Result.success(404,"验证码系统发送失败,请检查邮箱账号是否正确!",e);}}}

效果图 

 

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

相关文章:

  • ESP8266使用记录(三)
  • 基于微信小程序的在线视频课程学习平台设计与实现(源码+lw+部署文档+讲解等)
  • CloudCompare 二次开发(15)——点云添加高斯噪声
  • 一波免费、好用的API接口分享
  • Android App ~ LiveData
  • 全球第4大操作系统(鸿蒙)的软件后缀.hap
  • 算法练习第六十四天
  • 安卓系列机型 框架LSP 安装步骤 支持多机型 LSP框架通用安装步骤【二】
  • 实现一个宽高自适应的正方形
  • shell脚本命令
  • Vue2023 面试归纳及复习(2)
  • idea 本地项目上传到 Git 步骤
  • 【从0学习Solidity】41. WETH
  • 微信小程序的无限瀑布流写法
  • 前有CAP理论,后有BASE理论,分布式系统理论基石
  • HTTP、TCP、SOCKET三者之间区别和原理
  • flutter项目中常用第三方模块
  • Android 混淆使用及其字典混淆(Proguard)
  • laravel 阿里云短信发送
  • 算法----LRU缓存机制
  • 基于springboot+vue的旅游系统(前后端分离)
  • 什么是堆栈和队列?如何实现它们?
  • 编译器自动生成的构造函数
  • SpringSecurity - 认证与授权、自定义失败处理、跨域问题、认证成功/失败处理器
  • 自定义映射resultMap
  • Android修行手册 - Android Studio去掉方法参数提示、变量类型提示、方法引用Usage提示
  • 【车载开发系列】ECU Application Software程序刷新步骤
  • inject和provide的使用
  • 2023年中国研究生数学建模竞赛D题
  • Unity制作曲线进度条