MailerQ version 3.0 has been released!
We are proud to announce version 3.0 of MailerQ. This brand new release of our powerful MTA brings many new features, changes and improvements. The biggest change is the move away from external libraries for MIME processing and altering. MailerQ now does own MIME processing based on the official email RFC's, which allows us to introduce all kinds of new features for email filtering and processing.
Besides the changes "under the hood", this release also comes with a bunch of new features such as multi-DKIM signing, automatic inlinization of CSS code in HTML emails, and much better processing of incoming messages.
Improved email processing
For MailerQ 3.0 we have completely refactored the MIME processing routines. In our previous versions we relied on other libraries and tools for processing MIME messages, extracting MIME parts and parsing email addresses. All this code has now been replaced by our own advanced MIME processing engine. This means that emails only have to be processed once (and not by every library individually), is also done in a much more efficient way, and has more respect for the official RFC-standards.
This change makes MailerQ 3.0 fully MIME aware, and it also allows us to soon introduce all sorts of filtering and processing tools to modify and inspect mails while they are being delivered. One of the new features that we are introducing in MailerQ 3.0 is the automatic CSS inlinization that can be performed while mails flows through MailerQ. MailerQ can extract the stylesheets from the headers of your HTML mails and turn them into inline style attributes.
Automatically inlining CSS
Some email clients strip out stylesheets that are set in the header of an HTML email. This messes up the lay-out and look of your messages. To fix this you can turn stylesheets into inline "style=" attributes.
Version 3.0 introduces the "inlinecss" property. By adding '"inlinecss": 1' to your JSON encoded email or "x-mq-inlinecss: 1" as a MIME header to your email, you instruct MailerQ to parse the HTML email and automatically convert the CSS code from the header to inline 'style=" ... " ' attributes in the HTML body.
Multiple DKIM signatures
Version 3.0 introduces adding multiple DKIM keys to a single domain, making it possible to sign email messages with more than one DKIM key. It also allows signing messages with keys from domains other than the 'from' domain in.
In MailerQ's management console, you can link each DKIM with multiple domains and multiple sign rules. Every email that matches one or more of the sign rules of a DKIM key is automatically signed with the keys linked to those rules.
Another new feature is the possiblity to add DKIM keys to the JSON of your input-message. MailerQ will sign the email with the specified DKIM in the JSON as well as any other DKIM keys stored by MailerQ that match to the domain in the "from address".
More options for incoming connections
Originally, MailerQ could only listen to a single port for incoming connections. In version 3.0 we've added support to open multiple incoming SMTP ports, so you can setup MailerQ to accept incoming mail on other ports than port 25.
For each port you can specify whether it should start in a non-secure mode, so the client has to explicitly use "STARTTLS" to turn it into a secure connection, or if the socket has to be secure right from the start (which saves the whole "STARTTLS" handshake).
If you do use secure connections, please make sure that you've installed the right keys and certificates, so your connection is not only secure, but also trusted.
New queues for incoming email
Incoming emails that are recognized by MailerQ as delivery status notifications (DSN) can automatically be sent to a special queue for incoming bounces and other delivery status notifications. It is also possible to set a list of 'local' email addresses, messages sent to these addresses will be sent to a special queue and not to the inbox queue. These are new features compared to the previous versions of MailerQ, which published all incoming messages to the inbox-queue.
You can also use the "local address" feature to set up a blacklist of email addresses to which you never want to send email. When MailerQ detects that an incoming email is on the list of local addresses, the email is not stored in the inbox, but in that special local queue instead, and will not be delivered.
Incoming messages that use the wrong credentials are refused, and starting version 3.0 you can keep a copy of the message in a special "refused" message queue. This allows you to monitor how is trying to access your mail server without permission.
Running behind a proxy
You can run MailerQ behind a HAProxy proxy server that has the PROXY protocol enabled. To do so you must enable this setting in the configuration file. This way MailerQ knows the first message received over the TCP connection is not the SMTP handshake, but the initial header from the proxy server.
Updated license file
You need a new license file for MailerQ 3.0. If you already have a valid license, you can obtain a new and free license file that works with MailerQ 3.0 from our website. Go to your license page and choose version 3.0 when downloading the license.
Other changes and improvements
- DNS settings (like number of attempts, or force TCP) are configurable
- Changed the name for the helo-file in the configuration file into dns-helofile
- Log files can automatically be GZIP compressed
- DKIM keys from the database are now checked with DNS to see if they're valid - invalid keys will be ignored for signing
- Incoming mails are now fully stored in RabbitMQ, and not first in NoSQL
- When running in CLI mode, no connection to NoSQL is made, all messages are initially fully stored in RabbitMQ
- MTA local "EHLO" name is now refreshed every 10 minutes
- Added "force" property to enforce that mail is sent, even when if could not be encoded for remote connection
- Fixed possible race condition between threads when SMTP connections are transferred between threads
- Any responsive errors now mark emails as fatal, with additional info in the failure queue