cursor-init/qq-email-setup.md
HeXiaoLong:Suanier c6a3ad5332 fix: 修复QQ邮箱From字段格式问题
- 修正From字段配置,确保邮箱地址与SMTP认证用户一致

- 添加fromName支持,支持自定义发件人显示名称

- 改进From字段格式化,符合RFC5322标准

- 添加配置验证,防止空邮箱地址错误

- 创建QQ邮箱配置指南和测试demo

解决550 From header错误,完善邮件服务
2025-07-04 18:42:20 +08:00

104 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# QQ邮箱配置指南
## 🚨 问题原因
错误 `550 The "From" header is missing or invalid` 是因为QQ邮箱要求
1. **From字段的邮箱地址必须与SMTP认证用户名完全一致**
2. **From字段格式必须符合RFC5322标准**
## ⚙️ 正确配置步骤
### 第一步获取QQ邮箱授权码
1. 登录 [QQ邮箱网页版](https://mail.qq.com/)
2. 点击右上角 **设置****账户**
3. 找到 **"POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务"**
4. 开启 **"IMAP/SMTP服务"**
5. 按提示发送短信验证
6. 获得16位授权码例如`abcdefghijklmnop`
### 第二步:创建.env文件
在项目根目录创建 `.env` 文件,内容如下:
```env
# QQ邮箱SMTP配置
SMTP_HOST=smtp.qq.com
SMTP_PORT=587
SMTP_SECURE=false
# 认证信息(重要:必须使用相同的邮箱地址)
SMTP_USER=your_qq_email@qq.com
SMTP_PASS=your_16_digit_authorization_code
# 发件人信息重要邮箱地址必须与SMTP_USER一致
SMTP_FROM_EMAIL=your_qq_email@qq.com
SMTP_FROM_NAME=星撰系统
# 其他配置
EMAIL_REPLY_TO=your_qq_email@qq.com
```
### 第三步:替换为你的真实信息
**示例配置:**
```env
SMTP_HOST=smtp.qq.com
SMTP_PORT=587
SMTP_SECURE=false
SMTP_USER=123456789@qq.com
SMTP_PASS=abcdefghijklmnop
SMTP_FROM_EMAIL=123456789@qq.com
SMTP_FROM_NAME=星撰系统
EMAIL_REPLY_TO=123456789@qq.com
```
## ✅ 配置要点
1. **SMTP_USER****SMTP_FROM_EMAIL** 必须是同一个QQ邮箱
2. **SMTP_PASS** 是16位授权码不是QQ登录密码
3. **SMTP_FROM_NAME** 可以自定义,这是邮件显示的发件人名称
## 🧪 测试配置
配置完成后,运行测试:
```bash
# 快速测试
bun run quick-email-test.ts your_receive_email@example.com
# 详细测试
bun run src/tests/demo/emailDemo.ts your_receive_email@example.com
```
## 🔧 常见问题
### Q: 为什么要用授权码而不是QQ密码
A: QQ邮箱的安全策略第三方应用必须使用授权码
### Q: 授权码在哪里生成?
A: QQ邮箱设置 → 账户 → 开启IMAP/SMTP服务时生成
### Q: 为什么From地址必须与SMTP_USER一致
A: QQ邮箱的反欺诈机制防止伪造发件人
### Q: 可以使用其他邮箱服务吗?
A: 可以修改SMTP_HOST即可
- 163邮箱`smtp.163.com`
- Gmail`smtp.gmail.com`
- 企业邮箱:根据提供商配置
## 📝 配置模板
复制以下内容到 `.env` 文件:
```env
# 请替换为你的真实信息
SMTP_HOST=smtp.qq.com
SMTP_PORT=587
SMTP_SECURE=false
SMTP_USER=替换为你的QQ邮箱@qq.com
SMTP_PASS=替换为你的16位授权码
SMTP_FROM_EMAIL=替换为你的QQ邮箱@qq.com
SMTP_FROM_NAME=星撰系统
EMAIL_REPLY_TO=替换为你的QQ邮箱@qq.com
```