the inbox
A shared support mailbox or a forwarding rule into a webhook — the agent has no mailbox of its own.
A dedicated IMAP-backed inbox per agent at <agent-name>@agents.a2acloud.io, provisioned in seconds.
Most 'agent email' is a forwarding rule into a webhook — mail goes in, something happens, nothing is kept. On a2a cloud every agent gets a real IMAP-backed inbox at <agent-name>@agents.a2acloud.io, and every conversation it holds becomes an auditable thread in your dashboard: user messages in, assistant messages out, an audit event for each mail. The inbox is the evidence.
imap-backed · threaded by references · audit event per mail
Wire inbound mail into a script and you get action without memory. The conversation lives in the sender's mail client, the bot's replies vanish into an SMTP queue, and when someone asks what the agent told a customer last Tuesday, the honest answer is a shrug. There's no thread to open, no transcript to read, and no event trail tying a reply to the mail that triggered it — which is exactly the kind of unaccountable channel that gets automation shut down.
The a2a agent inbox is a first-class runtime resource: IMAP-backed storage, a typed handler contract, threading that mirrors the mail itself, and an event written for every message in either direction.
Each Pro-plan agent gets its own real mailbox behind <agent-name>@agents.a2acloud.io. The SDK's ctx.mail speaks list, read, send, and reply over injected IMAP/SMTP credentials — a standards-backed inbox, not a webhook shim.
Conversations are stitched by the email References chain, so one exchange — however many messages long — is exactly one chat thread in the dashboard, marked with an email badge.
Inbound mail renders as a user message; the agent's answer renders as an assistant message. You read an email conversation the same way you read any other agent session — in full, in order.
Every received and every sent email writes an audit event alongside the transcript. What arrived, what the agent said, and when — recorded as evidence, not reconstructed from mail-server logs.
@a2a.tool(on_email=True) enforces a (ctx, email: InboundEmailPayload) signature: sender, subject, body, message_id, date, references, and attachments inlined up to 1 MiB each. Return a string or {body, subject}; the decorator is the SDK contract, shipping in the next a2a-pack release.
Only allowlisted senders reach the agent, sends are locked to its own From address and capped at 50 a day (over-cap replies stay in the thread and are audited), and the 100 MiB mailbox lives and dies with the agent.
A shared support mailbox or a forwarding rule into a webhook — the agent has no mailbox of its own.
A dedicated IMAP-backed inbox per agent at <agent-name>@agents.a2acloud.io, provisioned in seconds.
Each inbound mail is an isolated event; the thread lives only in the sender's mail client.
The References chain binds the whole exchange into one dashboard thread with an email badge.
Grep mail-server logs and hope the bot's replies were BCC'd somewhere findable.
Open the thread: user messages in, assistant messages out, an audit event per mail.
Replies go out through whatever SMTP creds the script holds — from any address it likes.
ctx.mail sends are locked to the agent's own From address, threaded with In-Reply-To and References.
A misfiring bot can spray unlimited mail before anyone notices the queue.
50 outbound emails per day per agent; over-cap replies are preserved in the thread and audited.
It's a real, per-agent mailbox — on a2a cloud, an IMAP-backed inbox behind <agent-name>@agents.a2acloud.io. Mail sent to the address invokes the agent, its reply goes back out from the same address, and the whole exchange is preserved as one auditable thread in the dashboard.
A webhook shim hands your code a blob and keeps no record. Here the agent owns an actual mailbox: ctx.mail exposes list, read, send, and reply over injected IMAP/SMTP credentials, conversations are threaded by the References chain, and every mail in either direction writes an audit event. The inbox is a governed surface, not a forwarding rule.
Each conversation is one chat thread marked with an email badge — inbound mail as user messages, the agent's answers as assistant messages, in order. Because threading follows the email References chain, even a long back-and-forth stays a single thread with a full transcript.
You declare a handler with @a2a.tool(on_email=True), which enforces a (ctx, email: InboundEmailPayload) signature — sender, subject, body, message_id, date, references, and attachments inlined up to 1 MiB each. Return a string or a {body, subject} dict and the platform sends the threaded reply. That decorator is the SDK contract shipping in the next a2a-pack release; the inbox and replies are live today.
Each mailbox holds 100 MiB and each agent may send 50 emails per day — replies past the cap remain in the thread and are audited rather than silently dropped. If your plan lapses, mail is kept for 30 days; delete the agent and its mailbox is removed with it.
All guides live in the guides index.
a2a cloud provisions a real inbox for every Pro-plan agent — IMAP-backed, allowlist-first, capped at 50 sends a day — and turns each email conversation into one dashboard thread with a full transcript and an audit event per mail. Enable it with resources.mailbox: true, deploy, and every exchange your agent holds becomes something you can open, read, and prove.