Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Cloudflare Email Service:现已公开测试,为你的 agent 准备就绪

原文:Cloudflare Email Service: now in public beta. Ready for your agents Source: https://blog.cloudflare.com/email-for-agents/

2026-04-16

邮件是世界上最易触达的接口。它无处不在。无需自定义聊天应用,也无需为每个频道写自定义 SDK。每个人都已经有邮箱地址,这意味着每个人都已经能与你的应用或 agent 交互。你的 agent 也能与任何人交互。

如果你在构建应用,你已经在依赖邮件做注册、通知与发票。越来越多的不只是你的应用逻辑需要这个频道,你的 agent 也需要。在私测期间,我们与构建以下应用的开发者交流过:客户支持 agent、发票处理流水线、账户验证流程、多 agent 工作流。它们都建立在邮件之上。模式很清晰:邮件正在成为 agent 的核心接口,开发者需要为此打造的基础设施。

Cloudflare Email Service 就是这块拼图。借助 Email Routing,你可以让应用或 agent 接收邮件。借助 Email Sending,你可以回复邮件,或在 agent 完成工作时主动外发以通知用户。结合开发者平台的其他部分,你可以构建一个完整邮件客户端,并把 Agents SDK 的 onEmail 钩子作为原生功能使用。

今天,作为 Agents Week 的一部分,Cloudflare Email Service 进入 公开测试,允许任何应用和任何 agent 发送邮件。我们也补全了构建 email-native agent 的工具箱:

  • 来自 Workers 与 Agents SDK 的 Email Sending 绑定

  • 一个新的 Email MCP server

  • Wrangler CLI 邮件命令

  • 面向编码 agent 的 skill

  • 一个开源的 agentic 邮箱参考应用

Email Sending:现已公开测试

Email Sending 今天从私测毕业进入 公开测试。你现在可以通过原生 Workers 绑定直接从 Workers 发送事务性邮件 — 无需 API key,也无需密钥管理。

