news 2026/9/24 19:47:06

短信验证替代品——邮箱验证

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
短信验证替代品——邮箱验证

前言

  • 短信服务都需要服务商类提供(要花钱开通),有的小伙伴既想要验证码但是又不想花钱开通短信服务怎么办呢,我们完全可以使用邮箱验证的方式来进行平替(完全不花钱)。话不多说,上教程。

正文

  • 首先,我们需要获取邮箱的授权码(以qq邮箱为例)

    • 登录qq邮箱,点击右上角的设置

    • 来到安全设置之后,点击安全管理,生成授权码,然后按照提示一步一步获取授权码(最后要复制,如果忘记复制就再生成一个)

  • 接下来就是配置代码

    • 首先引入发送邮件的maven依赖

      <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>
    • 配置yml

      spring:mail:host:smtp.qq.comport:465username:# 你的qq邮箱password:# 你刚刚复制的授权码default-encoding:UTF-8protocol:smtpproperties:mail:smtp:auth:truessl:enable:true# ✅ 必须开启 SSLsocketFactory:class:javax.net.ssl.SSLSocketFactoryfallback:falsestarttls:enable:false# 465 端口用 SSL,不是 STARTTLS
    • 发送邮件的Demo

      importcn.hutool.core.date.DateUtil;importcom.baomidou.mybatisplus.extension.service.impl.ServiceImpl;importcom.travel.echo.domain.entity.Email;importcom.travel.echo.mapper.EmailMapper;importcom.travel.echo.service.IEmailService;importjakarta.annotation.Resource;importlombok.extern.slf4j.Slf4j;importorg.springframework.mail.SimpleMailMessage;importorg.springframework.mail.javamail.JavaMailSender;importorg.springframework.stereotype.Service;/** * @author LuoYang * @date 2025/12/17 */@Service@Slf4jpublicclassEmailDemo{@ResourceprivateJavaMailSenderjavaMailSender;@OverridepublicvoidsendEmail(){SimpleMailMessagemsg=newSimpleMailMessage();msg.setSubject("邮件的主题");msg.setText("邮件的正文");msg.setTo("接收方的邮箱地址");msg.setFrom("你的qq邮箱");javaMailSender.send(msg);}}
  • 这样就可以发送邮件了,我们可以结合redis生成验证码来进行登录,注册的时候还可以在邮件内容设置http连接,通过让用户点击链接调用我们接口来实现验证,具体的用法可以自行探索。


结尾

  • 读万卷书 行万里路
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/24 23:45:05

计算机毕业设计springboot基于vue的汽车销售网站系统 基于SpringBoot+Vue的线上整车销售与服务平台 SpringBoot与Vue融合的汽车电商营销系统

计算机毕业设计springboot基于vue的汽车销售网站系统sbgw1y5d &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。 互联网让“看车-选车-买车”从4S店大厅搬到指尖&#xff0c;传统汽…

作者头像 李华
网站建设 2026/9/24 23:45:02

【tips】el-table 重置排序时

// 当前页面排序置空时Object.assign(defaultSort, { prop: null, order: null })// sort调用无效 表头样式还是存在proxy.$refs["spotparsTable"].sort(defaultSort.prop, defaultSort.order);// NOSONAR// 需要手动重置排序表头样式// 1. clearSortproxy.$refs[&qu…

作者头像 李华
网站建设 2026/9/24 23:44:55

NVM及Live Server的安装说明(保姆级教程)

以前学习东西&#xff0c;都是记录到本地&#xff0c;前段时间不小心把电脑清理成砖了。由于没有及时备份&#xff0c;好些学习笔记都没了。 最近想了解下React&#xff0c;借此机会&#xff0c;将笔记搬到网络上&#xff0c;以后后继查漏补缺。 一、安装nvm nvm作为一款管理…

作者头像 李华
网站建设 2026/9/24 21:48:05

太原卤肉选哪家?探寻地道风味与品牌匠心之旅

在美食文化底蕴深厚的太原&#xff0c;卤肉作为一道经典的传统佳肴&#xff0c;早已融入市民的日常饮食生活。从街头巷尾的小店到拥有成熟供应链的工厂店&#xff0c;每一家卤肉店都承载着独特的配方与匠心。面对“太原卤肉选哪家”的疑问&#xff0c;食客们往往在口碑、风味、…

作者头像 李华
网站建设 2026/9/24 23:44:43

开源许可说明:EmotiVoice采用MIT协议自由商用

EmotiVoice&#xff1a;开源语音合成的破局者 在智能语音助手、有声书、虚拟偶像和游戏配音日益普及的今天&#xff0c;用户早已不再满足于“能说话”的机械朗读。他们渴望的是有情感、有个性、像真人一样的声音。而要实现这一点&#xff0c;技术不仅要足够先进&#xff0c;还必…

作者头像 李华
网站建设 2026/9/24 23:44:38

Elasticsearch:在分析过程中对数字进行标准化

作者&#xff1a;来自 Elastic spinscale 分析链中的数字标准化 在全文搜索中&#xff0c;一个常见问题是如何处理数字。最基本的方法是将它们完全提取出来&#xff0c;并在范围内作为真实数字进行查询&#xff0c;但在很多情况下&#xff0c;这需要大量分析&#xff0c;而且数…

作者头像 李华