核心用法
Mail skill 提供两种邮件操作模式:
himalaya CLI(跨平台)
- IMAP/SMTP 完整协议支持,使用
--output json确保可编程解析 - 信封列表:
himalaya envelope list -o json(注意非message list) - 实时监控:
himalaya envelope watch替代轮询
Apple Mail SQLite(macOS 专属)
- 直接查询
~/Library/Mail/V*/MailData/Envelope Index,速度比 AppleScript 快 100 倍 - 强制同步前置:必须先执行
osascript -e 'tell app "Mail" to check for new mail'避免读取过期数据 - 常用过滤:
WHERE date_received > strftime('%s','now','-7 days')
发送协议(安全设计)
- 强制草稿→审核→发送三步流程,禁止自动发送
- 回复线程:必须填充
In-Reply-To和References头部,禁止依赖 "Re:" 主题匹配 - 凭证要求:Gmail 必须启用 2FA 并使用 App Password,存储于 macOS Keychain
显著优点
- 性能分层:macOS 场景利用本地 SQLite 索引,避免 IMAP 网络延迟
- 状态隔离:单任务内禁止混用两种数据源,防止状态冲突
- 凭证安全:禁止读取/修改常规密码,强制使用 App Password + 密钥链存储
- 防误操作:删除邮件和修改凭证需显式确认,发送前强制用户审核
潜在局限
- 平台割裂:跨平台与 macOS 优化路径差异大,需手动检测平台能力
- 配置依赖:himalaya 需完整的
~/.config/himalaya/config.toml配置,新手门槛较高 - 实时性牺牲:SQLite 模式依赖 Apple Mail 后台同步,可能 15-30 分钟延迟
- OAuth 支持有限:虽支持 XOAUTH2,但需额外
token_cmd配置,文档覆盖不足
适合人群
- 需要批量邮件处理的 macOS 高级用户(SQLite 模式)
- 追求跨平台一致性的 Linux/macOS 开发者(himalaya 模式)
- 重视发送前审核的安全敏感场景(企业邮件、客户沟通)
- 已启用 Gmail 2FA 并熟悉 App Password 流程的用户
常规风险
| 风险场景 | 缓解措施 |
|---------|---------|
| SQLite 读取过期数据 | 强制前置 `check for new mail` AppleScript |
| SMTP 身份验证失败 | 验证 `From` 头与认证用户一致性 |
| 线程断裂 | 显式填充 RFC 5322 标准线程头 |
| 凭证泄露 | 禁止正则提取密码,仅通过 Keychain/security 工具交互 |
| 误删邮件 | 删除操作需用户显式确认,无批量删除快捷方式 |