EmailEngine Email API

A self-hosted service that allows you to access any email account using an easy-to-use REST API.

With EmailEngine, you can focus on building features that matter instead of spending time rolling your own IMAP and SMTP connectivity logic.

Want to hear about product updates and news?


Get EmailEngine for your operating system


This example assumes that Redis is installed locally and does not require any authentication; see the configuration docs for other options.
You can find Platform-specific instructions for installing Redis and EmailEngine here.

  1. Download and install EmailEngine
  2. Run EmailEngine from the command line
$ emailengine
  1. Open in your browser
  2. Next, generate an access token and use it on the API Reference page to try out some API calls

EmailEngine does not require any special privileges besides potential firewall exceptions for ports it is listening on.

Alternative to rolling your own

EmailEngine is an excellent choice if you consider building IMAP and SMTP integration for your service in-house and you are not interested in the subtle details of a boatload of RFC specs. EmailEngine is like an email class library but on steroids.

Full control
Own the stack
Complexity hidden away

Easy to use REST API

The REST API with JSON payloads you expect it to be. No need to know IMAP internals, weird encodings, or juggle with different IMAP extensions.

Unicode strings
Binary attachments
Paged listings

Webhooks support

EmailEngine sends you a webhook any time something happens on the user's email account.

Incoming emails
Deleted emails
Message flag changes

Almost perfect deliverability

EmailEngine sends emails through the user's email servers, so for the recipient, it seems that the email came from the user directly and not via some third-party sending service.

Uploads to Sent Mail
Adds reference headers
Flags answered emails
Bounced email detection

Fluent OAuth2

EmailEngine can speak OAuth2 fluently with Gmail and Outlook servers. You can also choose to manage token renewals yourself, or you can let EmailEngine handle everything.


Hosted authentication

Redirect your users to EmailEngine's hosted authentication form, and once the email account is authorized, the user is sent back to your app.


Look under the hood

Multiple logging options, including full IMAP transactions for debugging.

Full transaction logs
Per-user logs


How does it work?

EmailEngine keeps an open IMAP connection against every registered email account and listens to changes on these accounts. Also, whenever you request some action over the API, EmailEngine "translates" that request into an IMAP command.

What are the requirements?

EmailEngine uses Redis as the caching database. That's about it. If you have any decently recent version of Redis installed, then you are good to go.

What about data compliance?

EmailEngine is self-hosted and not an external service, so it does not send or store data outside your network. It only keeps minimal metadata required for syncing and caches but not the actual contents of the emails.

Which kind of protocols are supported?

EmailEngine uses IMAP to access mailboxes and SMTP to send out emails. Alternative protocols like POP3 or ActiveSync are currently not supported.