如何利用YuYuWechat实现微信定时消息与文件自动发送的完整解决方案
【免费下载链接】YuYuWechat一个让微信(非WEB版)定时循环发送消息/文件(cron表达式精确到分钟),批量群发消息,定时检查聊天记录的小工具🚀,提供了简易直观的界面,并支持邮箱报警等功能,可部署到任意平台项目地址: https://gitcode.com/gh_mirrors/yu/YuYuWechat
你是否厌倦了每天重复发送相同的微信消息?是否需要在特定时间向多个联系人发送重要通知却总是忘记?YuYuWechat 正是为解决这些痛点而生的微信自动化工具,它让定时消息发送、批量群发和聊天记录监控变得简单高效。这个基于 Python 和 Django 的开源项目,通过 C/S 架构实现了微信客户端的自动化操作,为个人用户和团队协作提供了强大的微信自动化能力。
三步完成基础配置:快速搭建微信自动化环境
环境准备与项目部署
YuYuWechat 采用客户端-服务端分离架构,服务端运行在 Windows 系统上与微信客户端交互,客户端则可部署在任何支持 Docker 或 Python 的平台。
第一步:服务端部署(Windows 环境)
服务端负责与微信客户端进行实际交互,需要安装在运行微信的 Windows 计算机上:
# 克隆项目仓库 git clone https://gitcode.com/gh_mirrors/yu/YuYuWechat # 进入服务端目录 cd YuYuWechat/YuYuWechatV2_Server # 安装依赖 pip install -r requirements.txt # 启动服务端(默认端口8000) python manage.py runserver 0.0.0.0:8000第二步:客户端部署(任意平台)
客户端提供 Web 管理界面,可以通过 Docker 快速部署:
# docker-compose.yml 配置示例 version: '3.8' services: yuyuwechat_client: image: mona233/yuyuwechatv2_client:latest ports: - "7500:7500" environment: - CSRF_TRUSTED_ORIGINS=http://localhost:7500 depends_on: - redis - postgres restart: always redis: image: redis:latest ports: - "6379:6379" restart: always postgres: image: postgres:latest environment: POSTGRES_PASSWORD: tykWyr-bepqu6-fafvym ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data restart: always volumes: postgres_data:第三步:微信路径配置
首次使用需要配置微信客户端的安装路径。访问http://127.0.0.1:8000/admin/,使用默认账号admin和密码tykWyr-bepqu6-fafvym登录后台,在微信配置中设置正确的微信安装路径。
核心功能配置对比
| 功能模块 | 配置复杂度 | 适用场景 | 可靠性保障 |
|---|---|---|---|
| 定时消息发送 | ⭐⭐⭐ | 日常提醒、定期通知 | 错误检测 + 邮件报警 |
| 文件自动发送 | ⭐⭐ | 定时发送文档、图片 | 发送状态验证 |
| 消息检测监控 | ⭐⭐⭐⭐ | 关键信息确认、异常监控 | 多维度检测机制 |
| 批量群发管理 | ⭐⭐ | 营销推广、团队通知 | 分组管理 + 进度追踪 |
实现自动化工作流的5个步骤
第一步:微信用户管理
在客户端后台管理界面中,首先需要添加微信联系人信息:
- 访问
http://localhost:7500/admin/ - 导航至 Wechat users 模块
- 点击 "Add Wechat user" 添加新用户
- 填写必填信息:
- Username:微信好友的备注名(必须与微信中完全一致)
- Wechatid:微信号(可选)
- Group:用户分组,便于批量管理
第二步:定时消息配置
定时消息是 YuYuWechat 的核心功能,支持精确到分钟的 Cron 表达式调度:
# 定时消息配置示例 { "is_active": True, # 是否激活该定时任务 "user": "文件传输助手", # 接收消息的用户 "text": "每日工作报告已发送", # 消息内容 "cron_expression": "0 9 * * *", # 每天上午9点执行 "execution_count": 30, # 执行30次后停止 "execution_skip": 0 # 不跳过任何执行 }Cron 表达式实用示例:
| 表达式 | 含义 | 适用场景 |
|---|---|---|
*/10 * * * * | 每10分钟执行一次 | 高频监控任务 |
0 9 * * 1-5 | 工作日早上9点执行 | 工作日提醒 |
0 0 1 * * | 每月1日午夜执行 | 月度报告发送 |
0 18 * * 5 | 每周五下午6点执行 | 周末提醒 |
0 8,12,18 * * * | 每天8点、12点、18点执行 | 三餐提醒 |
第三步:文件自动发送配置
除了文本消息,YuYuWechat 还支持定时发送文件:
# 文件定时发送配置 { "is_active": True, "user": "项目团队群", "file_path": "C:/reports/daily_report.pdf", # 文件绝对路径 "cron_expression": "0 17 * * 1-5", # 工作日下班前 "execution_count": 0, # 0表示无限次执行 "execution_skip": 0 }文件发送注意事项:
- 文件路径使用正斜杠
/而非反斜杠\ - 确保服务端有文件读取权限
- 大文件建议先压缩再发送
第四步:消息检测规则设置
消息检测功能可以监控特定聊天中的关键词出现情况:
# 消息检测配置示例 { "is_active": True, "user": "技术支持群", "keyword": "紧急|urgent|重要", # 支持正则表达式 "cron_expression": "*/5 * * * *", # 每5分钟检测一次 "message_count": 20, # 检测最近20条消息 "use_time_blocks": False, # 按消息条数而非时间分组 "report_on_found": True # 检测到关键词时报错 }第五步:邮件报警系统配置
为确保系统可靠性,配置邮件报警至关重要:
- 访问邮箱配置页面
- 填写 SMTP 服务器信息(推荐使用 163 邮箱)
- 设置收件人列表
- 测试邮件发送功能
# 邮箱配置示例(163邮箱) EMAIL_HOST = 'smtp.163.com' EMAIL_PORT = 25 EMAIL_SECURITY = 'tls' EMAIL_HOST_USER = 'your_email@163.com' EMAIL_HOST_PASSWORD = 'your_authorization_code' # 授权码,非登录密码 DEFAULT_FROM_EMAIL = 'your_email@163.com' RECIPIENT_LIST = 'admin@company.com,monitor@company.com'核心功能深度解析
定时消息发送机制
YuYuWechat 的定时消息系统基于 Celery 和 Redis 实现分布式任务调度:
# 定时任务调度逻辑简化示例 from celery.schedules import crontab from celery import Celery app = Celery('yuyuwechat') app.conf.beat_schedule = { 'check-scheduled-messages': { 'task': 'client_app.tasks.check_scheduled_messages', 'schedule': crontab(minute='*'), # 每分钟检查一次 }, 'check-message-checks': { 'task': 'client_app.tasks.check_message_checks', 'schedule': crontab(minute='*/5'), # 每5分钟检查一次 }, }执行流程:
- Celery Beat 按配置频率触发检查任务
- 查询数据库中所有激活的定时消息
- 根据 Cron 表达式判断是否需要执行
- 调用服务端 API 发送消息
- 记录执行日志并更新状态
错误检测与恢复机制
YuYuWechat 采用多层错误检测确保消息不遗漏:
| 检测类型 | 检测频率 | 处理方式 | 报警方式 |
|---|---|---|---|
| 微信状态检测 | 每分钟 | 重启微信客户端 | 邮件报警 |
| 消息发送验证 | 每次发送后 | 读取聊天记录验证 | 错误日志 |
| 定时任务遗漏 | 每分钟 | 对比计划与实际执行时间 | 邮件报警 |
| 服务器连接 | 每分钟 | 重连机制 | 错误日志 |
消息检测的高级应用
消息检测功能支持多种检测模式,满足不同场景需求:
1. 关键词存在性检测
# 检测是否出现特定关键词 { "keyword": "已完成|完成", "report_on_found": False, # 未检测到时报警 "message_count": 10 }2. 时间分组检测
# 按时间分组检测消息频率 { "keyword": "", "use_time_blocks": True, "message_count": 6, # 检测6个时间分组 "report_on_found": True # 任何消息出现都报警 }3. 正则表达式检测
# 使用正则表达式进行复杂匹配 { "keyword": "错误[0-9]{3}|异常[A-Z]{2}", "report_on_found": True }实际应用场景详解
场景一:团队日常管理自动化
需求背景:项目经理需要每天向团队成员发送工作安排,并收集工作进度反馈。
解决方案:
定时发送晨会提醒
cron_expression = "0 9 * * 1-5" # 工作日9:00 text = "今日晨会10:00开始,请准时参加"进度收集监控
keyword = "进度|完成|进展" cron_expression = "0 18 * * 1-5" # 工作日18:00 report_on_found = False # 未收到进度报告时报警周报自动汇总
cron_expression = "0 16 * * 5" # 周五16:00 text = "请在下班前提交本周工作总结"
场景二:客户服务自动化
需求背景:客服团队需要定时发送产品更新通知,并监控客户反馈。
解决方案:
产品更新批量通知
# 批量选择客户分组 user_group = "VIP客户" cron_expression = "0 10 1 * *" # 每月1日10:00 text = "本月产品更新内容已发布,请查看..."客户反馈关键词监控
keyword = "问题|bug|故障|不满意" cron_expression = "*/15 * * * *" # 每15分钟检测 message_count = 50 # 监控最近50条消息满意度调查自动发送
cron_expression = "0 0 */7 * *" # 每7天一次 text = "感谢您使用我们的产品,请花1分钟填写满意度调查"
场景三:个人事务提醒系统
需求背景:个人用户需要管理多个定时提醒,包括生日祝福、账单提醒等。
解决方案:
生日自动祝福
cron_expression = "0 9 * * *" # 每天9:00检查 # 结合自定义脚本判断是否为生日账单提醒设置
cron_expression = "0 10 25 * *" # 每月25日10:00 text = "本月信用卡账单将于5天后到期,请及时还款"重要文件定期备份
cron_expression = "0 2 * * 0" # 每周日2:00 file_path = "C:/backup/weekly_report.docx"
进阶配置与优化技巧
性能优化建议
1. 数据库优化
# 定期清理旧日志 # 在自定义脚本中执行 DELETE FROM client_app_log WHERE timestamp < NOW() - INTERVAL '30 days';2. 任务调度优化
# 分散高频任务执行时间 # 避免所有任务在同一分钟执行 cron_expression = "*/5 * * * *" # 改为 cron_expression = "1-56/5 * * * *" # 分散执行3. 网络连接优化
# 增加重试机制和超时设置 import requests from requests.adapters import HTTPAdapter from requests.packages.urllib3.util.retry import Retry session = requests.Session() retry = Retry(total=3, backoff_factor=0.5) adapter = HTTPAdapter(max_retries=retry) session.mount('http://', adapter) session.mount('https://', adapter)安全配置指南
1. 访问控制配置
# 修改 Django 设置增强安全性 # settings.py 中的关键配置 ALLOWED_HOSTS = ['your-domain.com', 'localhost'] CSRF_TRUSTED_ORIGINS = ['https://your-domain.com'] SECURE_SSL_REDIRECT = True # 如果使用 HTTPS2. 数据库安全
# 使用环境变量管理敏感信息 import os DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': os.environ.get('DB_NAME'), 'USER': os.environ.get('DB_USER'), 'PASSWORD': os.environ.get('DB_PASSWORD'), 'HOST': os.environ.get('DB_HOST'), 'PORT': os.environ.get('DB_PORT'), } }3. 微信权限管理
- 为微信客户端创建专用账户
- 限制微信客户端的系统权限
- 定期更新微信客户端版本
故障排除与维护
常见问题解决方案
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 消息发送失败 | 微信客户端未运行 | 检查服务端微信进程 |
| 定时任务不执行 | Cron 表达式错误 | 使用在线工具验证表达式 |
| 邮件报警不工作 | SMTP 配置错误 | 检查邮箱授权码和端口 |
| 客户端无法连接 | 防火墙阻止 | 开放 8000 和 7500 端口 |
| 数据库连接失败 | 密码错误或服务未启动 | 检查 PostgreSQL 服务状态 |
系统监控与维护
1. 日志分析
# 查看客户端日志 docker logs yuyuwechat_client # 查看服务端日志 python manage.py runserver 0.0.0.0:8000 --verbosity 22. 健康检查脚本
# health_check.py import requests import smtplib from datetime import datetime def check_service_health(): services = [ ('客户端', 'http://localhost:7500'), ('服务端', 'http://localhost:8000/wechat/ping'), ('Redis', 'localhost', 6379), ('PostgreSQL', 'localhost', 5432) ] for name, *args in services: try: # 实现具体的检查逻辑 print(f"{name}: ✓") except Exception as e: print(f"{name}: ✗ ({e})") # 发送报警邮件3. 定期备份策略
# docker-compose-backup.yml version: '3.8' services: backup: image: postgres:latest volumes: - ./backups:/backups command: > bash -c " pg_dump -h postgres -U postgres yuyuwechat > /backups/backup_$(date +%Y%m%d_%H%M%S).sql " environment: PGPASSWORD: tykWyr-bepqu6-fafvym下一步行动建议
快速开始清单
环境准备
- 安装 Python 3.7+ 和 Docker
- 准备运行微信的 Windows 计算机
- 申请邮箱 SMTP 授权码
服务端部署
- 克隆项目到 Windows 计算机
- 安装依赖并启动服务端
- 配置微信安装路径
客户端部署
- 使用 Docker Compose 启动客户端
- 创建管理员账户
- 配置服务端连接
基础功能测试
- 添加测试微信用户
- 创建定时消息任务
- 验证消息发送功能
高级功能配置
- 设置邮件报警
- 配置消息检测规则
- 测试文件发送功能
扩展学习资源
项目结构文档:project-structure.mdAPI 接口参考:api-reference.md配置模板文件:config-templates/
常见问题解答
Q: YuYuWechat 支持微信网页版吗?A: 不支持。YuYuWechat 基于 Windows 微信客户端实现,需要安装完整的微信客户端。
Q: 可以同时向多个好友发送不同的消息吗?A: 可以。通过创建多个定时消息任务,每个任务指定不同的用户和消息内容。
Q: 系统出现错误时如何快速定位问题?A: 首先检查错误日志页面,查看具体的错误类型和详情。常见问题通常与网络连接、微信客户端状态或配置错误有关。
Q: 如何保证消息发送的可靠性?A: YuYuWechat 采用多层验证机制:发送后验证聊天记录、定时任务遗漏检测、微信状态监控,并支持邮件报警。
Q: 可以自定义消息发送的逻辑吗?A: 可以通过自定义脚本功能实现。系统提供了 3 个脚本槽位,可以编写 Python 代码扩展功能。
Q: 系统支持哪些通知方式?A: 目前主要支持邮件报警。错误发生时系统会自动发送邮件到配置的邮箱列表。
Q: 如何迁移到新的服务器?A: 使用数据库导入导出功能备份数据,然后在新的服务器上恢复。确保微信客户端路径配置正确。
通过本文的完整指南,你现在应该能够充分利用 YuYuWechat 实现微信自动化操作。无论是个人使用还是团队协作,这个工具都能显著提升工作效率,减少重复劳动。开始你的微信自动化之旅吧!
【免费下载链接】YuYuWechat一个让微信(非WEB版)定时循环发送消息/文件(cron表达式精确到分钟),批量群发消息,定时检查聊天记录的小工具🚀,提供了简易直观的界面,并支持邮箱报警等功能,可部署到任意平台项目地址: https://gitcode.com/gh_mirrors/yu/YuYuWechat
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考