# WXMSG - 微信消息自动发送程序 ## 功能概述 这是一个自动发送每日AI新闻图片和消息到微信的程序,具有完整的日志记录、错误处理和微信状态检查功能。 ## 主要功能 - **定时发送**: 每天在指定时间自动发送图片和消息 - **容错机制**: 微信失败时自动发送飞书提醒 - **详细日志**: 完整的操作日志记录,便于问题排查 - **进程管理**: 支持后台运行和进程控制 - **微信状态检查**: 自动检查微信客户端状态和接收者有效性 - **智能重试**: 支持多种图片格式,自动重试机制 ## 新增功能 ### 微信状态检查 程序现在会自动检查: - 微信客户端是否就绪 - 微信是否已登录 - 接收者是否存在于联系人列表 - 当前会话数量和联系人数量 - 微信窗口状态 ### 发送结果验证 使用wxauto的WxResponse对象验证: - 文件发送是否成功 - 消息发送是否成功 - 详细的发送状态信息 - 部分失败时的智能处理 ### 多格式图片支持 支持多种图片格式: - .jpg - .jpeg - .png ## 日志功能 ### 日志文件位置 所有日志文件保存在 `wxauto_logs/` 目录下,按日期和模块分类: - `sendmsg_YYYYMMDD.log` - 主发送模块日志 - `scheduler_YYYYMMDD.log` - 定时任务调度器日志 - `send_openmsg_YYYYMMDD.log` - 飞书提醒消息日志 - `send_filemsg_YYYYMMDD.log` - 文件未找到提醒日志 - `service_runner_YYYYMMDD.log` - 后台服务启动日志 - `stop_scheduler_YYYYMMDD.log` - 进程停止日志 ### 日志级别 - **INFO**: 正常操作信息 - **WARNING**: 警告信息 - **ERROR**: 错误信息 - **DEBUG**: 调试信息 ### 日志内容 每个日志条目包含: - 时间戳 - 模块名称 - 日志级别 - 函数名和行号 - 详细消息 ## 使用方法 ### 1. 直接运行 ```bash python sendmsg.py ``` ### 2. 启动定时任务 ```bash python scheduler.py ``` ### 3. 后台运行 ```bash python service_runner.py ``` ### 4. 停止服务 ```bash python stop_scheduler.py ``` ### 5. 测试微信状态 ```bash python test_wechat_status.py ``` ## 配置说明 在 `config.py` 中配置: - 发送时间 - 文件路径 - 消息内容 - 飞书API配置 ## 故障排查 ### 查看日志 1. 检查 `wxauto_logs/` 目录下的最新日志文件 2. 根据时间戳找到相关操作的日志 3. 查看ERROR级别的日志了解错误详情 ### 常见问题 1. **微信客户端问题**: 查看 `sendmsg_*.log` 中的微信初始化日志 2. **文件未找到**: 检查文件路径配置和文件是否存在 3. **飞书API问题**: 查看 `send_openmsg_*.log` 和 `send_filemsg_*.log` 4. **进程管理问题**: 查看 `service_runner_*.log` 和 `stop_scheduler_*.log` ### 微信状态检查 运行测试脚本检查微信状态: ```bash python test_wechat_status.py ``` 这将显示: - 微信客户端状态 - 登录状态 - 接收者有效性 - 可用方法列表 ### 日志示例 ``` 2024-01-15 11:40:00 - sendmsg - INFO - check_wechat_status:45 - ✅ 微信已登录,当前会话数量: 15 2024-01-15 11:40:00 - sendmsg - INFO - check_wechat_status:52 - ✅ 接收者 '文件传输助手' 存在于联系人列表中 2024-01-15 11:40:00 - sendmsg - INFO - send_daily_message:120 - 🎉 所有内容发送完成! 2024-01-15 11:40:00 - sendmsg - INFO - send_daily_message:125 - 发送结果总结: 2024-01-15 11:40:00 - sendmsg - INFO - send_daily_message:126 - 📎 文件发送: ✅ 成功 2024-01-15 11:40:00 - sendmsg - INFO - send_daily_message:127 - 💬 消息发送: ✅ 成功 ``` ## 依赖要求 - Python 3.13+ - wxauto - lark-oapi - schedule - psutil (可选,用于进程管理) ## 注意事项 1. 确保微信客户端已登录 2. 检查文件路径配置是否正确 3. 验证飞书API配置是否有效 4. 定期检查日志文件大小,避免占用过多磁盘空间 5. 运行前建议先执行 `test_wechat_status.py` 检查微信状态 ## 更新日志 ### v0.2.0 - 添加微信状态检查功能 - 使用WxResponse验证发送结果 - 支持多种图片格式 - 改进错误处理和日志记录 - 添加微信状态测试脚本 ### v0.1.0 - 基础消息发送功能 - 定时任务调度 - 飞书提醒机制 - 基础日志记录