MailerQ version 2.0 released
Today we released MailerQ version 2.0, a version that has some very big changes and an awesome new feature: Copernica's Responsive Email algorithm has been embedded into MailerQ. We have also added SMTP-authentication by username and password, made improvements to the log files and renamed the "body" and "keepbody" property (for backwards compatibility "body" and "keepbody" are still accepted)
Responsive Email Algorithm
Copernica, the Company behind MailerQ, creates email and marketing solutions. One of those solutions is www.ResponsiveEmail.com. This is an online service that transforms JSON objects into responsive MIME/HTML. Version 2.0 of MailerQ has the algorithm that carries out that transformation embedded into its core process.
How does it work?
MailerQ reads JSON encoded messages from a RabbitMQ message queue. Every JSON message needs to have at least an envelope, recipient and mime property. Normally the mime property consists of a full valid MIME string, however MailerQ 2.0 also accepts a nested JSON object that containts the email content (If your license includes this feature). MailerQ will then use the "Responsive Email" algorithm to generate a fully responsive email on the fly.
You can read more on this feature on the MailerQ website and see some example codes. The accepted JSON properties are fully documented on the ResponsiveEmail.com website.
SMTP-Authentication
MailerQ can open an SMTP-port to accept incoming emails, all emails received on the SMTP-port will automatically be published in the RabbitMQ inbox queue. By setting the inbox queue to the same value as the outbox queue MailerQ will automatically forward and deliver all emails it receives.
In the previous versions of MailerQ you had to configure your firewall to only allow acces from trusted hosts. It was also possible to set an SMTP-range, to limit access to specific trusted IP-addresses.
SMTP username & password
Version 2.0 of MailerQ brings a new authentication method: you can now set an STMP-username and password in your configuration file. This way only those who have access to this username and password will be able to send email using your MailerQ instance.
Transport Layer Security
Starting 2.0 it is also possible to protect your messages from evesdropping by enabling Transport Layer Security (TLS). This is done in the configuration file by setting the SMTP-certificate and SMTP-key to the full path containing your certificate and private key.
Important Logging Changes
MailerQ logs all abnormal events in the error log file. These events range from offline databases to failed RabbitMQ connections.
Besides the delivery attempts, MailerQ now also logs downloads from the internet (for the Responsive Email algorithm MailerQ sometimes has to download images, RSS feeds and/or attachments) and saves these to a separate log file. Because of this new feature the original log variables in the configuration file (the log variables that specify the name and location for the log files to which send attempts are written) have been renamed to "send-log-*", while the new download logs options all use the "download-log-*" prefix. Before you start MailerQ 2.0, it is important that you update your config file, and rename the old "log-*" options to "send-log-*" options.
Once again: these changes to the log files mean that all options that were previously stored in the configuration with the "log-*" prefix must be renamed to "send-log-*". All download-log options should be saved in the "download-log-*" format. Make sure to apply these changes in your configuration.
"body" & "keepbody" properties renamed
The MIME string of an email used to be placed in the "body" property of the JSON encoded message entered in RabbitMQ. However, to clear up that the "body" property needs to contain the full MIME string and not just the body of the email, we have changed the name of the "body" property to "mime".
The same goes form the "keepbody" property that can be used to keep the mime (body) of the email in the JSON object after a failed delivery instead of storing it in a database with a reference key. This property is now called "keepmime".
These changes are backwards compatible, meaning that if you still want to use "body" and "keepbody" instead of "mime" and "keepmime" you can.