Agentic Inbox 部署指南:在 Cloudflare Workers 上自托管 AI 邮件客户端
Agentic Inbox 是一个自托管的电子邮件客户端,包含一个 AI 代理,完全运行在 Cloudflare Workers 上。它利用 Cloudflare 的 Email Routing 接收邮件,使用 Durable Objects 和 SQLite 隔离每个邮箱,并将附件存储在 R2 中。AI 代理可以阅读您的收件箱、搜索对话并起草回复。
1. 前提条件
在开始部署前,请确保您拥有:
- 一个 Cloudflare 账户。
- 一个由 Cloudflare 管理的域名(用于接收和发送邮件)。
- 已在该域名上启用 Cloudflare Email Routing(用于接收邮件)。
- 已启用 Cloudflare Email Service(用于发送邮件)。
- 已启用 Workers AI(用于 AI 代理功能)。
- Cloudflare Access 已配置(生产环境强制要求,用于保护您的收件箱)。
2. 部署步骤
部署分为几个关键阶段,请务必完整执行所有步骤。
第一步:一键部署到 Cloudflare
- 点击项目 README 中的 “Deploy to Cloudflare” 按钮(或手动通过 Wrangler 部署)。
- 在部署过程中,您会被提示输入
DOMAINS变量。这是您要接收邮件的域名(例如yourdomain.com),意味着您将拥有任意用户名@yourdomain.com的邮箱。 - 部署流程会自动在您的 Cloudflare 账户中配置必要的资源:
- R2 存储桶:用于存放邮件附件。
- Durable Objects:用于为每个邮箱提供独立的、有状态的运行环境。
- Workers AI:为 AI 代理提供推理能力。
第二步:配置 Cloudflare Access(关键安全步骤)
这是必须完成的一步,用于保护您的邮箱不被公开访问。
- 在 Cloudflare 仪表板中,进入您的 Worker 设置页面。
- 在 “设置” > “域和路由” 下,为您的 Worker 启用一键 Cloudflare Access。
- 启用后,会弹出一个模态框,其中包含
POLICY_AUD和TEAM_DOMAIN的值。请记下这两个值。TEAM_DOMAIN可以是您的 Access 团队 URL,也可以是完整的.../cdn-cgi/access/certsURL。
- 您必须将这两个值作为 Secret(机密变量) 添加到您的 Worker 中。您可以通过 Cloudflare 仪表板(Worker > 设置 > 变量 > 添加机密变量)或 Wrangler CLI 完成此操作。
第三步:设置邮件路由(Email Routing)
- 在 Cloudflare 仪表板中,转到您的域名页面。
- 进入 “电子邮件” > “邮件路由” 设置。
- 创建一个 “全部捕获”(Catch-all)规则,将发送到您域名下任何地址的邮件都转发到您刚刚部署的 Worker。
- 这确保了所有发送到
*@yourdomain.com的邮件都能被 Agentic Inbox 处理。
第四步:启用邮件发送服务(Email Service)
您的 Worker 需要 send_email 绑定才能发送邮件。请参考 Cloudflare Email Service 文档 进行配置,确保 Worker 拥有发送邮件的权限。
第五步:创建您的邮箱
- 访问您部署的 Worker 的 URL(例如
https://your-worker.your-subdomain.workers.dev)。 - 您将被 Cloudflare Access 拦截,请使用您配置的 Access 策略进行身份验证。
- 登录后,在应用中创建一个新邮箱,地址可以是您域名下的任意名称(例如
hello@yourdomain.com)。 - 现在,您就可以开始发送和接收邮件了。
3. 常见问题排查
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
部署后访问显示 Invalid or expired Access token |
POLICY_AUD 或 TEAM_DOMAIN 机密变量设置不正确 |
1. 在 Worker 设置中关闭并重新开启 Access,重新获取最新的 POLICY_AUD 和 TEAM_DOMAIN 值。 2. 更新 Worker 的 Secrets(机密变量)为最新值。 |
访问时显示 Cloudflare Access must be configured in production |
生产环境未启用 Access(该应用强制要求) | 按照第二步的指引,为 Worker 启用 Cloudflare Access 并配置 Secrets。 |
| 无法接收邮件 | 邮件路由规则未正确设置 | 检查域名下的 “邮件路由” 设置,确保存在一条指向您 Worker 的 “全部捕获”(Catch-all) 规则。 |
| 无法发送邮件 | 未配置 send_email 绑定 |
参考 Cloudflare Email Service 文档,为 Worker 添加 send_email 绑定。 |
| AI 代理无响应 | Workers AI 未启用或模型访问问题 | 确认您的 Cloudflare 账户已 启用 Workers AI,并检查 Worker 的 AI 绑定配置。 |
4. 本地开发与测试(可选)
如果您想对项目进行二次开发或在本地测试,可以按以下步骤操作。
克隆仓库:
1
2git clone https://github.com/cloudflare/agentic-inbox.git
cd agentic-inbox安装依赖:
1
npm install
配置本地环境:
- 在
wrangler.jsonc中设置您的域名。 - 创建 R2 存储桶:
wrangler r2 bucket create agentic-inbox。
- 在
运行开发服务器:
1
npm run dev
这会在本地启动一个模拟 Cloudflare 环境的开发服务器。
部署:
1
npm run deploy
5. 架构与安全说明
- 隔离性:每个邮箱都运行在独立的 Durable Object 中,拥有自己的 SQLite 数据库和 R2 存储空间,实现了良好的数据和状态隔离。
- 认证边界:该应用强制使用 Cloudflare Access 作为唯一的身份验证和信任边界。任何通过 Access 策略的用户都可以访问应用内的所有邮箱。
- AI 代理:AI 代理拥有 9 种邮件操作工具,包括读取、搜索、草稿和发送。它会在新邮件到达时自动生成草稿回复,但发送前需要您明确确认,确保人工始终在决策环内。
6. 总结
Agentic Inbox 是一个展示了 Cloudflare 全栈能力的现代化应用。
核心部署路径:
- 一键部署到 Cloudflare,并输入您的域名。
- 强制配置 Cloudflare Access 并设置所需的 Secrets。
- 配置邮件路由(全部捕获到 Worker)和 邮件发送服务。
- 访问应用并创建您的第一个邮箱。
最关键的一步是配置 Cloudflare Access,它不仅是安全基础,也是部署流程中容易出错的地方。请务必仔细记录并设置 POLICY_AUD 和 TEAM_DOMAIN 这两个机密变量。完成所有步骤后,您将拥有一个由 AI 助力的、完全自控的邮件系统。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 极客的赛博空间 | 专注 AI 与技术分享!
评论













