Compare
Not every “email for agents” is the same product.
A dozen products now describe themselves as email for AI agents. They are solving at least five separate problems, and the one you have decides which of them is even a candidate.
This page is our reading of the field, including where e2a is the wrong answer. Everything stated about another product is what its own public documentation said on 2026-09-09, linked so you can check it. Products change; this page is dated for that reason.
Five problems, one name
Work out which one you have.
01
An address the agent owns
Your agent can send email. Nobody can write back to it, because there is no mailbox behind the address.
The product creates addresses and holds the mail. The agent sends, receives and replies through an API of its own, and the mailbox belongs to the agent rather than to a person.
This is the category e2a is in. Choose a lighter one if the mailbox is somewhere to catch a signup code, and nobody will ever have to establish who the sender was.
AgentMail · DevInbox · Robotomail · Inbound
02
An API that sends the mail
Your product sends receipts, alerts and password resets, and the reply — if there is one — is somebody else's problem.
A transactional sending API, with deliverability, templates and suppression built around outbound. Inbound, where it exists, is an MX record pointed at them and a webhook you host.
Choose one of these if the volume is high, the mail comes from your product rather than from an agent, and a reply is a support ticket rather than the next turn of a conversation. They are better at delivery at scale than we are.
Resend · Postmark · SendGrid · Amazon SES
03
Inbound mail as an HTTP request
Mail is arriving and your code has to see it. Nothing needs to be kept afterwards.
MX records point at them, and each message becomes a POST to a URL you run, or a forward into a mailbox you already have. There is usually no stored mailbox to read back.
Choose one of these if you already run a public endpoint and mail is an event rather than a conversation. They are the cheapest way to turn an address into a function call.
CloudMailin · Cloudflare Email Routing · ImprovMX
04
A layer over a mailbox that already exists
The mail that matters is already in a person's Gmail or Outlook, and the agent has to work inside it.
OAuth into an account somebody already owns, then a unified API or a tool set over its threads, labels and drafts. The agent acts as that person.
Choose one of these when the job is triage, drafting and follow-up inside a human's own inbox. The sender is the human, and that is exactly what you want — e2a cannot do this at all.
Nylas · Unipile · Composio Gmail
05
Run the mail server yourself
You want the whole path on infrastructure you operate, with no vendor in it.
An MTA or a mail platform you run: SMTP in, SMTP out, storage, and whatever you build above it.
Choose one of these if what you want is a mail server and you are happy to build the agent layer yourself. e2a is Apache-2.0 and self-hostable too, so the question is not who holds the server — it is what comes prebuilt above transport.
Postal · Stalwart · Forward Email
Where e2a differs
The rows worth arguing about, in both directions.
The e2a column is the served /v1 contract and the hosted service, not a roadmap. The other columns describe the shape of a category rather than any one company, because a category can be summarised and a competitor cannot. The last four rows are ones we lose.
| Capability | e2a | Agent inboxes | Sending APIs | Inbound webhooks | Mailbox layers | Mail servers |
|---|---|---|---|---|---|---|
| The agent has an address of its ownSomeone can write to the agent, and the answer comes back from the same address. | Yes | Yes | Varies by product | Varies by product | Varies by product | Yes |
| Inbound without a public URLAn agent on a laptop or behind a corporate firewall still receives its mail. | Yes | Varies by product | No | No | Varies by product | Varies by product |
| SPF, DKIM and DMARC evidence on every inbound messageThe agent can tell a real reply from a forged one before it acts on what the message says. | Yes | No | Varies by product | Varies by product | Varies by product | Varies by product |
| Replies resolved into threads by the serverThe answer lands in the conversation it came from, without your code tracking Message-IDs. | Yes | Yes | No | No | Yes | No |
| A hold-and-approve step before mail leavesA person can stop an agent's message before a customer reads it, and something happens if nobody looks. | Yes | No | No | No | No | No |
| Inbound screening for prompt injectionAn email is untrusted input, and the agent is going to act on what it says. | Varies by product | No | No | No | No | No |
| A new agent provisions its own address in one callNo DNS, no domain purchase, and no console visit between deciding and sending. | Yes | Yes | No | Varies by product | No | Varies by product |
| Runs on your own infrastructure, source includedIdentity infrastructure for your agents is readable code rather than a vendor black box. | Yes | No | No | No | No | Yes |
| MCP tools for the mailboxAn MCP-aware runtime gets an inbox toolset without anyone writing a client. | Yes | Varies by product | Varies by product | Varies by product | Yes | Varies by product |
| Works inside a mailbox a person already ownsThe agent triages the mail already sitting in your Gmail or Outlook. | No | No | No | Varies by product | Yes | No |
| IMAP, POP3 and desktop mail clientsYou open the mailbox in the client you already use. | No | No | No | No | Yes | Yes |
| Campaign volume and deliverability toolingMillions of messages a month, warmed addresses, and the reporting a marketing team expects. | No | No | Yes | No | No | Varies by product |
| Calendar and contacts from the same accountScheduling and the address book arrive with the mailbox. | No | No | No | No | Yes | Varies by product |
●yes · ◐ varies by product · ○ no · as documented on 2026-09-09
What e2a does not do
Seven reasons to close this tab and use something else.
- There is no IMAP
- e2a is an HTTP API, a WebSocket, webhooks, MCP and a CLI. You cannot point Apple Mail or Outlook at an agent's mailbox, and there is no POP3 either.
- It is not your own inbox
- e2a gives an agent an address of its own. It does not read the mail already sitting in a person's Gmail or Outlook — for that, connect one of the mailbox layers above.
- Attachments stop at 10 MiB
- At most ten per message, 10 MiB each and 25 MiB combined, under a 10 MiB ceiling on the whole composed message once subject and bodies are counted. Anything larger travels as a link to somewhere else.
- Injection screening is self-hosted only, for now
- The inbound scan that flags prompt-injection payloads and routes a message to allow, review or block runs on self-hosted deployments. It is not yet enabled on the hosted service at e2a.dev.
- Search is lexical
- A boolean filter language over headers, labels, addresses and text, with AND, OR and NOT. It will not find a message by what it meant.
- Not every part of /v1 is frozen
- The core API and SDKs are GA and frozen as of v1.5.0, but an enumerated list is still beta and can change: contacts and outreach, scheduled sending, templates, the review queue, agent protection config, agent-scoped suppressions, managed unsubscribe, lifecycle diagnostics, delivery metrics, and the thread_id field on message reads.
- Bulk is not what this is for
- The hosted free tier is 3,000 sends a month with a 100-a-day cap and a “Created with e2a” footer, and the paid plans are sized for agents talking to people rather than for campaigns. If you need a million sends, use one of the sending APIs — you can point e2a's outbound at them.
The field
Everything we looked at.
Read down Choose it when and stop at the line that describes what you are doing. Everything here comes from the page linked on each product; a question one does not answer publicly is left unanswered rather than guessed at.
| Product | Choose it when | Look elsewhere if | Published price |
|---|---|---|---|
| e2a | People outside your company have to be able to write to your agent, get an answer in the same thread, and you have to be able to establish who actually sent what. | The mail already lives in a person's own Gmail or Outlook, or you are sending campaign volume from your product rather than conversation from an agent. | Free tier of 3 agents, 3,000 sends a month and 100 a day; $10, $20 and $99 a month above it; inbound free and unmetered on every plan. Self-hosted has no metering at all. |
| An address the agent owns | |||
| AgentMail | An agent needs its own inbox with threaded replies and a searchable record, reached from a REST API, SDKs or MCP. | A person has to release the agent's mail before it goes out, or the mailbox has to run on your own infrastructure. | Free at 3 inboxes and 3,000 emails a month; $20 and $200 a month above it, then custom. |
| DevInbox | An agent has to act on the web: sign up for services, receive the verification code, and reply to what arrives. | You need evidence about who sent an inbound message, or a hold-and-approve step before a send. | Free developer tier at 1,500 operations a month; $12, $39 and $99 a month above it. |
| Robotomail | The agent should provision itself: one POST to /v1/signup returns an account, an API key and a mailbox. | The agent sends more than the plan's daily cap, or you need a channel other than the REST API. | Free start at 10 sends and 10 receives a month; $19 to $199 a month above it. |
| Inbound | You want unlimited addresses on one domain with no per-address setup, and everything arriving at a single webhook. | Each agent needs its own credential and its own delivery channel rather than one webhook for the whole domain. | $4 to $79 a month by volume and domain count, plus $3.50 per extra domain. |
| An API that sends the mail | |||
| Resend | Your product sends transactional or marketing mail and you want a modern API, SDKs in nine languages, and an MCP server for the agent writing the code. | The receiver is an agent with no public URL, or the reply has to come back into that agent's own mailbox. | Free at 3,000 emails a month and 100 a day; $20 a month and up, to custom. |
| Postmark | Your application has to read the replies its own outbound mail generates, parsed into clean JSON. | The mailbox belongs to an agent that has to hold state, or your handler cannot be a public URL. | Free at 100 emails a month; paid plans by volume above it. |
| SendGrid | You are already sending at volume through SendGrid and want the replies parsed and posted to the same application. | You need the message kept and read back later, or delivered anywhere other than a public URL. | Free trial of 100 emails a day for 60 days; $19.95 and $89.95 a month above it, then custom. |
| Amazon SES | The volume is high, the rest of the stack is already in AWS, and you want to pay by the message. | You want an inbox rather than a pipeline, or you do not want to assemble the receiving side yourself. | “You pay only for what you use.” |
| Inbound mail as an HTTP request | |||
| CloudMailin | You want inbound mail as JSON, multipart or raw at a webhook, with attachments dropped into your own object storage. | The agent has to read its mailbox back later, or cannot host a public endpoint. | “The first 10,000 emails per month are free.” |
| Cloudflare Email Routing | The domain is already on Cloudflare and you want incoming mail to run a Worker, or forward to a mailbox you have. | You need stored mail, an agent-facing API, or sending outside the Workers Paid plan. | Forwarding to verified destinations is free on all plans; Email Sending is beta on the Workers Paid plan. |
| ImprovMX | You want aliases on your domain that fan out to real mailboxes, a webhook, or nowhere at all. | The recipient is an agent that needs to hold and reason over its own mail. | “Generous free tier”; prices not stated on the page checked. |
| A layer over a mailbox that already exists | |||
| Nylas | Your application works inside your users' existing Gmail, Outlook, Exchange or IMAP accounts, and you want one API over all of them. | There is no human account to connect, or you want the sender to be the agent rather than the person. | “Connect up to 5 accounts for free”; paid tiers not stated. |
| Unipile | You are connecting many users' mailboxes at once and want thread and label management across providers. | The mailbox belongs to an agent rather than to one of your users. | Seven-day free trial; paid tiers not stated on the page. |
| Composio Gmail | An agent framework needs Gmail tools now, with OAuth, token refresh and per-user scoping handled for you. | The agent needs an address of its own rather than access to somebody else's. | Free at 100,000 tool calls a month; $29 a month above it. |
| Run the mail server yourself | |||
| Postal | You want your own sending platform — “think Sendgrid, Mailgun or Postmark but open source”. | You do not want to operate an MTA, or you need the agent abstraction prebuilt. | None — you run it. |
| Stalwart | You want one server speaking SMTP, IMAP, JMAP, POP3, CalDAV, CardDAV and WebDAV, on your own hardware. | You want an HTTP contract shaped for agents rather than mail protocols. | None — you run it. |
| Forward Email | You want forwarding and mailboxes on your own domain, hosted or self-hosted with Docker, with an API and an MCP server. | You want per-agent identity evidence and a review step rather than a mailbox service. | $0 a month for unlimited domains on forwarding; $3, $9 and $250 a month for sending and mailboxes. |
An address the agent owns
- AgentMail
“The email inbox API for AI agents.”
- How an agent reaches it
- REST API, Python and TypeScript SDKs, MCP server, webhooks and WebSockets
- Sends and receives
- Both, with threaded replies and multi-party threads
- Whose address
- The agent's own inbox, on a custom domain if you add one
- Sender authentication
- “Custom domains with DKIM, SPF, and DMARC”
- Approval before it sends
- Not documented
- Source available
- Not documented
Source: agentmail.to, 2026-09-09
- DevInbox
“Email infrastructure for AI agents” — a persistent inbox “created in milliseconds”.
- How an agent reaches it
- REST API, TypeScript and Python SDKs, MCP server at mcp.devinbox.io, webhooks
- Sends and receives
- Both, with In-Reply-To and References threading headers
- Whose address
- A persistent address per inbox the API creates
- Sender authentication
- Not documented
- Approval before it sends
- Not documented
- Source available
- Not documented
Source: devinbox.io, 2026-09-09
- Robotomail
“Email inboxes your AI agents own.”
- How an agent reaches it
- REST API
- Sends and receives
- Both; sends are capped per mailbox per day by plan
- Whose address
- A default mailbox at signup, custom domains on paid plans
- Sender authentication
- “Auto-configured DKIM, SPF, and DMARC”
- Approval before it sends
- Not documented
- Source available
- Not documented
Source: robotomail.com, 2026-09-09
- Inbound
“Email infrastructure built for agent inboxes, webhooks, and automated workflows.”
- How an agent reaches it
- REST API, CLI, webhooks
- Sends and receives
- Both — “send, receive, and reply in thread”
- Whose address
- Unlimited mailboxes on a domain you add
- Sender authentication
- Not documented
- Approval before it sends
- Not documented
- Source available
- Repository linked; license not stated
Source: inbound.new, 2026-09-09
An API that sends the mail
- Resend
“The email API for developers. Send transactional and marketing emails at scale with a simple, modern API.”
- How an agent reaches it
- REST API, SDKs in nine languages, CLI, remote and self-hosted MCP servers
- Sends and receives
- Sends; receives by pointing MX records at Resend and processing messages via webhooks
- Whose address
- A domain you verify
- Sender authentication
- Not documented
- Approval before it sends
- Not documented
- Source available
- A self-hosted MCP server; the service itself is hosted
Source: resend.com, 2026-09-09
- Postmark
“Integrate your users' email replies directly into your application.”
- How an agent reaches it
- REST API, SMTP, inbound webhook
- Sends and receives
- Both; inbound arrives as a JSON webhook
- Whose address
- A generated inbound address, or one on your own domain — several per domain
- Sender authentication
- The inbound webhook posts spam scoring and full header details
- Approval before it sends
- Not documented
- Source available
- Not documented
Source: postmarkapp.com, 2026-09-09
- SendGrid
The Inbound Parse webhook “parses the contents and attachments for incoming email … then send that data to a URL of your choice”.
- How an agent reaches it
- REST API, SMTP, Inbound Parse webhook
- Sends and receives
- Both; inbound is parsed and POSTed to a URL you host
- Whose address
- A receiving domain whose MX records point at mx.sendgrid.net
- Sender authentication
- The parsed payload carries SPF and DKIM verification results, plus an optional spam check
- Approval before it sends
- Not documented
- Source available
- Not documented
Source: twilio.com/docs/sendgrid, 2026-09-09
- Amazon SES
“A cloud-based email service provider that can integrate into any application for high-volume email automation.”
- How an agent reaches it
- Not stated on the page checked
- Sends and receives
- Both; incoming mail is handled through Mail Manager
- Whose address
- A domain you verify
- Sender authentication
- Not documented
- Approval before it sends
- Not documented
- Source available
- Not documented
Source: aws.amazon.com/ses, 2026-09-09
Inbound mail as an HTTP request
- CloudMailin
“The email API for developers … with a simple API and Email to Webhook.”
- How an agent reaches it
- Webhook in JSON, multipart or raw, plus an outbound API
- Sends and receives
- Both, with receiving as the primary product
- Whose address
- An address on a domain whose MX records point at them
- Sender authentication
- Not documented
- Approval before it sends
- Not documented
- Source available
- Not documented
Source: cloudmailin.com, 2026-09-09
- Cloudflare Email Routing
“Route incoming emails to custom addresses, Workers, or external destinations.”
- How an agent reaches it
- Routing rules and the email() handler in a Worker
- Sends and receives
- Receives; sending is a separate beta
- Whose address
- Any address on a domain in your Cloudflare account
- Sender authentication
- Not documented
- Approval before it sends
- Not documented
- Source available
- Not documented
Source: developers.cloudflare.com, 2026-09-09
- ImprovMX
“Easily send & receive emails for your custom domain.”
- How an agent reaches it
- Aliases, a webhook target, SMTP and a JSON send API
- Sends and receives
- Both; forwarding is the primary product
- Whose address
- Aliases on your custom domain
- Sender authentication
- Not documented
- Approval before it sends
- Not documented
- Source available
- Not documented
Source: improvmx.com, 2026-09-09
A layer over a mailbox that already exists
- Nylas
“One API for every email provider on earth” — with agent accounts as a separate product.
- How an agent reaches it
- REST API and webhooks
- Sends and receives
- Both, inside the connected account
- Whose address
- The user's own, at their existing provider
- Sender authentication
- Not documented
- Approval before it sends
- Not documented
- Source available
- Not documented
Source: nylas.com, 2026-09-09
- Unipile
“Connect Gmail, Outlook, and IMAP through a single unified API” with real-time sync and webhooks.
- How an agent reaches it
- REST API with over 100 endpoints, Node SDK, webhooks
- Sends and receives
- Both, inside the connected account
- Whose address
- The user's own, at their existing provider
- Sender authentication
- Not documented
- Approval before it sends
- Not documented
- Source available
- Not documented
Source: unipile.com, 2026-09-09
- Composio Gmail
A hosted Gmail toolkit and MCP server for agent frameworks.
- How an agent reaches it
- Hosted MCP server and direct API integrations
- Sends and receives
- Both, inside the connected Gmail account
- Whose address
- The connected user's Gmail address
- Sender authentication
- Not documented
- Approval before it sends
- Not documented
- Source available
- Not documented
Source: composio.dev, 2026-09-09
Run the mail server yourself
- Postal
“A fully featured open source mail delivery platform for incoming & outgoing e-mail.”
- How an agent reaches it
- SMTP, a web interface, and webhooks on delivery events
- Sends and receives
- Both
- Whose address
- Anything on the domains you run
- Sender authentication
- Not documented
- Approval before it sends
- Not documented
- Source available
- MIT
Source: github.com/postalserver/postal, docs.postalserver.io, 2026-09-09
- Stalwart
“All-in-one mail & collaboration server.”
- How an agent reaches it
- SMTP, IMAP, JMAP, POP3, plus web administration and a CLI
- Sends and receives
- Both
- Whose address
- Anything on the domains you run
- Sender authentication
- Not documented
- Approval before it sends
- Not documented
- Source available
- Open source; licence not stated on the page checked
Source: stalw.art, 2026-09-09
- Forward Email
“Free, open-source email service for custom domains.”
- How an agent reaches it
- IMAP, POP3, SMTP, a developer API and an MCP server
- Sends and receives
- Both
- Whose address
- Anything on the custom domains you add
- Sender authentication
- Not documented
- Approval before it sends
- Not documented
- Source available
- “100% Open-Source Software”; licence not stated
Source: forwardemail.net, 2026-09-09
If something has to reach a person who will never install anything, and answer them in the same thread under a name you can vouch for — that is the mailbox we are building.
e2a is generally available and Apache-2.0 — the hosted service has a free tier, and the same image runs on your own hardware. If we have described your product wrongly on this page, write to support@team.tokencanopy.com and we would rather fix it than keep it.