为什么你清不掉上千封订阅邮件?Paperweight 的本地优先隐私清理实战
邮箱里躺着几百甚至上千封订阅邮件,想清理时却卡在同一个矛盾上:市面上的网页版退订服务,几乎都要求你把邮箱数据上传到厂商服务器——为了减少数据暴露,反而先制造了一次更大的暴露。这正是 Paperweight 想解决的问题:一个 MIT 开源的 Electron 桌面应用,把订阅邮件的扫描、退订和隐私请求全部放在本地完成。
本地优先:数据不出本机
Paperweight 的架构声明非常明确:数据留在你的电脑上,不发送到外部服务器。扫描、整理和后续清理动作围绕本地数据完成。README 里将它概括为 local-first、默认尊重隐私的工具;这也是它与需要把邮箱交给第三方处理的服务之间最重要的差别。
项目由独立开发者 Wesley(GitHub 用户 wslyvh)维护,目前 GitHub 仓库约 463 stars,采用 TypeScript + Electron 技术栈。README 将它定位为 local-first、开源的邮箱数字足迹工具。对开发者来说,这意味着整条数据链路可以结合源码审计——你可以直接检查它如何连接邮箱、分析邮件和生成清理动作。
四步工作流:连接、扫描、审阅、清理
Paperweight 的官方工作流是四步:
- 连接:接入一个邮件账户。支持 Google、Microsoft、Apple、Proton Mail(通过 Bridge),以及自定义 IMAP,并内置 Proton、Yahoo、Fastmail、Yandex、Zoho、Mailbox.org、Posteo、GMX 等预设。
- 扫描:扫描收件箱,建立账户清单(account inventory),发现散落在邮件里的注册账号和订阅列表;README 给出的快速开始流程约需两分钟完成扫描。
- 审阅:逐条确认哪些账号和订阅要移除,哪些保留。
- 清理:批量退订、清理垃圾邮件与回收站,并向相关方发送数据删除请求。
核心功能:不只是退订
- 账号清单与发现:扫描历史邮件,把你在哪些网站注册过账号整理成结构化清单——这一步在免费版即可完成,且做全量历史同步。
- 批量退订:对确认的订阅执行退订操作。
- 数据泄露提醒:通过 Have I Been Pwned 检查邮箱是否出现在已知泄露事件中,在本地给出泄露与个人数据概览。
- GDPR 数据删除请求:内置 GDPR 请求生成器(paperweight.email/resources/gdpr-generator),按欧盟 GDPR 第 17 条「被遗忘权」生成删除请求文本。
- MCP 访问:付费方案包含 MCP 接入,这意味着 AI Agent 可以直接查询你的本地账号清单——对做个人数据治理的 Agent 工作流来说,这是一个现成的数据层。Agent 读取的是本地 SQLite 里的结构化清单,而不是把邮箱内容转发给模型服务商,数据边界与本地优先的设计保持一致。
Paperweight 与典型网页清理服务的对比
| 维度 | Paperweight | 典型第三方网页清理服务 |
|---|---|---|
| 数据存储位置 | 本地 SQLite,不出本机 | 通常需上传到厂商服务器 |
| 开源 | MIT,可审计源码 | 通常闭源 |
| 遥测/账号体系 | 无服务器、无账号、无遥测 | 通常需注册账号 |
| 服务商覆盖 | Google/Microsoft/Apple/Proton + 任意 IMAP | 通常仅覆盖主流邮箱 |
| AI 集成 | Pro 含 MCP 访问 | 一般无 |
安装与从源码构建
普通使用直接下载 GitHub Releases 的预编译包。README 明确列出 Windows、macOS 和 Linux 的发布包;预编译包已内置 OAuth 配置。
如果从源码构建,需要自备 OAuth 凭据(README 明确说明这一点),因为 OAuth 凭据是连接邮箱所必需的:
git clone https://github.com/wslyvh/paperweight cd paperweight yarn cp .env.example .env # 填入 OAuth 配置后启动开发环境 yarn dev
免费与付费边界
Paperweight 的免费版包含:1 个邮箱账户、全量历史同步、账号与订阅列表发现、泄露与个人数据概览、本地整理。付费方案(Cleanup Pass 为一次性 30 天窗口,Pro 为按年订阅)解锁的是执行类动作:退订、回收站与垃圾邮件清理、批量清理、发送隐私请求、多账户以及 MCP 访问。这个边界设计很清晰——「发现」免费,「执行」付费。
实践建议
- 先跑一遍全量历史同步和账号发现,把清单导出后再决定退订范围,避免误删仍在使用的订阅。
- 泄露检查与 GDPR 请求是本地生成文本,实际发送前建议逐条核对收件方。
- 如果你已有 AI Agent 工作流,Pro 的 MCP 接入可以把本地账号清单作为 Agent 的只读数据源,用于个人数据审计——先扫描生成清单,再让 Agent 按域名或注册年份筛选高风险账号,最后人工确认执行退订。
- 从源码构建时记得自备 OAuth 凭据;官方预编译包已内置,普通用户无需处理这一步。
Paperweight 的价值不在于「退订」这个动作本身,而在于它示范了隐私工具的正确形态:数据留在本地、源码可审计、边界清晰。对开发者而言,这是一个可以直接读源码学习的 local-first 架构样本。
相关链接