# 环境配置快速指南

## 📋 配置步骤

### 1. 创建配置文件

如果您是首次使用，请复制模板文件：

```bash
# Windows PowerShell
Copy-Item .env.example .env

# Linux/Mac
cp .env.example .env
```

### 2. 配置必填项

#### ✅ DeepSeek API配置（必填）

1. 访问 [DeepSeek Platform](https://platform.deepseek.com/api_keys)
2. 注册/登录账号
3. 创建API密钥
4. 在`.env`文件中填写：

```env
DEEPSEEK_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```

### 3. 配置可选项

#### 📧 邮件通知配置（推荐）

**配置示例（163邮箱）：**

```env
EMAIL_ENABLED=true
SMTP_SERVER=smtp.163.com
SMTP_PORT=465
EMAIL_FROM=your_email@163.com
EMAIL_PASSWORD=your_authorization_code
EMAIL_TO=receiver@qq.com
```

**获取邮箱授权码：**

1. **163邮箱**
   - 登录163邮箱网页版
   - 设置 → POP3/SMTP/IMAP
   - 开启"POP3/SMTP服务"
   - 点击"生成授权码"
   - 复制授权码（16位字符）

2. **QQ邮箱**
   - 登录QQ邮箱网页版
   - 设置 → 账户
   - 找到"POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务"
   - 开启"POP3/SMTP服务"
   - 点击"生成授权码"
   - 按提示完成验证

**常用SMTP配置：**

| 邮箱类型 | SMTP服务器 | SSL端口 | TLS端口 |
|---------|-----------|---------|---------|
| 163邮箱 | smtp.163.com | 465 | 587 |
| QQ邮箱 | smtp.qq.com | 465 | 587 |
| Gmail | smtp.gmail.com | 465 | 587 |
| 126邮箱 | smtp.126.com | 465 | 587 |

#### 📱 Webhook通知配置（可选）

**钉钉机器人配置：**

1. 在钉钉群中添加自定义机器人
2. 安全设置选择"自定义关键词"
3. **关键词必须设置为：`aiagents通知`**
4. 复制Webhook地址
5. 在`.env`文件中填写：

```env
WEBHOOK_ENABLED=true
WEBHOOK_TYPE=dingtalk
WEBHOOK_URL=https://oapi.dingtalk.com/robot/send?access_token=xxxxxx
```

**飞书机器人配置：**

1. 在飞书群中添加自定义机器人
2. 复制Webhook地址
3. 在`.env`文件中填写：

```env
WEBHOOK_ENABLED=true
WEBHOOK_TYPE=feishu
WEBHOOK_URL=https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxx
```

#### 📊 Tushare数据接口（可选）

1. 访问 [Tushare官网](https://tushare.pro/register)
2. 注册账号
3. 获取Token
4. 在`.env`文件中填写：

```env
TUSHARE_TOKEN=your_tushare_token_here
```

#### 💹 MiniQMT量化交易（可选）

如果您使用MiniQMT进行量化交易：

```env
MINIQMT_ENABLED=true
MINIQMT_ACCOUNT_ID=your_account_id
MINIQMT_HOST=127.0.0.1
MINIQMT_PORT=58610
```

## 🧪 配置测试

配置完成后，运行测试工具验证配置：

```bash
# Windows
.\venv\Scripts\python.exe test_notification_config.py

# Linux/Mac
python test_notification_config.py
```

**测试结果示例：**

```
============================================================
通知配置测试工具
============================================================

[邮件] 测试邮件配置
  - 启用状态: [已启用]
  - SMTP服务器: smtp.163.com
  - 配置完整性: [完整]
[成功] 测试邮件发送成功！

[Webhook] 测试Webhook配置
  - 启用状态: [已启用]
  - Webhook类型: dingtalk
  - 配置完整性: [完整]
[成功] 钉钉Webhook测试成功！

============================================================
测试结果汇总
============================================================
邮件通知: [OK] 正常
Webhook通知: [OK] 正常
```

## ⚠️ 常见问题

### Q1: 邮件发送失败 - 认证错误

**问题**：`SMTPAuthenticationError`

**解决方案**：
- 确认使用的是**授权码**，不是登录密码
- 检查邮箱是否开启了POP3/SMTP服务
- 163邮箱授权码需要在邮箱设置中生成

### Q2: 钉钉消息发送失败 - 关键词不匹配

**问题**：`关键词不匹配`

**解决方案**：
- 确保钉钉机器人的自定义关键词设置为：**`aiagents通知`**
- 或者修改机器人安全设置为"加签"或"IP地址"

### Q3: 网络连接失败

**问题**：`getaddrinfo failed` 或 `Connection timeout`

**解决方案**：
- 检查网络连接
- 检查防火墙设置
- 确认SMTP服务器地址正确
- 尝试使用不同的端口（465或587）

### Q4: .env文件中文乱码

**问题**：编辑器显示中文乱码

**解决方案**：
- 使用UTF-8编码打开文件
- VS Code：右下角点击编码 → 选择"UTF-8"
- 记事本：另存为时选择"UTF-8"编码

## 📁 配置文件说明

```
.env.example    # 配置模板（提交到版本控制）
.env           # 实际配置（不提交到版本控制，包含敏感信息）
```

## 🔐 安全建议

1. **不要提交.env文件到版本控制系统**
   - `.env`文件已在`.gitignore`中
   - 只提交`.env.example`模板

2. **定期更换密钥**
   - 建议定期更换API密钥和授权码
   - 如发现泄露，立即更换

3. **权限控制**
   - 限制`.env`文件的访问权限
   - 不要在公开场合分享配置信息

## 📚 相关文档

- [邮件配置指南.md](邮件配置指南.md) - 详细的邮件配置说明
- [Webhook通知配置指南.md](Webhook通知配置指南.md) - Webhook配置详解
- [通知功能修复说明.md](通知功能修复说明.md) - 问题排查指南

## 🆘 需要帮助？

如遇到问题：
1. 运行测试工具查看详细错误信息
2. 查看相关文档
3. 检查系统日志
4. 参考常见问题解答

---

**更新时间**: 2025-10-14  
**版本**: v1.0

