Cloudflare Email Service 正式开启公测,支持智能体邮件交互
Cloudflare Email Service: now in public beta. Ready for your agents
Cloudflare Email Service 正式进入公开测试阶段。该服务为 AI 智能体提供基础设施层,支持在收件箱场景中直接发送、接收和处理邮件。随着智能体应用向多渠道发展,这一功能让开发者能够将原生邮件能力集成到智能体工作流,实现通过电子邮件与用户交互。
电子邮件是世界上最易用的界面。它无处不在。无需定制聊天应用,无需为每个渠道定制 SDK。每个人都已经拥有电子邮箱地址,这意味着每个人都可以与你的应用或智能体进行交互。而你的智能体也可以与任何人交互。
如果你正在构建一个应用,你已经依赖电子邮件来处理注册、通知和发票。如今,不仅你的应用逻辑需要这个渠道,你的智能体也同样需要。在我们的内测期间,我们与正在构建以下功能的开发者进行了交流:客户支持智能体、发票处理流水线、账户验证流程、多智能体工作流。所有这些都构建在电子邮件之上。模式很清晰:电子邮件正在成为智能体的核心界面,开发者需要为此专门构建的基础设施。
Cloudflare 电子邮件服务正是这一组件。通过电子邮件路由,你可以接收发送到你的应用或智能体的邮件。通过电子邮件发送,你可以回复邮件,或在你的智能体完成任务后发送外发通知给用户。结合开发者平台的其他部分,你可以构建一个完整的电子邮件客户端,并将智能体 SDK 的电子邮件钩子作为原生功能使用。
今天,作为智能体周的一部分,Cloudflare 电子邮件服务进入公开测试阶段,允许任何应用和任何智能体发送电子邮件。同时,我们也在完善用于构建原生电子邮件智能体的工具包:
电子邮件发送绑定,可从你的 Workers 和智能体 SDK 中使用
一个新的电子邮件 MCP 服务器
Wrangler CLI 电子邮件命令
用于编码智能体的技能
一个开源的智能体收件箱参考应用
电子邮件发送:现已进入公开测试阶段
电子邮件发送功能今天从内测阶段升级为公开测试阶段。现在,你可以通过原生 Workers 绑定直接从 Workers 发送事务性电子邮件——无需 API 密钥,无需密钥管理。
export default { async fetch(request, env, ctx) { await env.EMAIL.send({ to: "user@example.com", from: "notifications@your-domain.com", subject: "您的订单已发货", text: "您的订单 #1234 已发货,正在途中。" }); return new Response("邮件已发送"); }, };
或者,使用 REST API 以及我们的 TypeScript、Python 和 Go SDK,从任何平台、任何语言发送邮件。
curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/email-service/send" --header "Authorization: Bearer " --header "Content-Type: application/json" --data '{ "to": "user@example.com", "from": "notifications@your-domain.com", "subject": "Your order has shipped", "text": "Your order #1234 has shipped and is on its way." }'
要让邮件真正送达收件箱,通常需要与 SPF、DKIM 和 DMARC 记录作斗争。当你将域名添加到邮件服务时,我们会自动配置所有这些记录。你的邮件会经过身份验证并成功投递,而不会被标记为垃圾邮件。此外,由于邮件服务是构建在 Cloudflare 网络之上的全球性服务,你的邮件可以低延迟地送达全球任何地方。
结合已免费提供多年的邮件路由功能,你现在可以在单一平台上实现完整的双向邮件通信。接收邮件、在 Worker 中处理并回复,全程无需离开 Cloudflare。
关于邮件发送功能的完整深度解析,请参阅我们的生日周公告。本文其余部分将介绍邮件服务为智能体解锁了哪些能力。
Agents SDK:你的智能体原生支持邮件
用于在 Cloudflare 上构建智能体的 Agents SDK 已经拥有一个一流的 onEmail 钩子,用于接收和处理入站邮件。但在此之前,你的智能体只能同步回复,或向 Cloudflare 账户成员发送邮件。
有了邮件发送功能,这一限制不复存在。这就是聊天机器人与智能体之间的区别。
邮件智能体接收消息,跨平台编排工作,并异步响应。
聊天机器人要么即时回复,要么根本不回复。而智能体则按照自己的时间线思考、行动和沟通。借助邮件发送功能,你的智能体可以接收一条消息,花一小时处理数据,检查另外三个系统,然后给出完整答案进行回复。它可以安排后续跟进。当检测到边缘情况时,它可以升级处理。它可以独立运作。换句话说:它能够真正地执行工作,而不仅仅是回答问题。
以下是一个支持智能体在完整流程中的样子——接收、持久化并回复:
import { Agent, routeAgentEmail } from "agents"; import { createAddressBasedEmailResolver, type AgentEmail } from "agents/email"; import PostalMime from "postal-mime";
export class SupportAgent extends Agent { async onEmail(email: AgentEmail) { const raw = await email.getRaw(); const parsed = await PostalMime.parse(raw);
// 持久化到智能体状态中 this.setState({ ...this.state, ticket: { from: email.from, subject: parsed.subject, body: parsed.text, messageId: parsed.messageId }, });
// 启动一个长期运行的后台智能体任务 // 或者将消息放入队列,由另一个 Worker 处理
// 在此处回复,或在其他 Worker 处理器(如队列处理器)中回复 await this.sendEmail({ binding: this.env.EMAIL, fromName: "Support Agent", from: "support@yourdomain.com", to: this.state.ticket.from, inReplyTo: this.state.ticket.messageId, subject: Re: ${this.state.ticket.subject}, text: 感谢您的来信。我们已收到您关于“${this.state.ticket.subject}”的消息,并将尽快跟进。 }); } }
export default { async email(message, env) { await routeAgentEmail(message, env, { resolver: createAddressBasedEmailResolver("SupportAgent"), }); }, } satisfies ExportedHandler;
如果您是第一次接触 Agents SDK 的邮件功能,以下是其底层工作原理。
每个智能体通过一个单一域名获得自己的身份。基于地址的解析器将 support@yourdomain.com 路由到“support”智能体实例,将 sales@yourdomain.com 路由到“sales”实例,以此类推。您无需单独配置收件箱——路由功能已内置于地址之中。您甚至可以使用子地址(如 NotificationAgent+user123@yourdomain.com)将邮件路由到不同的智能体命名空间和实例。
状态在邮件之间持久保留。由于智能体由 Durable Objects 支撑,调用 this.setState() 意味着您的智能体会跨会话记住对话历史、联系信息和上下文。收件箱成为智能体的记忆载体,无需额外的数据库或向量存储。
安全回复路由是内置功能。当你的智能体发送一封邮件并期待回复时,你可以使用 HMAC-SHA256 对路由头部进行签名,这样回复就能准确路由回发送原始邮件的那个智能体实例。这可以防止攻击者伪造头部信息,将邮件路由到任意智能体实例——这是大多数“面向智能体的邮件”解决方案尚未解决的安全隐患。
这就是团队在其他地方需要从头构建的完整邮件智能体流水线:接收邮件、解析邮件、分类邮件、持久化状态、启动异步工作流、回复或升级处理——所有这些都在一个 Agent 类中完成,并部署在 Cloudflare 的全球网络上。
为你的智能体提供的邮件工具:MCP 服务器、Wrangler CLI 和技能
邮件服务并非仅适用于在 Cloudflare 上运行的智能体。智能体可以运行在任何地方,无论是像 Claude Code、Cursor 或 Copilot 这类在本地或远程环境中运行的编码智能体,还是在容器或外部云中运行的生产环境智能体。它们都需要从这些环境中发送邮件。我们推出了三种集成方式,让任何智能体,无论运行在何处,都能使用邮件服务。
现在,通过 Cloudflare MCP 服务器即可使用邮件功能,这与为智能体提供整个 Cloudflare API 访问权限的 Code Mode 服务器是同一个。通过这个 MCP 服务器,你的智能体可以发现并调用邮件端点来发送和配置邮件。你可以通过一个简单的提示词来发送邮件:
“构建完成后,从我的预发布域名发送一封通知邮件到 hello@example.com”
对于在具有 bash 访问权限的计算机或沙箱上运行的智能体,Wrangler CLI 解决了我们在 Code Mode 博文中讨论过的 MCP 上下文窗口问题——工具定义在智能体开始处理单条消息之前就可能消耗数万个模型 token。使用 Wrangler,你的智能体以近乎为零的上下文开销启动,并通过 --help 命令按需发现能力。以下是通过 Wrangler 发送邮件的方式:
wrangler email send --to "teammate@example.com" --from "agent@your-domain.com" --subject "Build completed" --text "The build passed. Deployed to staging."
无论你为智能体提供的是 Cloudflare MCP 还是 Wrangler CLI,现在你的智能体只需一条提示词,就能代表你发送电子邮件。
技能
我们还发布了一项 Cloudflare 电子邮件服务技能。它为你的智能体提供完整指导:配置 Workers 绑定、通过 REST API 或 SDK 发送电子邮件、利用电子邮件路由配置处理入站邮件、使用 Agents SDK 进行构建,以及通过 Wrangler CLI 或 MCP 管理电子邮件。该技能还涵盖了可送达性最佳实践,以及如何编写能够进入收件箱而非垃圾邮件的优质事务性邮件。将其放入你的项目,你的编码智能体便拥有了在 Cloudflare 上构建可用于生产的电子邮件所需的一切。
开源电子邮件智能体工具
在私有测试期间,我们也对电子邮件智能体进行了实验。很明显,你通常希望保留人工参与环节,以便审查邮件并查看智能体的操作。实现这一目标的最佳方式是拥有一个内置智能体自动化的全功能电子邮件客户端。
这就是我们构建 Agentic Inbox 的原因:一个参考应用,具备完整的会话线程、邮件渲染、接收和存储邮件及其附件,以及自动回复邮件的功能。它内置了一个专用的 MCP 服务器,因此外部智能体可以为你起草邮件,供你在发送前从你的 agentic-inbox 中进行审查。
我们将 Agentic Inbox 作为参考应用进行开源,展示如何使用电子邮件路由处理入站、电子邮件发送处理出站、Workers AI 进行分类、R2 存储附件,以及 Agents SDK 实现有状态的智能体逻辑,来构建一个完整的电子邮件应用。你只需点击一个按钮,即可立即部署,获得一个完整的收件箱、电子邮件客户端和用于处理你邮件的智能体。
我们希望电子邮件智能体工具是可组合且可复用的。与其让每个团队都重新构建相同的“入站-分类-回复”流程,不如从这个参考应用开始。你可以复刻它、扩展它,并将其作为起点,构建适合你自己工作流程的电子邮件智能体。
立即试用
电子邮件承载着全球最重要的业务流程,但对于AI智能体而言,这往往是一个难以触达的渠道。随着邮件发送功能进入公开测试阶段,Cloudflare邮件服务成为一个完整的双向通信平台,让收件箱成为智能体的头等交互界面。
无论你是在构建一个能在用户收件箱中提供支持的客服智能体,还是一个能实时同步团队信息的后台进程,你的智能体现在都能以无缝的方式在全球范围内进行通信。收件箱不再是信息孤岛,它已成为智能体发挥价值的又一个新阵地。
在 Cloudflare 控制面板中试用邮件发送功能
阅读邮件服务文档
查阅 Agents SDK 邮件相关文档
了解邮件服务 MCP 服务器与技能包
部署开源参考应用
在 Cloudflare TV 上观看
来源:Cloudflare Blog · blog.cloudflare.com