将阿里云短息服务替换成邮箱短息

学习验证码发送

在学习使用阿里云短息发送服务的时候,由于还是学生,注册开通阿里云短息服务需要很多材料,注册流程比较繁琐,而且会产生一定费用。


于是采用邮箱短息来发送验证码的发送,替代阿里云手机短息发送。
以下是实现方法:
第一步:在pom文件中引入依赖

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

第二步:在properties文件中进行相关配置

# 163邮箱的地址为smtp.163.com,直接填写即可
spring.mail.host=smtp.163.com
# 你申请的163邮箱
spring.mail.username=
# 注意密码是在开启smtp/pop3时自动生成的,不是邮箱密码,记得保存一下,不然就找不到了
spring.mail.password=

第三步:写controller代码

public class EmailController {@AutowiredprivateEmailService emailService;@Autowiredprivate RedisTemplate<String,String> redisTemplate;@GetMapping("send/{email}")public R sendMsm(@PathVariable String email) {// 先从redis中看看有没有验证码String code = redisTemplate.opsForValue().get(email);if (!StringUtils.isEmpty(code)) {return R.ok();}emailService.sendVerifyCode(email);return R.ok();}
}

第四步:写service代码,这里内容可以按需修改。

public class EmailServiceImpl implements EmailService {@Resourceprivate JavaMailSender sender;@Value("${spring.mail.username}")private String email;@Autowiredprivate RedisTemplate<String,String> redisTemplate;@Overridepublic void sendVerifyCode(String mail) {SimpleMailMessage message = new SimpleMailMessage();//邮件标题message.setSubject("【xxx网站】您的注册码");//设置随机数作为验证码String code = RandomUtil.getFourBitRandom();// 把验证码放入redis中并且设置过期时间为5分钟redisTemplate.opsForValue().set(mail,code,5, TimeUnit.MINUTES);//邮件内容message.setText("您的验证码是:"+code+",五分钟有效,请及时完成注册。若不是本人操作请忽略");//谁发送,必须和配置文件中的账号一致message.setFrom(email);//谁接收message.setTo(mail);sender.send(message);}
}

这里面我还使用redis设置了验证码过期时间的功能,如果不需要可以删除相关redis代码即可。
2025-12-07 13:40:37 星期日 Chools

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/991438.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

详细介绍:BSS供应商:电信与金融领域的幕后支撑者

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

vue笔记一

#一.常用Markdown语法 1.标题语法 666 666 666 注:依次类推 2.粗体与斜体 粗体:33 斜体:33 同时加粗体与斜体:666 3.列表 有序要创建有序列表,请在每个列表项前添加数字并紧跟一个英文句点。 1.NUO 2.TAN 3.NUO 无…

深入解析:⚡️2025-11-08GitHub日榜Top5|AI黑客代理安全测试工具

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

电感式编码器线圈生成工具 V2.0

电感式编码器线圈生成工具 V2.0电感式编码器线圈生成工具 V2.0(元件打散/组合功能)

谷歌(Google)浏览器显示内存不足,无法打开此网页

此电脑 -> 属性 -> 高级系统设置: 高级 -> 性能 -> 设置 -> 高级 -> 更改: 选择一个盘符,选择系统管理的大小,点击设置,点击确定: 参考:https://blog.csdn.net/weixin_43042683/article/deta…

dw99各种包备份

https://yun.heleguo.cn/s/klXT0本文来自博客园,作者:meny,转载请注明原文链接:https://www.cnblogs.com/mmme/p/19318023

详细介绍:接口自动化测试框架详解(pytest+allure+aiohttp+ 用例自动生成)

详细介绍:接口自动化测试框架详解(pytest+allure+aiohttp+ 用例自动生成)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fami…

Volt Typhoon攻击:深入分析中国背景黑客组织的工具集与技战术

本文深入分析了美国CISA发布的关于中国背景黑客组织“Volt Typhoon”的技术分析报告,详细剖析了其使用的反向代理工具FRPC/FRP、端口扫描工具ScanLine的技术细节、工作原理及在入侵关键基础设施中的具体应用。MAR-104…

一文读懂:如何选择适合的RAG环境架构设计模式?

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

P9174 [COCI 2022/2023 #4] Bojanje

洛谷 题目要求我们求出至少有 \(k\) 个不同颜色的概率。 处理概率问题很容易想到 dp 处理,并且问题中的 \(n\) 很小,但是转移次数 \(t\) 很大,明显是一个矩阵乘法优化 dp 的问题。 那么方法有了就可以考虑转移式了。…

PCB文档处理工具

PCB文档处理工具原理图文档处理工具 原理图库文档处理工具 PCB文档处理工具 PCB库文档处理工具

原理图库文档处理工具

原理图库文档处理工具原理图文档处理工具 原理图库文档处理工具 PCB文档处理工具 PCB库文档处理工具

Manim架构解释

Manim是一个用于创建数学动画的Python库,其类架构设计围绕着场景(Scene)、对象(Mobject)和动画(Animation)这几个核心概念构建,以实现复杂数学可视化的需求。以下是对其主要类架构的详细解释: 1. Mobject 类基…

初识MYSQL —— 复合查询 - 详解

初识MYSQL —— 复合查询 - 详解2025-12-07 13:04 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !import…

洛谷 P7971 [KSN2021] Colouring Balls 题解

人生第一道蓝交互。 观察数据范围,可以考虑数据点分治,分别解决各个 Subtask。 Subtask 1 & 2 由于颜色块连续,当 query(l,r)==1 时必有 \([l,r]\) 的小球颜色全部相同。 于是双指针扫一遍即可,\(l\) 为当前颜…

P10190 [USACO24FEB] Target Practice II S

洛谷 首先进行分类讨论。 对于每个右上角的点,为了不让箭穿过箭靶,必须分配一只向下射的奶牛,即斜率为负数的奶牛。 右下角的点同理,只能选择斜率为正数的点。 对于左上角左下角,不管斜率为正还是负都可以射到。 …

仿生手的混合结构设计与神经形态触觉传感

研究人员开发了一种混合结构的仿生手,它结合了刚性和软体机器人的优点,并集成了三层触觉传感器和机器学习算法,能够像人类一样感知并自适应地抓握多种物体,准确率高达99.69%。感觉即相信:仿生手能“感知”所触之物…

P8272 [USACO22OPEN] Apple Catching G

洛谷 先考虑推导式子。 设我们选择的奶牛为 \(i\),选择的苹果是 \(j\)。 那么可以得到式子: \[|x_i-x_j|\le t_j-t_i \]直接拆掉绝对值,因为绝对值会取较大的值,所以不需要考虑二者大小关系的影响,然后即可推得两式…

材料科学每日总结--Day13--数据挖掘

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

原理图文档处理工具

原理图文档处理工具 原理图文档处理工具 原理图库文档处理工具 PCB文档处理工具 PCB库文档处理工具