For most MTAs, disk performance is the bottleneck. But not for MailerQ. MailerQ is an MTA and handles incoming and outgoing SMTP traffic and processes MIME data. But it does not write to disk. It relies on RabbitMQ and NoSQL storage for messages queues and deferred messages. These tools are fast, reliable and scalable and were designed to handle big data flows, and do that much better than an MTA could ever do.
All data that passes through MailerQ is JSON encoded. The messages that you inject and the incoming messages are all consumed from and published to RabbitMQ as JSON objects. The delivery results are also JSON encoded and hold properties like the SMTP status code, the certificate details of the receiving server and much more.
RabbitMQ is a tool for message queueing. You can create your own mail flow that passes through filters and scripts, or that can be forked and sent to mailboxes, monitors or logs.
MailerQ connects to a MongoDB or Couchbase server to store deferred messages. If you do not want to use one of these tools, you can configure MailerQ to use disk based storage instead.
Other MTAs get their settings from long and complex configuration files that are hard to maintain and difficult to update. However, you want your MTA to be easy to tune, both manually and programmatically. This is possible with MailerQ.
Most of MailerQ's runtime configuration settings come from a relational database. This allows you to update on the fly: connect to the database and run queries to insert or update data. MailerQ picks up the new settings automatically. No restart or reload is needed. This is perfect if you want to integrate MailerQ into other dashboards, APIs or scripts.
MailerQ supports a couple of database engines: MySQL, PostgreSQL and Sqlite. You can use the one that fits you best. The databases are only used for configuration settings, not for real time queries. MailerQ periodically copies all settings to main memory to speed up the lookups. The database therefore never is the application's bottleneck, and slow queries never slow down delivery.
MailerQ comes packed with features right out of the box to improve your email deliverability.
MailerQ comes with a web-based management console, where you adjust deliverability settings on the go. You can use this dashboard if you do not want to connect to the database. The management console also allows you to monitor the real time performance of your deliveries and IPs, reroute emails to other IP addresses or set up flood patterns to react to server responses.