Apple Mail Search Safe (fruitmail)

📧 极速搜索本地邮件,50 毫秒翻遍十万封

SQLite 原生查询 Apple Mail 本地数据库,50ms 极速检索 13 万封邮件,支持全文读取与邮件打开,只读模式确保安全

收藏
18.8k
安装
4.3k
版本
5.0.4
CLS 安全性认证2026-06-23
点击查看完整报告 >

使用说明

核心用法

Fruitmail 是一款专为 macOS Apple Mail.app 设计的本地邮件搜索工具,通过直接读取 SQLite 数据库(~/Library/Mail/V{9-11}/MailData/Envelope Index)实现毫秒级邮件检索。相比 AppleScript 遍历 13 万封邮件需 8 分钟以上的性能,该工具仅需约 50ms 即可完成同等规模查询。

主要功能:

  • 多维度搜索:支持按主题、发件人、时间范围(--days)、未读状态等条件组合筛选
  • 全文读取:通过 AppleScript 获取完整邮件正文内容(fruitmail body <id>
  • 系统集成:可直接唤起 Mail.app 打开指定邮件(fruitmail open <id>
  • 数据导出:支持 JSON 格式输出,便于管道处理(配合 jq 等工具)

显著优点

1. 性能飞跃:SQLite 索引查询比原生 AppleScript 快 1000 倍以上
2. 只读安全:默认只读模式,不会修改邮件数据;可选 --copy 模式先复制数据库再查询,双重保险

3. 零配置依赖:直接读取 Mail.app 本地存储,无需 IMAP/SMTP 凭证

4. 轻量 CLI:单二进制文件,Node.js 全局安装即可使用

潜在局限

  • 平台锁定:仅限 macOS,依赖 Apple Mail.app 的数据库结构
  • 功能边界:仅能搜索/读取/打开邮件,无法发送邮件(需配合 himalaya 等 IMAP 工具)
  • 数据库耦合:若 Apple Mail 未来更新数据库结构(如 V12+),工具可能需适配
  • 权限敏感:首次运行需授予磁盘访问权限(访问 ~/Library/Mail

适合人群

  • 日均处理大量邮件的 macOS 重度用户
  • 需要将邮件数据自动化导出至其他工作流(Obsidian/Notion/数据分析)的开发者
  • 对 Apple Mail 原生搜索速度不满,寻求替代方案的专业人士

常规风险

| 风险类型 | 说明 | 缓释措施 |
|---------|------|---------|
| 隐私泄露 | 工具可读取全部本地邮件内容 | 代码开源可审计;离线运行不上传数据 |
| 数据库锁定 | 若 Mail.app 正在写入,直接读取可能短暂冲突 | 使用 `--copy` 模式创建快照后查询 |
| 误操作覆盖 | 虽然只读,但 AppleScript 理论上具备写权限 | 核心查询模块使用 SQLite 只读句柄,与写操作隔离 |
| 供应链攻击 | npm 包被篡改 | 建议 pin 版本号,从 GitHub 源码构建 |

安全等级说明

该工具仅通过读取本地 SQLite 数据库和调用有限 AppleScript 接口实现功能,无网络传输、无远程服务器、无邮件发送能力。开源代码(MIT 许可)可直接审计。综合评估为 A 级 —— 功能受限但风险可控,适合本地自动化工作流集成。

安全解读

核心功能

Fruitmail 是一款专为 macOS Apple Mail 设计的本地邮件搜索工具,通过直接读取 Mail.app 的 SQLite 数据库实现毫秒级检索。相比 AppleScript 遍历 8 分钟+ 的性能,该工具可在约 50ms 内完成 13 万封邮件的复杂查询。

主要用法

| 场景 | 命令示例 |
|------|---------|
| 复合条件搜索 | `fruitmail search --subject "invoice" --days 30 --unread` |
| 按发件人筛选 | `fruitmail sender "@amazon.com" --limit 50` |
| 列出未读邮件 | `fruitmail unread --json \| jq '.[] \| .subject'` |
| 阅读完整正文 | `fruitmail body 94695` |
| 跳转 Mail.app | `fruitmail open 94695` |

显著优点

  • 极速性能:SQLite 只读查询替代 AppleScript 遍历,速度提升 10000 倍+
  • 安全设计:默认只读模式,可选 --copy 参数复制数据库后查询,零数据篡改风险
  • 灵活输出:支持 JSON 格式,便于与 jq 等工具链整合
  • 本地隐私:所有处理在本地完成,邮件数据零上传

局限性与风险

| 方面 | 说明 |
|------|------|
| **平台限制** | 仅限 macOS,依赖 Apple Mail.app 的数据库结构 |
| **只读约束** | 无法发送/编辑邮件,需配合 `himalaya` 等 SMTP 工具 |
| **外部依赖** | 核心功能委托给 npm 包 `apple-mail-search-cli`,该依赖未纳入本次审计 |
| **T3 来源** | 个人开发者维护,更新频率和社区支持规模有限 |

适合人群

  • 每日处理大量邮件、对搜索速度敏感的专业用户
  • 需要批量处理邮件元数据的自动化工作流开发者
  • 注重隐私、不愿将邮件索引上传至第三方服务的用户
  • 熟悉命令行工具、具备基础 npm/Node.js 环境配置能力的用户

常规风险

1. 供应链风险:实际执行代码在 npm 包中,建议安装前运行 npm audit 并审查源码
2. 数据库兼容性:Apple Mail 升级可能改变数据库结构,需关注工具更新

3. 沙箱建议:首次使用建议在隔离环境测试,确认 --copy 模式行为符合预期

Apple Mail Search Safe (fruitmail) 内容

手动下载zip · 1.5 kB
SKILL.mdtext/markdown
请选择文件