INTEGRITY Dokumentace

E-mail

E-mail je komunikační kanál pro agenty, kteří potřebují komunikovat s uživateli nebo systémy prostřednictvím schránek namísto chatovacích rozhraní. Agenti mohou odesílat odchozí e-maily, přijímat příchozí e-maily, směrovat odpovědi zpět do existující relace a používat obsah e-mailu jako součást workflow agenta.

Používejte e-mail, pokud chcete, aby agent:

Jak to funguje

Odchozí e-mail používá send_email vazbu ve svém Workeru. Příchozí e-maily využívají směrovací pravidlo Email Service, které zprávy odesílá do Workeru, kde agent může před rozhodnutím o odpovědi zpracovat odesílatele, příjemce, hlavičky a tělo zprávy.

Pro zpracování odpovědí uveďte stabilní identifikátor v adrese pro odpověď, metadatech zprávy nebo hlavičkách, aby Worker mohl navazující zprávy nasměrovat na správnou instanci agenta.

Základní vzor

Implementujte onEmail() ke zpracování příchozí pošty a použijte sendEmail() nebo replyToEmail() když agent potřebuje odeslat odpověď.

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

Konfigurace

Přidejte send_email vazbu pro odchozí e-maily a poté nakonfigurujte směrovací pravidlo Email Service pro odesílání příchozí pošty do vašeho Workeru.

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

remote = true možnost umožňuje volat skutečné Email Service API během lokálního vývoje s wrangler dev.

Sestavte e-mailového agenta

Kompletní postup včetně nastavení domény, bindings, směrování příchozí pošty a zabezpečených odpovědí najdete v příkladu e-mailového agenta.

E-mailový agent

Sestavte agenta, který odesílá, přijímá, směruje e-maily a odpovídá na ně pomocí Cloudflare Email Service a Agents SDK.

Email Service

Směrujte, přijímejte a odesílejte e-maily pomocí Cloudflare Email Service.

Odesílání e-mailů z Workers

Odesílejte odchozí e-maily prostřednictvím Workers API.