第一步:获取QQ邮箱的“授权码”(唯一需要做的事)
登录你的QQ邮箱网页版。
点击顶部【设置】→【账户】。
向下翻,找到【POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务】这个部分。
找到【开启】POP3/SMTP服务这一项,点击它旁边的【开启】按钮
按照提示(手机发条短信)完成验证。
验证成功后,系统会给你一个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邮箱发送消息的配置,可以编写见简单的令牌验证了。