EmailEngine is an email client but for apps, not people.
Effortless email integration for your app or service. Simplify IMAP and SMTP complexities, and focus on what truly matters. Build better features, faster.
Self-hosted solution for developers and businesses.
EmailEngine is a self-hosted email automation platform that offers easy access to email accounts through a user-friendly HTTP REST API for receiving and sending emails. The platform actively monitors these accounts and sends webhook notifications for any updates.
Here's how to get started:
$ emailengine --dbs.redis="redis://127.0.0.1:6379"
Skip the hassle of navigating complex email protocols. EmailEngine saves you valuable developer hours by simplifying IMAP and SMTP integrations.
Focus on your app's core features while we handle the intricate details of numerous RFC specs. EmailEngine: the powerful alternative to building your own email class library.
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.
EmailEngine utilizes the user's own email servers to send email, giving the appearance to the recipient that the email was sent directly from the user, rather than through a third-party service, resulting in near-perfect deliverability.
Streamline the authentication process for your users with EmailEngine's hosted authentication form. Once the email account is authorized, the user will be redirected back to your app.
While you can still register accounts through API calls, hosted authentication provides a more user-friendly and easier setup option during development.
Gain insight into EmailEngine's workings with the multiple logging options available, including the ability to log full IMAP transactions for debugging purposes.
Easily create custom webhook routes using EmailEngine's low-code integration capabilities. Define filter functions and output mappers to transform events into chat messages in Slack or Discord, or send the data to Zapier for additional processing.
Maximize API performance and gain access to advanced data mining options with EmailEngine's local indexing feature, which mirrors all email accounts to ElasticSearch. The mirrored data can also serve as the backend for your own applications, bypassing EmailEngine entirely.
EmailEngine is ideal for anyone looking to integrate their system with existing email accounts. For instance, a help desk service that operates through the firstname.lastname@example.org account and converts incoming emails into support tickets.
EmailEngine maintains an open IMAP connection to each registered email account and continuously listens for any changes. When you make a request through the API, EmailEngine converts it into the corresponding IMAP command to execute the desired action.
You can start a free 14-day trial directly from the dashboard without the need for a license key. Once the trial license expires, EmailEngine will stop processing IMAP accounts until a valid commercial license is obtained.
Typically, no. You would pay for a yearly subscription to Postal Systems, not for multiple license keys for EmailEngine software. If your subscription is active, you can generate as many license keys as needed at no extra cost.
EmailEngine requires Redis as its caching database. As long as you have a reasonably recent version of Redis installed, you should be good to go. For optimal performance, it's recommended to keep the latency between Redis and EmailEngine as low as possible.
EmailEngine utilizes IMAP to access email accounts and SMTP to send emails. Other protocols such as POP3, ActiveSync, or the Exchange Web Services (EWS) SOAP API are not currently supported, but they may be added in the future.
As a self-hosted solution, EmailEngine does not send or store any data outside of your network. It only retains minimal metadata necessary for syncing and caching, but not the actual contents of the emails. This ensures that all data remains securely within your network.
Currently, this is not supported. Horizontal scaling is on the development roadmap, but there is no estimated time of arrival for this feature at this time.
IMAP is a single-threaded protocol, meaning that only one command can be executed at a time per account, and you must wait for it to finish before issuing another command. If multiple API requests are made against a single account simultaneously, EmailEngine will queue these requests and process them one at a time. If a queued command cannot be processed within 10 seconds, EmailEngine will abort it with a 504 response.
To resolve this, you have two options: either avoid sending multiple requests at the same time, or increase the 10-second limit. The "Max command duration" option can be found in the configuration options, as documented here.
For a detailed comparison, you can refer to the comparison article here. In brief, while both may seem alike, they are in fact, significantly different.
If you have a question that hasn't been answered, you can reach out for help in the EmailEngine's Discord channel.