网友作品 #000237 · 提交于 2026/09/23
信息报送邮件归集脚本:微信聊天记录写入多维表

作品简介
这是一个常驻运行的 Python 脚本,打通「手机微信 → 专用 QQ 邮箱 → WPS 365 多维表」的信息报送自动归集链路。报送人用手机微信「多选信息-邮箱」把聊天记录发到专用 QQ 邮箱后,脚本通过 IMAP 每 2 分钟轮询一次,只处理主题含“聊天记录”的微信邮件,剥离邮件包装、按规则解析字段、查重后写入 WPS 365 多维表「信息报送登记表」,全程无人值守。
脚本支持常驻轮询与 –once 单次模式(收一次即退出,适合测试),首次运行回看最近 100 封邮件,之后只处理新邮件,全流程记录到日志文件,方便追溯。
核心亮点
- 自动收信:IMAP 连接专用 QQ 邮箱,每 2 分钟轮询,只处理主题含“聊天记录”的微信邮件,其余邮件不碰
- 智能清洗:剥离微信邮件包装,还原 HTML 正文中的桩号格式(如 K2523 000 → K2523+000)
- 按规则解析:提取报送人、报送日期、事发日期、信息源等字段,日期缺失时自动用邮件时间戳或另一字段补位
- 自动查重:按“信息内容”字段查重,避免重复写入
- 断点续收:记录已处理邮件 UID(稳定标识而非序号),重复运行不漏不重
- 免手填凭证:自动从 WPS Office 本地 Cookie 数据库解密获取 wps_sid,无需手动填写凭证
- 安全设计:BODY.PEEK 模式收信,不影响邮件的已读状态
- 日志留痕:收信、写入、跳过全程记录到日志文件,便于检查追溯
技术与工具
- 开发语言:Python,依赖 requests、pywin32、pycryptodome
- 收信协议:QQ 邮箱 IMAP(在邮箱设置中开启 IMAP/SMTP 并生成授权码)
- 数据落地:WPS 365 多维表「信息报送登记表」,运用 WPS 多维表(WPSdbsheet)技能
- 配置方式:脚本开头配置区填写邮箱地址、授权码、多维表文件 ID、sheet 编号与轮询间隔即可运行
- 开发方式:作者零基础,借助 AI 编程类工具与国内免费模型,按 AI 提示逐步完成
适用场景
适合有信息报送要求的政务单位与基层组织:报送人在手机微信里把现场聊天记录「多选-邮箱」发送到专用 QQ 邮箱,管理员无需人工转录登记,脚本自动完成字段提取、查重与台账归集,把信息报送变成无人化流程。也适用于“邮件进来、多维表汇总”之类的办公数据自动整理场景。
原始提交内容(点开查看,可复制全文去问 AI)
信息报送邮件自动归集工具 概述 这是一个常驻运行的 Python 脚本,用于自动完成信息报送的全流程归集。它接收手机微信“多选信息 邮箱”发送的聊天记录邮件,自动提取关键字段并写入 WPS 365 多维表,实现信息报送的无人化处理。
工作流程
图表
代码
手机微信 多选信息邮箱
专用QQ邮箱
本程序 每2分钟轮询
清洗邮件正文
解析字段
查重
写入多维表 信息报送登记表
核心功能 自动收信 — 通过 IMAP 协议连接 QQ 邮箱,每 2 分钟轮询一次,只处理主题含“聊天记录”的微信邮件,其余邮件不碰 智能清洗 — 剥离微信邮件包装,还原 HTML 正文中的桩号格式(如 K2523 000 K2523+000) 按规则解析 — 从聊天记录中提取报送人、报送日期、事发日期、信息源等字段,日期缺失时自动用邮件时间戳或另一字段补位 自动查重 — 按“信息内容”字段查重,避免重复写入 自动写入 — 将解析结果写入 WPS 365 多维表「信息报送登记表」 断点续收 — 记录已处理的邮件 UID,首次运行回看最近 100 封,之后只处理新邮件 使用方式 bash
安装依赖
pip install requests pywin32 pycryptodome
常驻轮询模式
python 邮件自动归集.py
单次模式(收一次即退出,适合测试)
python 邮件自动归集.py –once 配置说明 在脚本开头的配置区填写以下信息即可运行:
参数 说明 EMAIL_ADDR 专用 QQ 邮箱地址 EMAIL_AUTH_CODE IMAP 授权码(QQ邮箱 设置 账户 开启 IMAP/SMTP 生成授权码) DBT_FILE_ID 目标多维表文件 ID SHEET_ID 信息报送登记表的 sheet 编号 POLL_INTERVAL 轮询间隔(默认 120 秒) 技术特色 WPS 认证 — 自动从 WPS Office 本地 Cookie 数据库解密获取 wps_sid,无需手动填写凭证 安全设计 — 仅处理主题含“聊天记录”的邮件;使用 UID(稳定标识)而非序号;使用 BODY.PEEK 模式,不影响邮件状态 日志记录 — 全流程记录到 邮件归集日志.txt,方便追溯 运行示意
================================================== [启动] 邮件自动归集 (每120秒轮询) [收信] 新邮件 3 封(uid>12450) [邮件] uid=12453 主题=聊天记录(3) [写入] uid=12453 块1/3 报送人=张三 报送=2026-09-23 14:30 事发=2026-09-23 09:15 内容=【XXXX报】… [写入] uid=12453 块2/3 报送人=李四 报送=2026-09-23 15:00 事发=2026-09-23 10:20 内容=【XXXX报】… [跳过] uid=12453 块3/3 不是报送信息(无【xx报】/报送人标记) [收信] 完成:写入 2 条,跳过 1 封(基线 uid=12453)