Our take
- Activity
- 86
- Community
- 34
- Issues
- 47
- Pull requests
- 83
+2 stars in the last 10 days
- Merges more pull requests than 94% of the projects we track
- Releases more often than 87% of the projects we track
Overview
e2a is a Go-based email API and relay that connects application services and AI agents to real email inboxes. It handles inbound and outbound email, so teams can give an agent an address and let it receive messages and reply without building the mail transport and mailbox infrastructure themselves.
It is a fit when email needs to work as a human-accessible interface for software, especially when agents need to receive mail without exposing a public webhook endpoint. Use the hosted service for a managed start, or self-host the Apache-2.0 project when you need to operate the infrastructure yourself.
Key Features
- Send transactional email through an HTTP API, TypeScript SDK, or Python SDK.
- Receive inbound mail through REST polling, WebSockets, webhooks, or MCP tools.
- Evaluate SPF, DKIM, and DMARC for inbound messages and expose structured authentication results.
- Reply using email threading headers, with separate application-level
conversation_idcorrelation. - Hold outbound messages for human approval before delivery.
- Provide an MCP server and CLI for agent and inbox workflows.
- Self-host the service with Docker and PostgreSQL, or use the managed service at e2a.dev.
Use Cases
- AI support inboxes: Give a support agent an email address to receive customer requests and reply in-thread, adding human approval for sensitive responses.
- Local or private-network agents: Let an agent monitor and process inbound mail over WebSockets or polling when it cannot accept public webhooks.
- Email-triggered application workflows: Turn incoming confirmations, forms, or receipts into application events and send templated transactional responses.
- Agent-to-human or agent-to-agent communication: Use email when the other party is a person or an external system that cannot be expected to adopt a new protocol.
Getting Started
For a local Docker deployment:
git clone https://github.com/tokencanopy/e2a.git
cd e2a
docker compose up -d
For the hosted service, start at e2a.dev. See the repository README for configuration, agent setup, API references, and deployment details.
Alternatives
- forwardemail.net: Forward Email is a full mail platform with forwarding and mailbox protocols, while e2a focuses on an application-facing API for sending and agent-managed inbound email.
| Project | Language | License | Stars | Status |
|---|---|---|---|---|
| e2a | Go | Apache-2.0 | 192 | Not checked yet |
| forwardemail.net | JavaScript | – | 1.7k | Active |
Considerations
- A self-hosted deployment requires Docker and PostgreSQL. Receiving mail from external senders also requires a mail domain configured to route to the relay.
- Production email delivery involves operating and configuring SMTP and DNS. The hosted service is the simpler option if you do not want to manage that infrastructure.
- Inbound content screening is self-host-only according to the README, and is disabled by default even there.
- Some documented capabilities are marked beta, including templates, contacts and outreach, scheduled sending, and parts of the review and protection APIs. Check the API stability notes before depending on those surfaces.
Found this useful?
Share it with someone who would like e2a.