核心用法
Mail 技能提供两套互补方案:macOS 平台通过直接读取 Apple Mail SQLite 数据库实现毫秒级邮件检索(比 AppleScript 快 100 倍),跨平台场景则使用 Rust 编写的 himalaya CLI 完成完整 IMAP/SMTP 生命周期管理。关键操作包括:
- 查询加速:直接访问
~/Library/Mail/V*/MailData/Envelope Index,通过messages/addresses表 JOIN 获取发件人信息 - 协议合规:发送时必须包含
In-Reply-To和References头字段以维持邮件线程,使用 RFC 2822 格式通过 stdin 提交 - 安全认证:支持 macOS Keychain 凭据存储、Gmail App Password(强制 2FA)及 XOAUTH2 令牌机制
显著优点
1. 性能极致:SQLite 方案绕过 Apple Mail 应用层,查询速度提升两个数量级
2. 零依赖部署:himalaya 单二进制文件,通过 cargo/brew 一键安装
3. 输出结构化:--output json 原生支持程序化解析,避免文本正则脆弱性
4. 线程正确性:基于 In-Reply-To 链而非主题匹配,避免 "Re:" 前缀误判
潜在局限
- 平台互斥:同一任务禁止混用 SQLite 与 himalaya 方案,需预先决策
- 数据新鲜度:SQLite 读取前必须触发
check for new mail强制同步,否则获取 stale 数据 - SMTP 严格性:部分服务器校验 From 头与认证用户一致性,配置错误即遭拒信
- 实时性瓶颈:轮询间隔限制 15-30 分钟,实时推送依赖
envelope watch实验性功能
适合人群
- macOS 重度用户需批量处理本地邮件历史
- 自动化工作流开发者需跨平台 IMAP 操作
- 隐私敏感用户倾向本地 SQLite 而非云端 API
常规风险
| 风险点 | 缓解措施 |
|--------|----------|
| SQLite 锁冲突 | 避免邮件应用运行时写入操作 |
| 凭据泄露 | 强制 Keychain/App Password,禁用明文存储 |
| 线程断裂 | 严格校验邮件头字段再发送 |
| 误发邮件 | 遵循 draft-review-send 强制确认流程 |