文章目录
概要
本教程面向Java开发者,手把手讲解如何在Spring Boot项目中集成QQ邮箱实现邮件发送功能。内容涵盖QQ邮箱SMTP服务开启步骤、授权码申请流程、Spring Boot邮件依赖配置、application.yml参数详解,以及完整的邮件发送代码实现,帮助开发者快速完成邮件功能集成。
前置条件
注册 QQ 号?
方法 1:电脑注册
打开 QQ 注册页面:
https://ssl.zc.qq.com/
操作步骤:
1. 打开浏览器
2. 进入 QQ 注册页面
3. 输入昵称
4. 设置 QQ 密码
5. 输入手机号
6. 获取短信验证码
7. 提交注册
8. 注册成功后会得到一个 QQ 号
注册成功后,记住你的:
QQ号
QQ密码
绑定手机号
方法 2:手机 QQ App 注册
1. 手机应用商店下载 QQ
2. 打开 QQ
3. 点击注册账号
4. 输入手机号
5. 获取短信验证码
6. 设置昵称和密码
7. 完成注册
开通流程
访问官网QQ邮箱地址:登录QQ邮箱
- 登录你的 QQ 邮箱 如下图所示,可以选择扫码登录

- 点击顶部或右上角的【设置】

- 进入【账号】或【账号与安全】

- 找到:
POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
- 开启:
IMAP/SMTP服务
或 POP3/SMTP服务
- 按提示进行手机号短信验证或 QQ 安全验证

扫码二维码发送信息验证,发送信息成功,点击我已发送





如下图接着按照提示的方式扫码二维码 按照步骤进行验证就好

- 验证通过后,会生成一个授权码
授权码一般是一串字符,例如:
abcd efgh ijkl mnop
如下图所示就是创建生成成功授权码了

技术细节
Spring Boot 配置 QQ 邮箱
假设你的 QQ 邮箱是:
123456789@qq.com
授权码是:
abcdefghijklmnop
那么 application.yml 这样写:
spring:
mail:
host: smtp.qq.com
port: 465
username: 123456789@qq.com
password: abcdefghijklmnop
protocol: smtps
default-encoding: UTF-8
properties:
mail:
smtp:
auth: true
ssl:
enable: true
socketFactory:
class: javax.net.ssl.SSLSocketFactory
port: 465
也可以用 587 端口:
spring:
mail:
host: smtp.qq.com
port: 587
username: 123456789@qq.com
password: abcdefghijklmnop
default-encoding: UTF-8
properties:
mail:
smtp:
auth: true
starttls:
enable: true
required: true
我建议你先用 465 + smtps,比较稳定。
Maven 依赖
你需要有邮箱这个依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
测试发送邮件代码
你可以先写一个简单测试,确认 QQ 邮箱能发出去。
package cn.zhongtg.chunghub.auth.controller;
import lombok.RequiredArgsConstructor;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/test/mail")
@RequiredArgsConstructor
public class TestMailController {
private final JavaMailSender javaMailSender;
@GetMapping("/send")
public String send() {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom("123456789@qq.com");//请改成自己的,application.yml配置的邮箱号
message.setTo("接收验证码的邮箱@example.com");// 修改接受的邮箱
message.setSubject("测试邮件");
message.setText("这是一封来自 Spring Boot 的测试邮件。");
javaMailSender.send(message);
return "发送成功";
}
}
访问:
http://localhost:你的端口/test/mail/send
如果返回:
发送成功
并且邮箱收到邮件,说明配置正常。
小结
有任何问题,可以私信作者《全栈鍾猿》。会看到消息及时回复您的问题和解答哦
QQ邮箱SMTP免费限额:
- 每天发送上限约 500封 邮件
- 完全免费,不收费
- 单封邮件附件大小限制 50MB
注意事项:
- 短时间内发送太多邮件可能触发反垃圾机制,导致临时封禁
- 仅适合个人项目、学习测试、小规模使用
- 如果是生产环境、大量发送(比如营销邮件、大用户量验证码),建议用专业邮件服务:
| 服务 | 免费额度 | 适合场景 |
|---|---|---|
| 阿里云邮件推送 | 每天200封 | 生产环境 |
| 腾讯云SES | 每天200封 | 生产环境 |
| SendGrid | 每天100封 | 国际项目 |