Skip to main content
Glama
leeguooooo
by leeguooooo
SYNC_VERIFICATION_GUIDE.md7.49 kB
# 邮件同步验证指南 **日期**: 2025-10-15 **状态**: ✅ 已验证 --- ## 🚀 快速验证 ### 1. 运行测试脚本 ```bash # 完整测试(推荐) python3 test_sync.py # 查看测试日志 tail -f test_sync.log ``` ### 2. 使用MCP工具验证 ```bash # 启动MCP服务器 ./run.sh # 在另一个终端或通过MCP客户端调用: # 获取同步状态 mcp call sync_emails '{"action": "status"}' # 强制同步 mcp call sync_emails '{"action": "force"}' # 搜索缓存邮件 mcp call sync_emails '{"action": "search", "query": "关键词"}' # 查看健康状态 mcp call get_sync_health # 查看同步历史 mcp call get_sync_history '{"hours": 24}' # 查看连接池统计 mcp call get_connection_pool_stats ``` --- ## 📊 验证结果示例 ### 测试输出 ``` 🚀 邮件同步测试开始 - 2025-10-15 17:09:43 📝 日志文件: test_sync.log ============================================================ 测试 1: 检查同步状态 ============================================================ ✅ 同步管理器初始化成功 📊 同步状态: {...} ============================================================ 测试 2: 强制同步 ============================================================ 📧 测试账户: example@163.com 🔄 开始同步... ✅ 同步完成! 📊 结果: { 'success': True, 'folders_synced': 23, 'emails_added': 103, 'emails_updated': 0 } ============================================================ 测试 3: 搜索缓存邮件 ============================================================ 🔍 获取最近20封邮件... ✅ 找到 20 封缓存邮件 1. 邮件主题1 发件人: 发件人1 时间: 2025-10-15 17:06:05 ... ============================================================ 测试 4: 健康监控 ============================================================ ✅ 整体健康状况: healthy 📊 统计: - 总账户数: 1 - 健康账户: 1 - 平均分数: 100.0/100 - 成功率: 100.0% ============================================================ 测试 5: 连接池统计 ============================================================ ✅ 连接池统计: - 总创建: 1 - 复用次数: 0 - 已关闭: 0 - 活跃连接: 1 总计: 5/5 测试通过 🎉 所有测试通过! ``` --- ## 📝 日志位置 ### 1. 测试日志 ```bash # 查看测试日志 cat test_sync.log # 实时监控 tail -f test_sync.log ``` ### 2. 同步日志(如果配置了) ```bash # 配置文件: sync_config.json cat sync.log # 实时监控 tail -f sync.log ``` ### 3. 应用程序日志 ```bash # 如果通过MCP服务器运行 # 日志会输出到标准输出 ./run.sh 2>&1 | tee mcp_server.log ``` ### 4. 健康监控历史 ```bash # 查看健康监控历史(JSON格式) cat sync_health_history.json | python3 -m json.tool ``` --- ## 🔍 检查同步数据 ### 查看数据库 ```bash # 使用SQLite查看同步的邮件 sqlite3 email_sync.db # 查看账户 sqlite> SELECT * FROM accounts; # 查看文件夹 sqlite> SELECT * FROM folders; # 查看邮件数量 sqlite> SELECT COUNT(*) FROM emails; # 查看最近邮件 sqlite> SELECT subject, sender, date_sent FROM emails ORDER BY date_sent DESC LIMIT 10; # 退出 sqlite> .quit ``` ### 使用Python脚本 ```python import sqlite3 conn = sqlite3.connect('email_sync.db') cursor = conn.cursor() # 查看账户 cursor.execute("SELECT id, email, provider FROM accounts") print("账户:", cursor.fetchall()) # 查看邮件数 cursor.execute("SELECT COUNT(*) FROM emails") print("总邮件数:", cursor.fetchone()[0]) # 查看未读邮件数 cursor.execute("SELECT COUNT(*) FROM emails WHERE is_read = 0") print("未读邮件:", cursor.fetchone()[0]) conn.close() ``` --- ## 🐛 常见问题 ### 问题1: 缺少schedule模块 ```bash # 错误: ModuleNotFoundError: No module named 'schedule' # 解决: pip3 install schedule # 或 uv pip install schedule ``` ### 问题2: 循环导入错误 ```bash # 错误: ImportError: circular import # 解决: 已在代码中使用延迟导入修复 # 确保使用最新版本的代码 ``` ### 问题3: 没有看到日志 ```bash # 原因: 日志级别太高或未配置 # 解决1: 检查配置 cat sync_config.json | grep -A 5 '"logging"' # 解决2: 运行测试脚本(自动配置日志) python3 test_sync.py # 解决3: 启用文件日志 # 编辑 sync_config.json: { "logging": { "level": "INFO", "file_enabled": true, "file_path": "sync.log" } } ``` ### 问题4: 账户健康状态显示 "no_accounts" ```bash # 原因: 没有配置邮箱账户或账户未同步 # 解决: # 1. 检查accounts.json cat accounts.json # 2. 运行一次同步 python3 test_sync.py # 或通过MCP mcp call sync_emails '{"action": "force"}' ``` --- ## 📈 性能监控 ### 查看同步性能 ```bash # 使用MCP工具 mcp call get_sync_history '{"hours": 24}' # 输出示例: 📜 同步历史 (最近 24 小时, 所有账户) ✅ 10-15 17:10 - 增量同步: 103 封邮件 (8.2秒) ✅ 10-15 14:55 - 增量同步: 45 封邮件 (5.1秒) ✅ 10-15 14:40 - 增量同步: 23 封邮件 (3.5秒) ``` ### 查看连接池效率 ```bash mcp call get_connection_pool_stats # 输出示例: 🔌 IMAP 连接池统计 • 总创建连接数: 15 • 复用次数: 145 • 已关闭连接数: 3 • 等待次数: 2 • 等待超时次数: 0 • 活跃账户数: 5 • 总活跃连接数: 12 📈 连接复用率: 90.6% ``` --- ## ⚙️ 配置说明 ### 同步配置 (sync_config.json) ```json { "sync": { "enabled": true, // 启用同步 "auto_start": true, // 自动启动 "interval_minutes": 15, // 同步间隔(分钟) "full_sync_hours": 24, // 完全同步间隔(小时) "first_sync_days": 180, // 首次同步天数 "incremental_sync_days": 7 // 增量同步天数 }, "logging": { "level": "INFO", // 日志级别 "file_enabled": true, // 启用文件日志 "file_path": "sync.log" // 日志文件路径 } } ``` ### 日志级别 - `DEBUG`: 详细调试信息(最详细) - `INFO`: 一般信息(推荐) - `WARNING`: 警告信息 - `ERROR`: 错误信息(最简洁) --- ## 🎯 推荐验证流程 ### 首次验证 ```bash # 1. 安装依赖 pip3 install schedule # 2. 运行完整测试 python3 test_sync.py # 3. 检查测试结果 # 应该看到: "🎉 所有测试通过!" # 4. 查看同步的邮件 sqlite3 email_sync.db "SELECT COUNT(*) FROM emails;" # 5. 查看健康状态 python3 -c " from src.background.sync_health_monitor import get_health_monitor monitor = get_health_monitor() import json print(json.dumps(monitor.get_overall_health(), indent=2)) " ``` ### 日常监控 ```bash # 通过MCP工具 mcp call get_sync_health mcp call get_connection_pool_stats # 或查看日志 tail -f sync.log tail -f test_sync.log ``` --- ## 📚 相关文档 - [同步改进文档](./docs/SYNC_IMPROVEMENTS.md) - [连接池修复](./docs/CONNECTION_POOL_FIX.md) - [死锁修复](./docs/DEADLOCK_FIX.md) - [架构文档](./docs/ARCHITECTURE.md) --- ## ✅ 验证清单 - [x] 安装schedule模块 - [x] 修复循环导入 - [x] 运行测试脚本 - [x] 所有测试通过 (5/5) - [x] 同步成功 (103封邮件) - [x] 缓存可搜索 (20封邮件) - [x] 健康监控正常 (100/100) - [x] 连接池正常 (1个连接) **验证状态**: ✅ **完全通过!**

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