EmailEngine is a self-hosted email API: software you run on your own server that connects to your users' Gmail, Microsoft 365 and IMAP mailboxes and exposes them through one REST API, with webhooks for new mail. It costs a flat $1,450 or €1,200 a year before VAT, for unlimited mailboxes and unlimited instances, with a 14-day free trial that needs no sign-up or card. The trade-off is that you host, run and scale it yourself: there is no EmailEngine cloud to call.
This review is for the developer or technical founder deciding whether to put EmailEngine under a product: a CRM, a helpdesk, an AI agent, or an outreach tool. It covers what the API does well, what self-hosting really involves, where the flat fee beats per-account pricing from Nylas and Unipile, and what EmailEngine leaves for you to build. Product facts and prices come from emailengine.app, its documentation and its license, read on 8 October 2026.
What is EmailEngine?
EmailEngine describes itself as a headless email client: an application that keeps a connection open to every mailbox you register and translates REST calls into IMAP, SMTP, Gmail API or Microsoft Graph operations. Your code lists, searches, reads and sends mail with JSON, and EmailEngine posts a webhook to your app when a message arrives, is read, moved, flagged or deleted.
It is built and maintained by Andris Reinman, who released Nodemailer, the Node.js email library, in 2011, through his Estonian company Postal Systems OÜ. The project lives on GitHub under postalsys/emailengine, and its site reports more than 200 companies running it in production across 38 countries and more than 380 releases since 2020.
Its own documentation is clear about what it is not:
- Not a mail server. It does not host mailboxes, create addresses, manage domains or receive mail through MX records. It connects to accounts that already exist at Google, Microsoft or any IMAP provider.
- Not a managed service. There is no EmailEngine-hosted endpoint. You deploy it on a cloud server, on-premise, in Docker or on a laptop, and you are responsible for hosting, maintenance and scaling.
What can you build with the EmailEngine API?
The feature set covers the whole mailbox, not just sending:
- Connecting accounts. A hosted authentication form handles the Google and Microsoft OAuth2 flow, or you register accounts over the API. EmailEngine stores and refreshes tokens, and supports Google Workspace domain-wide delegation, Microsoft 365 app-only access, shared and delegated mailboxes.
- Receiving. Webhooks for new mail and for flag and folder changes, signed, deduplicated and retried, with small JavaScript routes to filter or reshape events before they reach Slack, n8n or your own endpoint.
- Reading. Search by sender, recipient, subject, body, date, header and thread, plus Gmail labels and Outlook categories; attachments, inline images and calendar invites.
- Sending. Post JSON and EmailEngine builds the MIME, sends it through the account's own SMTP server or provider API, saves it to Sent Mail and sets the threading headers. Templates, mail merge, scheduled sends and idempotency keys come with it.
- Bounces and unsubscribes. Bounce and complaint parsing with machine-learning-assisted classification, automatic blocklists and RFC 8058 one-click unsubscribe.
- AI agents. An MCP server, in beta, gives an agent permissioned access to search, read, file, draft and send across connected mailboxes, with every tool call running through the same REST route and token rules.
- Operations. An admin interface for account and sync status, live queue inspection, a Prometheus endpoint with a Grafana dashboard, and optional per-account IMAP protocol logs.
The typical buyers, by its own description, are CRM and sales platforms syncing correspondence, support and shared-inbox tools, regulated industries that need control over where mailbox data is processed, webmail builders and AI products that need mailbox access.
How much does EmailEngine cost in 2026?
EmailEngine sells one plan. As read on emailengine.app on 8 October 2026:
| Item | EmailEngine |
|---|---|
| Price | $1,450 or €1,200 a year, renewed annually, VAT excluded |
| Connected mailboxes | Unlimited |
| Instances | Unlimited, for production, staging and development |
| API calls and webhooks | Unlimited |
| Updates and support | All updates while subscribed, support from the developer who wrote the code |
| Serving your customers | Allowed from instances you manage, without a license for each customer |
| Free trial | 14 days, activated from the instance's own dashboard, no sign-up or card |
| Enterprise | A perpetual license paid once, priced above the annual plan, verified offline, invoice or wire payment, net terms, custom contract |
The license, the EmailEngine License Agreement from Postal Systems OÜ, is not an open-source license. The source code is public on GitHub, but the software runs under a license key: after the 14-day trial, the core functionality stops until a valid key is added.
When does the flat fee beat per-account pricing?
A flat fee wins once you connect enough mailboxes. Using each vendor's published prices, before hosting costs:
| Connected mailboxes | EmailEngine | Nylas, cheapest plan, monthly billing | Unipile |
|---|---|---|---|
| 10 | about $121 a month | $15 a month (Essentials) | $55 a month |
| 25 | about $121 a month | $48.75 a month (Essentials) | $137.50 a month |
| 100 | about $121 a month | $199 a month (Pro) | $500 a month |
| 500 | about $121 a month | $999 a month (Pro) | $2,250 a month |
Nylas Essentials costs $15 a month for 10 connected accounts plus $2.25 for each extra one, and Pro starts at $49 a month with 25 accounts and charges $2.00 for each account beyond them, on monthly billing; and Unipile bills every account at its band rate from $55 a month for up to 10. On those numbers, EmailEngine's license costs less than Unipile from about 22 mailboxes and less than Nylas from about 61; on Nylas Pro annual billing, at $43 a month plus $1.75 per extra account, the break-even moves to about 70. Hosting is extra: a server with the 4 to 8 GB of memory EmailEngine recommends for production, a Redis database, monitoring and the time of whoever keeps it running. Our guides to Nylas pricing and Unipile pricing break down both per-account models, and our LinkedIn API pricing grid lists EmailEngine next to the LinkedIn and email APIs developers compare it with.
What does self-hosting EmailEngine involve?
Getting started is quick. The shipped Docker Compose file brings up EmailEngine with a correctly configured Redis, and single binaries, an npm package and an installer script exist too. The documentation lists Redis 6.2 or newer, or a Redis-compatible service, 2 GB of memory to evaluate and 4 to 8 GB for production, on Linux, macOS or Windows.
The ongoing work is what a managed API would otherwise carry:
- Uptime. EmailEngine holds an open connection to every mailbox, so it is a long-running service to monitor, restart and upgrade, not a script.
- Redis. Account state and queues live in Redis, which needs memory, persistence and backups sized to your mailbox count.
- OAuth apps. To connect Gmail and Microsoft 365 accounts over OAuth2, you register and maintain your own Google and Microsoft applications, and a public Gmail app that reads mail must pass Google's verification, which for restricted scopes such as gmail.modify includes a CASA security assessment.
- Scaling. One instance handles several thousand mailboxes and must run as a single replica; past that, you shard across instances, each with its own Redis, and your app routes every account to its shard.
In exchange, no third-party API vendor sits between your app and your users' mailboxes: mail is processed on servers you control, Postal Systems has no access to it, and the price does not move when your customer count does.
What are EmailEngine's limitations?
- Self-hosted only. Teams without operations capacity pay for the license and for the time to run it.
- No outreach deliverability layer. EmailEngine sends through each account's own server or an SMTP gateway you configure, and it tests authentication and inbox placement, but it does not warm mailboxes, buy domains, rotate senders or pace a campaign across mailboxes; those are yours to build.
- Email only. It covers mailboxes and the calendar invites inside messages, not LinkedIn or messaging channels.
- Proprietary license. Readable source is not the same as open source; your production use depends on an active subscription or a perpetual license.
- One-person vendor. EmailEngine is written and supported by Andris Reinman alone, which its own site states openly; readable source and the perpetual license option are its answer to that risk. There are no refunds, so the 14-day trial is the evaluation.
Is EmailEngine a good fit for cold email?
Only as a building block. EmailEngine can send personalised messages from many mailboxes, schedule them and parse bounces, which covers the sending primitive of a cold email tool. What it does not provide is the outreach layer on top: sequences with branches and delays, a pool of mailboxes that shares the volume of one campaign, daily caps per mailbox, reply detection that stops a sequence, warmup and new domains when one burns out. Teams that build outreach products on EmailEngine write that layer themselves, which is the same buy-versus-build question our outreach API comparison walks through. Our Unipile alternatives guide also covers EmailEngine as the self-hosted email leg of a multichannel stack.
How does EmailEngine compare with the Swarmhit Smart API?
They sit at different layers. EmailEngine is a mailbox gateway: it gives your product full access to the mailboxes your users connect, to read, search, sync and send. The Swarmhit Smart API is an outreach engine: it runs campaigns that mix email and LinkedIn steps, with the sequencing, sending windows, per-mailbox daily caps, bounce and complaint suppression and reply detection already built.
| EmailEngine | Swarmhit Smart API | |
|---|---|---|
| What it is | Self-hosted email API over IMAP, SMTP, Gmail API and Microsoft Graph | Hosted outreach API for LinkedIn and cold email |
| Hosting | You run it, with Redis | Hosted |
| Mailboxes | Your users' existing accounts | Your own Google, Microsoft or IMAP mailboxes, or mailboxes bought through Swarmhit that arrive connected and warming |
| Campaign logic | Yours to build | Built in: sequences, mailbox pools, caps, reply detection, LinkedIn steps |
| Pricing | $1,450 or €1,200 a year, unlimited mailboxes | Cold email in beta from $59 a month for 50,000 sends, unlimited mailboxes; LinkedIn from $16.90 per sender a month |
Cold email on Swarmhit is in beta and opened workspace by workspace, and its pricing may still change. If your product needs the inside of a mailbox, a full inbox history, folders, a support queue or an agent reading threads, EmailEngine is the better tool. If what you need is outreach that runs from email and LinkedIn in the same sequence, see the cold email API.
Run outreach, not a mailbox gateway
Swarmhit's Smart API runs email and LinkedIn steps in one campaign, with mailbox pools, per-mailbox caps, bounce suppression and reply webhooks already built.
Cold email in beta from $59 a month for 50,000 sends; LinkedIn from $16.90 per sender a month, tiered down to $6.90.
FAQ
How much does EmailEngine cost?
EmailEngine costs $1,450 or €1,200 a year, VAT excluded, as one subscription per company. That covers unlimited connected mailboxes, unlimited instances, unlimited API calls and webhooks, all updates and support from the developer. An Enterprise option replaces the subscription with a perpetual license paid once, verified offline, with invoice payment and custom terms. Hosting is not included, because EmailEngine runs on your own servers.
Is EmailEngine open source?
No. The code is public on GitHub, but EmailEngine runs under the EmailEngine License Agreement from Postal Systems OÜ, a commercial license. You can use it free for a 14-day trial; after that, its core functionality stops until a valid license key is added. That makes it source-available software with a paid license, not an open-source project you can run in production for free.
Does EmailEngine have a free trial?
Yes. Every EmailEngine install can start a 14-day free trial from its own admin dashboard, with full functionality, no sign-up and no credit card. You install it with Docker Compose or a single binary, open the dashboard, start the trial and generate an access token. When the trial ends, EmailEngine stops syncing, sending and delivering webhooks until you add a license key bought from Postal Systems; accounts and data stay in Redis meanwhile.
How does EmailEngine differ from Nylas?
EmailEngine is self-hosted software with a flat annual fee and unlimited mailboxes; Nylas is a managed cloud API priced by connected account, with calendar, scheduling and meeting-notes products on top. EmailEngine keeps mailbox data on your servers and costs the same at any scale, while Nylas removes the hosting work. Below about 60 connected accounts, about 70 on Nylas annual billing, Nylas is cheaper; above that, EmailEngine's license is, before hosting. Our Nylas alternatives guide compares the managed options.
What does it take to self-host EmailEngine?
A server and a Redis database. EmailEngine ships a Docker Compose file with Redis included, plus single binaries and an npm package, and its documentation recommends 2 GB of memory to evaluate and 4 to 8 GB for production. Beyond installation, you own uptime, Redis persistence and backups, upgrades, your Google and Microsoft OAuth applications, and capacity as the number of connected mailboxes grows.
Can EmailEngine send cold email?
It can send email from many mailboxes, with templates, scheduling, idempotency and bounce parsing, so it covers the sending primitive. It is not a cold email tool: it has no sequences across mailboxes, no daily caps per mailbox, no warmup and no reply-stopped campaigns. Teams building outreach on EmailEngine write that layer themselves, or use an outreach API where campaigns, caps and reply detection already exist.




