跳转到内容
搜索文档

邮件

最后更新 查看 MarkdownAgent 设置

Email 是 Agent 通过收件箱而非聊天 UI 与用户或系统交互的通信渠道。Agent 可发送出站邮件、接收入站邮件、将回复路由回现有会话,并将邮件内容作为 Agent Workflow 的一部分。

在以下场景使用 Email:

  • 发送通知、摘要、收据或跟进消息。
  • 通过 Cloudflare Email Service 处理入站消息。
  • 从回复继续对话。
  • 通过 Agent 路由支持、销售或运营 Workflow。

工作原理

出站邮件在 Worker 中使用 send_email binding。入站邮件使用 Email Service 路由规则将消息发送到 Worker,Agent 可在决定如何响应前解析发件人、收件人、头和正文。

对于回复处理,在回复地址、消息元数据或头中包含稳定标识符,以便 Worker 将后续消息路由到正确的 Agent 实例。

基本模式

实现 onEmail() 处理入站邮件,Agent 需要发送响应时使用 sendEmail()replyToEmail()

import { Agent, callable, routeAgentEmail } from "agents";
import { createAddressBasedEmailResolver } from "agents/email";

export class EmailAgent extends Agent {
	@callable()
	async sendWelcomeEmail(to) {
		await this.sendEmail({
			binding: this.env.EMAIL,
			to,
			from: "[email protected]",
			replyTo: "[email protected]",
			subject: "Welcome",
			text: "Thanks for signing up. Reply to this email if you need help.",
		});
	}

	async onEmail(email) {
		await this.replyToEmail(email, {
			fromName: "Support Agent",
			body: "Thanks for your email. We received it.",
		});
	}
}

export default {
	async email(message, env) {
		await routeAgentEmail(message, env, {
			resolver: createAddressBasedEmailResolver("EmailAgent"),
		});
	},
};
import { Agent, callable, routeAgentEmail } from "agents";
import { createAddressBasedEmailResolver, type AgentEmail } from "agents/email";

export class EmailAgent extends Agent {
	@callable()
	async sendWelcomeEmail(to: string) {
		await this.sendEmail({
			binding: this.env.EMAIL,
			to,
			from: "[email protected]",
			replyTo: "[email protected]",
			subject: "Welcome",
			text: "Thanks for signing up. Reply to this email if you need help.",
		});
	}

	async onEmail(email: AgentEmail) {
		await this.replyToEmail(email, {
			fromName: "Support Agent",
			body: "Thanks for your email. We received it.",
		});
	}
}

export default {
	async email(message, env) {
		await routeAgentEmail(message, env, {
			resolver: createAddressBasedEmailResolver("EmailAgent"),
		});
	},
} satisfies ExportedHandler<Env>;

配置

为出站邮件添加 send_email binding,然后配置 Email Service 路由规则将入站邮件发送到 Worker。

{
  "$schema": "./node_modules/wrangler/config-schema.json",
  "send_email": [
    {
      "name": "EMAIL",
      "remote": true
    }
  ]
}
[[send_email]]
name = "EMAIL"
remote = true

remote = true 选项让你在 wrangler dev 本地开发期间调用真实的 Email Service API。

构建 Email Agent

完整演练(包括域名设置、binding、入站路由和安全回复)请参阅 Email Agent 示例。

邮件 Agent

使用 Cloudflare Email Service 和 Agents SDK 构建可发送、接收、路由和回复邮件的 Agent。

相关资源

Email Service

使用 Cloudflare Email Service 路由、接收和发送邮件。

这篇文档对您有帮助吗?