231 lines
5.8 KiB
Markdown
231 lines
5.8 KiB
Markdown
# 📧 邮箱 SMTP 通知配置指南
|
||
|
||
> QuantDinger 支持通过邮件推送策略信号通知,适合需要详细通知记录的用户。
|
||
|
||
---
|
||
|
||
## 📋 目录
|
||
|
||
- [前置要求](#前置要求)
|
||
- [支持的邮件服务商](#支持的邮件服务商)
|
||
- [配置步骤](#配置步骤)
|
||
- [第一步:获取 SMTP 服务信息](#第一步获取-smtp-服务信息)
|
||
- [第二步:配置环境变量](#第二步配置环境变量)
|
||
- [第三步:策略中启用邮件通知](#第三步策略中启用邮件通知)
|
||
- [常见邮件服务商配置示例](#常见邮件服务商配置示例)
|
||
- [常见问题](#常见问题)
|
||
|
||
---
|
||
|
||
## 前置要求
|
||
|
||
- 拥有一个支持 SMTP 发送的邮箱账号
|
||
- 邮箱已开启 SMTP 服务(部分服务商需手动开启)
|
||
- 获取邮箱的授权码或应用专用密码(非登录密码)
|
||
- QuantDinger 后端服务已部署并运行
|
||
|
||
---
|
||
|
||
## 支持的邮件服务商
|
||
|
||
QuantDinger 支持任何标准 SMTP 协议的邮件服务商,包括但不限于:
|
||
|
||
| 服务商 | SMTP 服务器 | 端口 | 加密方式 |
|
||
|--------|------------|------|----------|
|
||
| Gmail | smtp.gmail.com | 587 (TLS) / 465 (SSL) | TLS / SSL |
|
||
| Outlook/Hotmail | smtp.office365.com | 587 | TLS |
|
||
| QQ 邮箱 | smtp.qq.com | 587 (TLS) / 465 (SSL) | TLS / SSL |
|
||
| 163 邮箱 | smtp.163.com | 465 (SSL) / 25 | SSL |
|
||
| 阿里企业邮箱 | smtp.qiye.aliyun.com | 465 | SSL |
|
||
| 腾讯企业邮箱 | smtp.exmail.qq.com | 465 | SSL |
|
||
| SendGrid | smtp.sendgrid.net | 587 | TLS |
|
||
| Mailgun | smtp.mailgun.org | 587 | TLS |
|
||
| Amazon SES | email-smtp.{region}.amazonaws.com | 587 | TLS |
|
||
|
||
---
|
||
|
||
## 配置步骤
|
||
|
||
### 第一步:获取 SMTP 服务信息
|
||
|
||
以 **QQ 邮箱** 为例:
|
||
|
||
1. 登录 QQ 邮箱网页版 → 设置 → 账户
|
||
2. 找到「POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务」
|
||
3. 开启「SMTP 服务」
|
||
4. 按提示生成**授权码**(16位字母)
|
||
|
||
> ⚠️ **重要**:授权码不是 QQ 密码,请妥善保管。
|
||
|
||
以 **Gmail** 为例:
|
||
|
||
1. 访问 [Google 账号安全设置](https://myaccount.google.com/security)
|
||
2. 开启两步验证
|
||
3. 生成「应用专用密码」(App Password)
|
||
4. 选择「邮件」和设备类型,获取 16 位密码
|
||
|
||
---
|
||
|
||
### 第二步:配置环境变量
|
||
|
||
在 `backend_api_python/.env` 文件中配置 SMTP 参数:
|
||
|
||
```bash
|
||
# =========================
|
||
# Email / SMTP 配置
|
||
# =========================
|
||
|
||
# SMTP 服务器地址(必填)
|
||
SMTP_HOST=smtp.qq.com
|
||
|
||
# SMTP 端口(必填)
|
||
# 常用端口:587 (TLS) / 465 (SSL) / 25 (不加密,不推荐)
|
||
SMTP_PORT=465
|
||
|
||
# SMTP 登录用户名(必填,通常是邮箱地址)
|
||
SMTP_USER=your_email@qq.com
|
||
|
||
# SMTP 密码或授权码(必填)
|
||
SMTP_PASSWORD=your_authorization_code
|
||
|
||
# 发件人地址(可选,默认使用 SMTP_USER)
|
||
SMTP_FROM=your_email@qq.com
|
||
|
||
# 是否使用 STARTTLS(端口 587 通常设为 true)
|
||
SMTP_USE_TLS=false
|
||
|
||
# 是否使用 SSL(端口 465 通常设为 true)
|
||
SMTP_USE_SSL=true
|
||
```
|
||
|
||
配置完成后重启后端服务使配置生效。
|
||
|
||
---
|
||
|
||
### 第三步:策略中启用邮件通知
|
||
|
||
在策略配置页面的「信号通知」设置中:
|
||
|
||
1. 勾选启用 **Email** 通知渠道
|
||
2. 在 **收件邮箱** 字段填入接收通知的邮箱地址
|
||
|
||
> 💡 **提示**:支持填入多个邮箱地址(逗号分隔),实现多人通知。
|
||
|
||
---
|
||
|
||
## 常见邮件服务商配置示例
|
||
|
||
### QQ 邮箱
|
||
|
||
```bash
|
||
SMTP_HOST=smtp.qq.com
|
||
SMTP_PORT=465
|
||
SMTP_USER=123456789@qq.com
|
||
SMTP_PASSWORD=abcdefghijklmnop # 16位授权码
|
||
SMTP_FROM=123456789@qq.com
|
||
SMTP_USE_TLS=false
|
||
SMTP_USE_SSL=true
|
||
```
|
||
|
||
### 163 邮箱
|
||
|
||
```bash
|
||
SMTP_HOST=smtp.163.com
|
||
SMTP_PORT=465
|
||
SMTP_USER=your_email@163.com
|
||
SMTP_PASSWORD=your_authorization_code # 授权码
|
||
SMTP_FROM=your_email@163.com
|
||
SMTP_USE_TLS=false
|
||
SMTP_USE_SSL=true
|
||
```
|
||
|
||
### Gmail
|
||
|
||
```bash
|
||
SMTP_HOST=smtp.gmail.com
|
||
SMTP_PORT=587
|
||
SMTP_USER=your_email@gmail.com
|
||
SMTP_PASSWORD=your_app_password # 应用专用密码
|
||
SMTP_FROM=your_email@gmail.com
|
||
SMTP_USE_TLS=true
|
||
SMTP_USE_SSL=false
|
||
```
|
||
|
||
### Outlook / Office 365
|
||
|
||
```bash
|
||
SMTP_HOST=smtp.office365.com
|
||
SMTP_PORT=587
|
||
SMTP_USER=your_email@outlook.com
|
||
SMTP_PASSWORD=your_password
|
||
SMTP_FROM=your_email@outlook.com
|
||
SMTP_USE_TLS=true
|
||
SMTP_USE_SSL=false
|
||
```
|
||
|
||
### SendGrid
|
||
|
||
```bash
|
||
SMTP_HOST=smtp.sendgrid.net
|
||
SMTP_PORT=587
|
||
SMTP_USER=apikey
|
||
SMTP_PASSWORD=SG.xxxxxxxxxxxxxxxxxxxxx # API Key
|
||
SMTP_FROM=verified_sender@yourdomain.com
|
||
SMTP_USE_TLS=true
|
||
SMTP_USE_SSL=false
|
||
```
|
||
|
||
### Amazon SES
|
||
|
||
```bash
|
||
SMTP_HOST=email-smtp.us-east-1.amazonaws.com # 替换为您的区域
|
||
SMTP_PORT=587
|
||
SMTP_USER=AKIAIOSFODNN7EXAMPLE # SMTP 凭证用户名
|
||
SMTP_PASSWORD=your_smtp_password # SMTP 凭证密码
|
||
SMTP_FROM=verified@yourdomain.com
|
||
SMTP_USE_TLS=true
|
||
SMTP_USE_SSL=false
|
||
```
|
||
|
||
---
|
||
|
||
## 常见问题
|
||
|
||
### Q: 发送失败,提示认证错误?
|
||
|
||
1. 检查用户名和密码(授权码)是否正确
|
||
2. 确认已开启邮箱的 SMTP 服务
|
||
3. 部分邮箱需要使用授权码而非登录密码
|
||
|
||
### Q: 连接超时?
|
||
|
||
1. 检查 SMTP 服务器地址和端口是否正确
|
||
2. 确认服务器防火墙是否放行对应端口
|
||
3. 如使用代理,确认代理配置正确
|
||
|
||
### Q: TLS 和 SSL 如何选择?
|
||
|
||
| 端口 | 加密方式 | 配置 |
|
||
|------|---------|------|
|
||
| 587 | STARTTLS | `SMTP_USE_TLS=true`, `SMTP_USE_SSL=false` |
|
||
| 465 | 隐式 SSL | `SMTP_USE_TLS=false`, `SMTP_USE_SSL=true` |
|
||
| 25 | 无加密 | `SMTP_USE_TLS=false`, `SMTP_USE_SSL=false` (不推荐)|
|
||
|
||
### Q: 邮件被标记为垃圾邮件?
|
||
|
||
1. 使用与 `SMTP_USER` 一致的 `SMTP_FROM` 地址
|
||
2. 考虑使用专业邮件服务(如 SendGrid、Mailgun)
|
||
3. 配置域名 SPF、DKIM、DMARC 记录(企业邮箱)
|
||
|
||
### Q: 可以发送 HTML 格式邮件吗?
|
||
|
||
是的,QuantDinger 自动发送包含格式化信息的 HTML 邮件,同时附带纯文本备选内容以确保兼容性。
|
||
|
||
---
|
||
|
||
## 相关文档
|
||
|
||
- [Telegram 通知配置](./NOTIFICATION_TELEGRAM_CONFIG_CH.md)
|
||
- [手机短信通知配置](./NOTIFICATION_SMS_CONFIG_CH.md)
|
||
- [策略开发指南](./STRATEGY_DEV_GUIDE_CN.md)
|