export default {
  async fetch(request, env, ctx) {
    await env.EMAIL.send({
      to: "[email protected]",
      from: "[email protected]",
      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": "[email protected]",
     "from": "[email protected]",
     "subject": "Your order has shipped",
     "text": "Your order #1234 has shipped and is on its way."
   }'

让邮件真正进入收件箱通常意味着要折腾 SPF、DKIM 与 DMARC 记录。当你把域名加入 Email Service 时,我们自动配置好这一切。你的邮件被认证并送达,而非被标为垃圾。由于 Email Service 是构建在 Cloudflare 网络上的全球服务,你的邮件以低延迟送达世界任何地方。

结合多年来一直免费可用的 Email Routing,你现在拥有完整的双向邮件,且都在同一平台内。在 Worker 中接收一封邮件、处理并回复,无需离开 Cloudflare。

关于 Email Sending 的全面深入介绍,请参阅我们的 Birthday Week 公告。本文余下部分介绍 Email Service 为 agent 解锁了什么。

Agents SDK:你的 agent 是 email-native 的

Cloudflare 上构建 agent 的 Agents SDK 已经为接收和处理入站邮件提供了一流的 onEmail 钩子。但到目前为止,你的 agent 只能同步回复,或向 Cloudflare 账户的成员发送邮件。

有了 Email Sending,这个限制消失了。这就是聊天机器人与 agent 的区别。

邮件 agent 接收消息,在平台上协调工作,并异步响应。

聊天机器人要么当场回应,要么完全不回应。Agent 按自己的节奏思考、行动并通信。借助 Email Sending,你的 agent 可以接收消息,花一小时处理数据,检查另外三个系统,然后用完整答案回复。它可以安排后续跟进。检测到边界情况时可以升级。它可以独立运作。换句话说:它真的能做事,而不只是回答问题。

下面是一个支持 agent 的完整管线 — 接收、持久化与回复:

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);

   // Persist in agent state
    this.setState({
      ...this.state,
      ticket: { from: email.from, subject: parsed.subject, body: parsed.text, messageId: parsed.messageId },
    });

    // Kick off long running background agent task 
    // Or place a message on a Queue to be handled by another Worker

    // Reply here or in other Worker handler, like a Queue handler
    await this.sendEmail({
      binding: this.env.EMAIL,
      fromName: "Support Agent",
      from: "[email protected]",
      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 的邮件能力,下面是底层在做什么。

每个 agent 从一个域名获得自己的身份。 基于地址的解析器把 [email protected] 路由到一个 “support” agent 实例,把 [email protected] 路由到一个 “sales” 实例,以此类推。你不必 provisioning 单独的收件箱 — 路由内置在地址里。你甚至可以使用子地址([email protected])路由到不同 agent 命名空间与实例。

状态在邮件之间持久。 由于 agent 由 Durable Objects 支撑,调用 this.setState() 意味着你的 agent 跨会话记住对话历史、联系信息与上下文。收件箱成为 agent 的记忆,无需独立数据库或向量库。

安全的回复路由内置。 当你的 agent 发出邮件并预期回复时,你可以用 HMAC-SHA256 签名路由头,使回复路由回到发出原始消息的同一个 agent 实例。这防止攻击者伪造头把邮件路由到任意 agent 实例 — 这是大多数“为 agent 提供邮件“方案未解决的安全问题。

这是各团队在别处从零搭建的完整邮件 agent 管线:接收邮件、解析、分类、持久化状态、启动异步工作流、回复或升级 — 全都在单个 Agent 类中,部署到 Cloudflare 全球网络。

面向 agent 的邮件工具:MCP server、Wrangler CLI 与 skill

Email Service 不只面向运行在 Cloudflare 上的 agent。Agent 无处运行,无论是本地或远程环境中运行的 Claude Code、Cursor、Copilot 等编码 agent,还是运行在容器或外部云中的生产 agent。它们都需要从所在环境发送邮件。我们正发布三个集成,让 Email Service 对任何 agent 可用,无论它运行在哪里。

邮件现已通过 Cloudflare MCP server 提供 — 也就是那个由 Code Mode 驱动、让 agent 访问整个 Cloudflare API 的服务器。借助这个 MCP server,你的 agent 可以发现并调用邮件端点来发送与配置邮件。你可以用一句简单的 prompt 发送一封邮件:

"Send me a notification email at [email protected] from my staging domain when the build completes"

对于运行在带 bash 访问权的电脑或沙箱中的 agent,Wrangler CLI 解决了我们在 Code Mode 博客中讨论的 MCP 上下文窗口问题 — 工具定义可能在 agent 处理一条消息前就消耗数万 token。借助 Wrangler,你的 agent 以接近零的上下文开销开始,通过 --help 命令按需发现能力。下面是你的 agent 通过 Wrangler 发送邮件的方法:

wrangler email send \
  --to "[email protected]" \
  --from "[email protected]" \
  --subject "Build completed" \
  --text "The build passed. Deployed to staging."

无论你给 agent 配 Cloudflare MCP 还是 Wrangler CLI,你的 agent 都能仅通过 prompt 代表你发送邮件。

Skills

我们还发布了一个 Cloudflare Email Service skill。它给你的 agent 完整指引:配置 Workers 绑定、通过 REST API 或 SDK 发送邮件、用 Email Routing 配置处理入站邮件、用 Agents SDK 构建,以及通过 Wrangler CLI 或 MCP 管理邮件。它还涵盖送达率最佳实践以及如何打造能进入收件箱而非垃圾箱的优秀事务性邮件。把它放进项目,你的编码 agent 就拥有在 Cloudflare 上构建生产级邮件所需的一切。

开源邮件 agent 工具

私测期间,我们也试验了邮件 agent。很明显,你常常希望保留人在回路的元素来审阅邮件并查看 agent 在做什么。最好的方式是拥有一个内置 agent 自动化的全功能邮件客户端。

这正是为什么我们构建了 Agentic Inbox:一个参考应用,具备完整对话穿线、邮件渲染、接收并存储邮件及附件,以及自动回复邮件。它内置了一个专用 MCP server,以便外部 agent 在从你的 agentic-inbox 发送之前,先草拟邮件供你审阅。

我们正在把 Agentic Inbox 开源,作为如何用 Email Routing 接收入站、Email Sending 发送出站、Workers AI 进行分类、R2 存附件、Agents SDK 实现有状态 agent 逻辑来构建完整邮件应用的参考。你今天就可以一键部署,获得一个完整的收件箱、邮件客户端与面向你邮件的 agent。

我们希望邮件 agent 工具是可组合可复用的。与其每个团队都重建同一个 入站—分类—回复 管线,不如从这个参考应用开始。Fork 它、扩展它,把它作为你自己邮件 agent 的起点,适配你的工作流。

Deploy to Cloudflare

今天就试用

邮件是世界上最重要工作流的栖身之地,但对 agent 而言,它一直是难以触达的频道。随着 Email Sending 进入公开测试,Cloudflare Email Service 成为双向通信的完整平台,让收件箱成为 agent 的一流接口。

无论你在构建一个在客户收件箱中与之相遇的支持 agent,还是一个让团队实时同步的后台流程,你的 agent 现在都拥有在全球范围内无缝通信的方式。收件箱不再是孤岛,而是又一个让 agent 提供帮助的地方。