核心用法
fastmail-jmap 是一个专为 AI Agent 设计的邮件操作工具,通过 Fastmail 的现代化 JMAP API 实现完整的邮件生命周期管理。该 skill 以单文件 Python 脚本(约 300 行)形式交付,无需任何第三方依赖,仅使用 Python 3 标准库中的 urllib 和 json 模块。
主要功能覆盖
查询类操作:inbox 列出收件箱邮件、unread 快速查看未读邮件及数量、search 支持全文检索并可按发件人、日期范围筛选、mailboxes 列出所有邮箱文件夹。
读写类操作:read <id> 获取邮件完整正文、mark-read/mark-unread 切换已读状态。
管理类操作:move <id> <mailbox> 移动邮件至指定文件夹、trash <id> 移至垃圾箱。
发送操作:send <to> <subject> <body> 支持纯文本邮件发送,可通过 FASTMAIL_IDENTITY 环境变量指定发件人身份。
技术架构特点
采用 JMAP(JSON Meta Application Protocol)协议,这是 Fastmail 为替代 IMAP 而设计的现代化 JSON-over-HTTP 协议。核心优势包括:无 IMAP/SMTP 连接开销、支持批量请求(单次 HTTP 调用完成多操作)、无状态设计(无需本地同步数据库)。
显著优点
1. 零依赖部署:纯标准库实现,消除供应链攻击风险,无需处理 pip 依赖冲突
2. 极简认证流程:Fastmail 的 API Token 机制对比 Gmail OAuth2,无应用注册、无授权页面、无刷新令牌管理
3. 成本效益:Fastmail 基础版 $5/月即可使用完整 API,支持自定义域名
4. Agent 原生集成:提供现成的 AGENTS.md 模板和 cron/heartbeat 配置示例,可直接嵌入系统提示词
5. 隐私优先:Fastmail 无广告扫描,适合处理商业敏感邮件
6. 轻量运维:单文件脚本,300 行代码量级,易于审计和定制
潜在缺点与局限性
1. 服务商锁定:完全依赖 Fastmail 的 JMAP 实现,无法迁移至 Gmail、Outlook 等主流邮箱(这些服务商主要提供 IMAP/SMTP 或专有 REST API)
2. 功能边界:不支持 HTML 邮件编辑、附件上传/下载、邮件模板、签名管理等高级功能
3. 错误处理简约:脚本级异常处理,缺乏重试机制、速率限制自适应、断点续传等企业级特性
4. 搜索语义简单:基于关键词匹配,无自然语言理解或智能分类能力
5. 并发限制:未实现连接池或异步请求,高频调用可能成为瓶颈
6. Token 安全:长期有效的 API Token 一旦泄露,攻击者可获得完整邮件访问权限,缺乏 OAuth 的短期令牌+刷新机制
适合人群
- 构建个人 AI Agent 的技术用户和开发者
- 对 Gmail API 的 OAuth 流程感到繁琐的 solopreneur 和自由职业者
- 需要邮件自动化但不想维护复杂基础设施的小型团队
- 重视隐私、希望避免邮件内容被扫描分析的用户
- 已使用或愿意迁移至 Fastmail 作为邮件服务商的用户
常规风险
1. 凭证泄露风险:FASTMAIL_TOKEN 环境变量需妥善保管,避免写入版本控制或日志输出。建议通过 1Password 等密码管理器注入
2. 误操作风险:trash 和 move 操作不可逆(或恢复困难),Agent 自动化执行时需设置人工确认环节,尤其是发送邮件前必须获得明确授权
3. Token 权限过大:默认 Token 拥有完整邮件读写权限,无法细粒度限制至只读或仅特定文件夹
4. API 变更风险:JMAP 虽为开放标准,但 Fastmail 的具体实现细节可能变化,单文件脚本需持续维护
5. 数据残留:邮件正文读取后可能在日志或 Agent 上下文中留存,需关注内存/日志清理策略