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

(小白入门)qq邮箱发送验证码,实现忘记密码重置

第一步:获取QQ邮箱的“授权码”(唯一需要做的事)

  1. 登录你的QQ邮箱网页版。

  2. 点击顶部【设置】→【账户】。

  3. 向下翻,找到【POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务】这个部分。

  4. 找到【开启】POP3/SMTP服务这一项,点击它旁边的【开启】按钮

  5. 按照提示(手机发条短信)完成验证。

  6. 验证成功后,系统会给你一个16位的“授权码”(由字母和数字组成)。务必立即复制保存下来!(比如记在电脑记事本里),这个页面关了就看不了了。

  • 这时候获取的授权码默认是开启的状态

  • 有时候部署项目的时候即便授权码对了,也会报错,说登不进去,下面就是解决方案:

  • 先点击【关闭】SMTP服务(如果已开启)。

  • 等待1分钟,然后重新点击【开启】。

  • 按提示(可能需要发短信)完成验证,获取全新的16位授权码。

  • 立即复制这个新授权码(旧的全部失效)

第二步:创建spring boot项目

更新配置文件

打开application.properties,确保配置完全如下:

# QQ邮箱SMTP配置 spring.mail.host=smtp.qq.com spring.mail.port=587 spring.mail.username=***@qq.com(完整的qq邮箱) spring.mail.password=你刚获取的全新16位授权码 spring.mail.default-encoding=UTF-8 spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.properties.mail.smtp.connectiontimeout=10000 spring.mail.properties.mail.smtp.timeout=10000 spring.mail.properties.mail.smtp.writetimeout=10000

第三步:添加pom.xml的依赖

<!-- 添加这个依赖来解决 MimeMessage 缺失问题 --> <dependency> <groupId>com.sun.mail</groupId> <artifactId>jakarta.mail</artifactId> <version>2.0.1</version> </dependency>

第四步:创建专用测试类

在src/main/java的任意位置,创建新文件EmailTest.java:

package improv1.improv1; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.stereotype.Component; @Component public class EmailTest implements CommandLineRunner { @Autowired private JavaMailSender mailSender; @Override public void run(String... args) { System.out.println("=== 开始邮件测试 ==="); SimpleMailMessage message = new SimpleMailMessage(); message.setFrom("你的QQ邮箱@qq.com"); // 和配置一致 message.setTo("你的QQ邮箱@qq.com"); // 发给自己 message.setSubject("邮件配置测试"); message.setText("测试成功!"); try { mailSender.send(message); System.out.println("✅ 邮件发送成功!请查收。"); } catch (Exception e) { System.err.println("❌ 发送失败: " + e.getMessage()); e.printStackTrace(); } System.out.println("=== 测试结束 ==="); } }

运行显示测试成功,那么恭喜你,完成了qq邮箱发送消息的配置,可以编写见简单的令牌验证了。

http://www.cnnetsun.cn/news/68652.html

相关文章:

  • R语言Cox回归避坑指南(临床数据建模常见错误TOP5)
  • 是德 N9041B UXA 频谱分析仪在真空环境完成卫星信号分析
  • 用是德DSOX1204A示波器快速捕捉与调试信号的实用指南
  • 连接器EMC测试不过关?5步定位干扰源头,快速通过认证
  • 为什么90%的物联网项目卡在部署阶段?真相令人震惊
  • 你还在用线性回归预测产量?R语言随机森林模型已全面超越
  • Laravel 13发布后必须掌握的技能:多模态任务队列的7种高级用法
  • some 知识点 knowledge
  • Gson和Jackson是怎么解决泛型实例化的?源码级剖析告诉你答案
  • 重新发现深圳,找个咖啡/羽毛球搭子一起探索城市的AB面
  • 请求拦截不再难,Symfony 8拦截器实现原理与最佳实践全解析
  • RAG文本分块策略:优化LLM的知识访问效率
  • 桌面那么点大,性能它偏要狂
  • 基于51单片机的智能水表系统设计
  • 基于单片机的交通控制系统
  • 永磁同步电机PMSM 5 - 7次谐波注入降低转矩脉动实践
  • 万字长文梳理如何扩展大语言模型的上下文长度:算法原理、实现方法与适用场景(RoPE、YaRN、优化Attention、RAG等)
  • 特征提取+概率神经网络 PNN 的轴承信号故障诊断模型
  • 单元测试基础知识,面试用得上...
  • 美国国务院恢复 Times New Roman 字体
  • 【万字长文】LLM+KG:大模型与知识图谱融合的黄金时代,技术前景与实现路径全解析!
  • ionet 25.2 发布
  • 谁还不知道!2025年这4款免费AI写歌工具
  • OpenNJet v3.3.1.3
  • 续约上港!张琳芃 400 万冲第 12 冠
  • 2023A卷,区块链文件转储系统
  • 动态图表自由切换,R Shiny多输入控件协同设计全解析
  • 基于单片机的视力保护器设计
  • WebSocket 协议详解:ws 和 wss 的区别与应用
  • 【Matlab】基于图像处理的苹果质量检测分级系统