Fastmail JMAP

📧 AI Agent 邮件超能力,零依赖即开即用

为 AI Agent 赋予邮件超能力:基于 Fastmail JMAP API 实现零依赖的邮件读取、搜索、发送与管理,纯 Python 标准库实现。

收藏
4.1k
安装
1.1k
版本
1.1.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

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 上下文中留存,需关注内存/日志清理策略

Fastmail JMAP 内容

scripts文件夹
手动下载zip · 6.9 kB
fastmail.pytext/plain
请选择文件