批量下载 QQ 邮箱投稿附件,智能分类命名,生成审计报告。适用于设计比赛、作品作业等通过邮件收集作品的场景。
- 全量扫描 — 扫描指定文件夹的全部邮件,提取正规附件 + 正文内嵌图片
- 智能分类 — 自动识别图片/项目文件/文档/音视频/压缩包/重复/第三方附件,分流到子目录
- 命名补全 — 从邮件主题、发件人邮箱提取身份信息(姓名、QQ、手机),统一命名格式
- 身份增强 — 调用邮箱全局搜索抓取发件人历史主题补全身份字段;可选 Chrome Built-in AI (Gemini Nano) 解析非标准主题
- 目录组织 — 可切换按类型 / 主题 / 发件人 / 邮箱 / 拼音首字母 / 时间(月/周/日/时/时段)分目录落盘
- 重复检测 —
sender_email + size + 文件名判定重复,保留最新;自动跳过微信图片_/mmexport/IMG_/Screenshot_/DSC_ 等相机和 IM 自动命名;落盘旁附重复/_DUPLICATE_INDEX.md反查保留方 - 邮件标签 — 可选给已下载 / 无附件 / 已读 / 重复邮件打 QQ 邮箱标签
- 断点续传 — IndexedDB 持久化下载列表,刷新页面后可继续下载
- 登录态恢复 — session 过期自动暂停,刷新登录后无缝继续
- 审计校验 — 邮件数 → 附件数 → 落盘数三级对账,生成
report.md与manifest.json
- 安装 Tampermonkey 浏览器扩展
- 安装
qqmail-downloader.user.js脚本 - 打开 QQ 邮箱,进入目标文件夹
- 页面顶部出现「附件下载」面板,点击「开始扫描」
- 扫描完成后选择本地保存目录,自动开始下载
- Chrome 浏览器(需要 File System Access API 支持)
- 已登录 QQ 邮箱 (wx.mail.qq.com)
脚本顶部「用户配置」区可按需调整:
| 配置项 | 默认 | 说明 |
|---|---|---|
SCAN_SUBFOLDERS |
true |
扫描已下载时是否递归子目录 |
CONCURRENCY |
10 |
并发下载数 |
SAVE_MODE |
'type' |
落盘目录组织方式,见下表 |
RENAME_WITH_IDENTITY |
null |
是否提取身份信息(姓名/QQ/手机)补充文件名前缀。null = 保留原始附件名、跳过搜索/AI 解析;true = 拼成「姓名-QQ-手机-原名」 |
TAG_NO_ATTACH |
null |
给无附件邮件打的标签 ID |
TAG_READ |
null |
给已读邮件打的标签 ID |
TAG_DOWNLOADED |
null |
给已下载邮件打的标签 ID |
TAG_DUPLICATE |
null |
给重复邮件打的标签 ID |
| 值 | 落盘示例 |
|---|---|
'type' |
图片/ 文档/ 视频/ ... |
'subject' |
<邮件主题>/ |
'sender' |
<发件人昵称>/(缺省回退邮箱 local-part) |
'email' |
<完整邮箱>/ |
'pinyin' |
A/ B/ ... 0/ ... _其他/ |
'time-month' |
2026-05/ |
'time-week' |
2026-W21/(ISO-8601 周) |
'time-day' |
2026-05-26/ |
'time-hour' |
2026-05-26-14/ |
'time-period' |
2026-05-26-上午/ 2026-05-26-下午/ 2026-05-26-晚上/(5/12/18 三段) |
重复/ 与 转人工/ 始终保留为顶层目录,便于人工审核;非 'type' 模式下其内部仍按 bucket 再分子目录。
在邮箱里建标签 → 打开它 → 把浏览器地址栏 URL 里的 tagid 填进来。填错或不存在的 tagid 会在首次失败后自动拉黑当次会话。
└── qqmail-downloader.user.js # UserScript 主文件(单文件,无构建依赖)