Skip to main content
Glama
leeguooooo
by leeguooooo
README.md7.42 kB
# n8n 智能邮件监控与通知系统 这是一个完整的 n8n 工作流,用于自动监控邮件、使用 AI 过滤重要邮件并发送通知。 ## 🚀 功能特性 - **定时监控**: 每5分钟自动检查新邮件 - **AI 智能过滤**: 使用 AI 判断邮件重要性 - **多平台通知**: 支持钉钉、飞书、企业微信、Slack 等 - **去重机制**: 避免重复通知同一封邮件 - **错误处理**: 完善的错误处理和通知机制 - **健康监控**: 系统运行状态监控 ## 📋 前置要求 ### 1. 系统环境 - n8n 已安装并运行 - Python 3.11+ - MCP 邮件服务已配置 ### 2. 依赖安装 ```bash # 安装 Python 依赖 pip install openai anthropic requests # 或者使用项目的依赖管理 cd /path/to/mcp-email-service uv sync ``` ### 3. 配置文件准备 确保以下配置文件已创建: - `accounts.json` - 邮件账户配置 - `ai_filter_config.json` - AI 过滤配置 - `notification_config.json` - 通知配置 - `email_monitor_config.json` - 监控配置 ## 🛠️ 安装步骤 ### 1. 导入工作流 1. 打开 n8n 界面 2. 点击 "Import from file" 或 "Import from URL" 3. 选择 `email_monitoring_workflow.json` 文件 4. 确认导入 ### 2. 配置工作流 #### 修改脚本路径 在 "邮件监控" 节点中,更新脚本路径: ```bash # 将路径改为你的实际路径 /your/path/to/mcp-email-service/scripts/email_monitor.py run ``` #### 配置 Webhook URL 在通知节点中配置你的 webhook URL: **钉钉机器人**: ``` https://oapi.dingtalk.com/robot/send?access_token=YOUR_DINGTALK_TOKEN ``` **飞书机器人**: ``` https://open.feishu.cn/open-apis/bot/v2/hook/YOUR_FEISHU_TOKEN ``` **企业微信机器人**: ``` https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_WECHAT_KEY ``` ### 3. 配置定时器 默认每5分钟运行一次,可以根据需要调整: - 每分钟: `* * * * *` - 每10分钟: `*/10 * * * *` - 每小时: `0 * * * *` ## ⚙️ 配置文件详解 ### 1. AI 过滤配置 (`ai_filter_config.json`) ```json { "ai_provider": "openai", "model": "gpt-3.5-turbo", "api_key_env": "OPENAI_API_KEY", "priority_threshold": 0.7, "max_body_length": 500, "filter_rules": { "high_priority_senders": [ "boss@company.com", "important@client.com" ], "high_priority_keywords": [ "urgent", "important", "asap", "紧急", "重要" ], "low_priority_keywords": [ "newsletter", "promotion", "unsubscribe", "广告", "推广" ] } } ``` ### 2. 通知配置 (`notification_config.json`) ```json { "webhooks": [ { "name": "dingtalk", "webhook_url": "https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN", "webhook_type": "dingtalk", "secret": "YOUR_SECRET", "enabled": true, "template": "dingtalk" }, { "name": "feishu", "webhook_url": "https://open.feishu.cn/open-apis/bot/v2/hook/YOUR_TOKEN", "webhook_type": "feishu", "enabled": true, "template": "feishu" } ], "deduplication": { "enabled": true, "window_hours": 24, "cleanup_days": 7 } } ``` ### 3. 监控配置 (`email_monitor_config.json`) ```json { "email": { "fetch_limit": 20, "unread_only": true, "account_id": null, "folder": "INBOX" }, "ai_filter": { "enabled": true, "config_path": "ai_filter_config.json", "priority_threshold": 0.7 }, "notification": { "enabled": true, "config_path": "notification_config.json", "webhook_names": null } } ``` ## 🔧 环境变量设置 在 n8n 或系统中设置以下环境变量: ```bash # OpenAI API Key (如果使用 OpenAI) export OPENAI_API_KEY="your_openai_api_key" # Anthropic API Key (如果使用 Claude) export ANTHROPIC_API_KEY="your_anthropic_api_key" # Python 路径 (确保能找到项目依赖) export PYTHONPATH="/path/to/mcp-email-service:$PYTHONPATH" ``` ## 🚦 工作流说明 ### 节点功能 1. **定时触发器**: 每5分钟触发一次监控 2. **邮件监控**: 执行主监控脚本 3. **解析结果**: 解析监控结果并提取统计信息 4. **检查重要邮件**: 判断是否有重要邮件需要通知 5. **准备管理员通知**: 格式化通知消息 6. **发送管理员通知**: 发送到配置的 webhook 7. **记录日志**: 记录运行日志 8. **错误处理**: 处理运行错误并发送错误通知 9. **健康检查**: 监控系统健康状态 ### 数据流 ``` 定时触发 → 邮件监控 → 解析结果 → 检查重要邮件 ↓ ↓ 错误处理 ←→ 发送通知 + 记录日志 → 健康检查 ``` ## 🧪 测试和调试 ### 1. 测试单个组件 ```bash # 测试邮件获取 python scripts/call_email_tool.py list_unread_emails '{"limit":5}' # 测试 AI 过滤 python scripts/ai_email_filter.py '[{"id":"test","subject":"Urgent meeting","from":"boss@company.com","date":"2024-01-15","body_preview":"We need to discuss..."}]' # 测试通知发送 python scripts/notification_service.py test # 测试完整流程 python scripts/email_monitor.py run ``` ### 2. 在 n8n 中测试 1. 点击工作流中的 "Test workflow" 按钮 2. 手动触发 "定时触发器" 节点 3. 查看每个节点的执行结果 4. 检查日志输出 ### 3. 调试技巧 - 在 "解析结果" 节点中添加 `console.log()` 输出调试信息 - 使用 n8n 的执行历史查看详细运行日志 - 检查 Python 脚本的返回码和错误信息 ## 📊 监控和维护 ### 1. 运行状态监控 - 查看 n8n 执行历史 - 检查通知发送成功率 - 监控系统资源使用 ### 2. 日志管理 ```bash # 查看监控日志 tail -f email_monitor.log # 查看通知历史 python scripts/notification_service.py stats 7 ``` ### 3. 性能优化 - 调整监控频率 - 优化 AI 过滤规则 - 配置合适的邮件获取数量 ## 🔒 安全注意事项 1. **API 密钥安全** - 使用环境变量存储 API 密钥 - 定期轮换密钥 - 限制 API 密钥权限 2. **Webhook 安全** - 使用 HTTPS URL - 配置 webhook 签名验证 - 限制 webhook 访问权限 3. **邮件内容隐私** - 注意发送给 AI 的邮件内容 - 考虑使用本地 AI 模型 - 配置内容过滤规则 ## 🆘 故障排除 ### 常见问题 1. **脚本执行失败** - 检查 Python 路径和依赖 - 验证配置文件格式 - 查看详细错误信息 2. **AI 过滤失败** - 检查 API 密钥配置 - 验证网络连接 - 查看 API 调用限制 3. **通知发送失败** - 验证 webhook URL - 检查签名配置 - 测试网络连接 4. **重复通知** - 检查去重配置 - 清理历史记录 - 验证邮件 ID 唯一性 ### 日志分析 ```bash # 查看最近的错误 grep "ERROR" email_monitor.log | tail -10 # 统计成功率 grep -c "SUCCESS" email_monitor.log grep -c "ERROR" email_monitor.log ``` ## 📈 扩展功能 ### 1. 添加更多通知渠道 - Slack - Microsoft Teams - 自定义 webhook ### 2. 增强 AI 过滤 - 多模型投票 - 自定义训练数据 - 上下文学习 ### 3. 高级功能 - 邮件自动回复 - 智能分类归档 - 优先级队列处理 ## 📞 支持 如有问题,请: 1. 查看日志文件 2. 检查配置文件 3. 运行测试命令 4. 提交 Issue 或联系技术支持 --- **注意**: 请根据实际环境调整配置参数,确保系统安全和稳定运行。

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/leeguooooo/email-mcp-service'

If you have feedback or need assistance with the MCP directory API, please join our Discord server