Cloudflare邮件服务进入公开测试,专为AI代理设计
Cloudflare AI··作者 Eric Falcão
关键信息
邮件发送现在支持通过原生绑定直接从Cloudflare Workers集成(无需API密钥),并提供多种语言的REST API。Cloudflare会自动配置SPF、DKIM和DMARC以实现域名认证,减少被标记为垃圾邮件的问题。
资讯摘要
Cloudflare的邮件服务作为Agent周的一部分进入公开测试,为开发者提供了一个专为AI代理构建的平台,这些代理可以通过邮件进行通信。借助已经免费的邮件路由和现在进入公开测试的邮件发送功能,用户可以在Cloudflare全球网络内接收邮件、处理并回复。
该服务自动完成邮件认证,确保高送达率。同时引入了新的邮件MCP服务器、Wrangler CLI命令以及开源工具如代理邮箱参考应用,使创建可扩展的邮件原生代理变得前所未有的简单。

资讯正文
电子邮件是世界上最易访问的接口。它无处不在——无需定制聊天应用,也无需为每个渠道开发专属 SDK。每个人都有电子邮件地址,这意味着每个人都可以与你的应用程序或代理互动,你的代理也可以与任何人互动。
如果你正在构建一个应用程序,你已经依赖电子邮件进行注册、通知和发票发送。越来越多的情况下,不仅你的应用程序逻辑需要这个渠道,代理也需要。在私有测试阶段,我们与一些开发者交谈过,他们正在打造这样的应用:客户支持代理、发票处理流程、账户验证流程以及多代理工作流。所有这些都基于电子邮件构建。模式已经很清晰:电子邮件正成为代理的核心接口,而开发者需要为此专门设计的基础设施。
Cloudflare 邮件服务正是这一解决方案。通过
邮件路由(Email Routing)
,你可以将邮件接收至你的应用程序或代理;通过
邮件发送(Email Sending)
,你可以回复邮件,或向用户发送通知,告知代理已完成工作。再加上整个开发者平台的其他功能,你可以在邮件钩子上构建完整的邮件客户端和
代理 SDK(Agents SDK)
今天,作为代理周的一部分,Cloudflare 邮件服务进入
公开测试版(public beta)
,允许任何应用程序和任何代理发送邮件。我们还完成了用于构建原生邮件代理的工具包:
- 邮件发送绑定(Email Sending binding),可在 Workers 和代理 SDK 中使用
- 新的邮件 MCP 服务器
- Wrangler CLI 的邮件命令
- 编码代理的技能支持
- 一个开源的代理收件箱参考应用
邮件发送:现已进入公开测试版
邮件发送功能从私有测试版升级为
公开测试版(public beta)
。现在你可以直接从 Workers 发送事务性邮件,使用原生的 Workers 绑定——无需 API 密钥,也无需管理密钥。
export default {
async fetch(request, env, ctx) {
await env.EMAIL.send({
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."
});
return new Response("Email sent");
},
};
或者,你也可以从任意平台、任意语言,使用 REST API 和我们的 TypeScript、Python 和 Go SDK 发送邮件:
curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/email-service/send" \
--header "Authorization: Bearer <API_TOKEN>" \
--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 网络构建的全球服务,无论你在世界哪个角落,都能以低延迟发送邮件。
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: `Thanks for reaching out. We received your message about "${this.state.ticket.subject}" and will follow up shortly.`
});
}
}
export default {
async email(message, env) {
await routeAgentEmail(message, env, {
resolver: createAddressBasedEmailResolver("SupportAgent"),
});
},
} satisfies ExportedHandler<Env>;
如果您还不熟悉 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邮件服务不仅适用于运行在Cloudflare上的代理。代理运行在各种环境中,无论是本地或远程环境中的代码代理(如Claude Code、Cursor或Copilot),还是容器或外部云中的生产代理。它们都需要从这些环境中发送邮件。我们提供了三种集成方式,使任何代理无论运行在何处都能访问邮件服务。
邮件现已通过以下方式提供:
Cloudflare MCP服务器
与提供整个Cloudflare API访问权限的Code Mode驱动服务器相同。借助此MCP服务器,您的代理可以发现并调用邮件端点来发送和配置邮件。您可以通过一个简单的提示发送邮件:
“当构建完成时,从我的预发布域名向hello@example.com发送一条通知邮件”
对于运行在计算机或具有bash访问权限沙箱中的代理,Wrangler CLI解决了我们在Code Mode博客文章中讨论过的MCP上下文窗口问题——工具定义可以在代理开始处理任何消息之前消耗数万个标记。通过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
,作为如何利用邮件路由(Email Routing)处理入站邮件、邮件发送(Email Sending)处理出站邮件、Workers AI进行分类、R2存储附件,以及Agents SDK实现状态感知代理逻辑来构建完整邮件应用的参考方案。你可以一键部署该应用,立即获得一个完整的收件箱、邮件客户端和代理,用于管理你的邮件。
我们希望邮件代理工具具备可组合性和可复用性。与其让每个团队重复构建相同的入站分类-回复流程,不如从这个参考应用开始。你可以 fork 它、扩展它,或将其作为你自定义邮件代理的起点,以适配你的工作流程。
现在就试试吧
邮件是全球最重要工作流所在的地方,但对代理而言,它一直是一个难以触及的渠道。随着
邮件发送(Email Sending)
正式进入公共测试阶段,Cloudflare 邮件服务成为了一个双向通信的完整平台,使收件箱成为代理的第一类接口。
无论你是开发一个在收件箱中与客户互动的支持代理,还是一个实时更新团队信息的后台流程,你的代理现在都拥有了在全球范围内无缝沟通的能力。收件箱不再是一个孤岛,而是代理提供帮助的又一重要场所。
立即在 Cloudflare 控制台中试用
邮件发送功能
阅读
邮件服务文档
查阅
代理 SDK 的邮件指南
了解
邮件服务 MCP 服务器
和
技能模块
部署开源参考应用
观看 Cloudflare TV 上的相关视频
来源与参考
收录于 2026-04-17