Skip to content

Latest commit

 

History

287 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

QQ Mail 附件批量下载

批量下载 QQ 邮箱投稿附件,智能分类命名,生成审计报告。适用于设计比赛、作品作业等通过邮件收集作品的场景。

功能

  • 全量扫描 — 扫描指定文件夹的全部邮件,提取正规附件 + 正文内嵌图片
  • 智能分类 — 自动识别图片/项目文件/文档/音视频/压缩包/重复/第三方附件,分流到子目录
  • 命名补全 — 从邮件主题、发件人邮箱提取身份信息(姓名、QQ、手机),统一命名格式
  • 身份增强 — 调用邮箱全局搜索抓取发件人历史主题补全身份字段;可选 Chrome Built-in AI (Gemini Nano) 解析非标准主题
  • 目录组织 — 可切换按类型 / 主题 / 发件人 / 邮箱 / 拼音首字母 / 时间(月/周/日/时/时段)分目录落盘
  • 重复检测sender_email + size + 文件名 判定重复,保留最新;自动跳过微信图片_/mmexport/IMG_/Screenshot_/DSC_ 等相机和 IM 自动命名;落盘旁附 重复/_DUPLICATE_INDEX.md 反查保留方
  • 邮件标签 — 可选给已下载 / 无附件 / 已读 / 重复邮件打 QQ 邮箱标签
  • 断点续传 — IndexedDB 持久化下载列表,刷新页面后可继续下载
  • 登录态恢复 — session 过期自动暂停,刷新登录后无缝继续
  • 审计校验 — 邮件数 → 附件数 → 落盘数三级对账,生成 report.mdmanifest.json

使用方式

  1. 安装 Tampermonkey 浏览器扩展
  2. 安装 qqmail-downloader.user.js 脚本
  3. 打开 QQ 邮箱,进入目标文件夹
  4. 页面顶部出现「附件下载」面板,点击「开始扫描」
  5. 扫描完成后选择本地保存目录,自动开始下载

前置条件

  • 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

SAVE_MODE 取值

落盘示例
'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 再分子目录。

标签 ID 获取

在邮箱里建标签 → 打开它 → 把浏览器地址栏 URL 里的 tagid 填进来。填错或不存在的 tagid 会在首次失败后自动拉黑当次会话。

项目结构

└── qqmail-downloader.user.js    # UserScript 主文件(单文件,无构建依赖)

About

Python + Selenium + Chrome 模拟登陆QQ邮箱,批量下载附件,本地重命名

Topics

Resources

Stars

91 stars

Watchers

1 watching

Forks

Contributors

Languages