Version 4.2.9: Storage compression & DMARC failure reporting
We have just released MailerQ 4.2.9 which contains, besides bug fixes, two new features: messages stored in the NoSQL databases can now be compressed and we support the "r=y" property in DKIM headers.
NoSQL storage compression
To limit the space used by mime bodies we have added gzip compression to our storage backend. This feature can be enabled by adding the option "?compression=gzip" to the storage URL. If you enter a storage URL like "mongodb://localhost/database/collection?compression=gzip" in the MailerQ config file, messages are first compressed before they are sent to MongoDB.
Both compressed and uncompressed messages can be stored in the same database. This allows you to enable or disable compression without converting data that is already stored. If MailerQ loads a message from the storage that happens to be compressed, it decompresses it before it is sent to the recipient. When MailerQ inserts new messages, it compresses the message if the "compression=gzip" parameter was found in the storage address.
The compression algorithm is currently working for most storage back-ends, although support for compression in couchbase and SQLite is still experimental.
DKIM failure reporting
We have also added support for the "r=y" property in DKIM headers. With this DKIM header you can ask receivers to send back reports when a DKIM signature was invalid.
There are many reasons why DKIM signatures can fail, be it from tampering by intermediates or a mismatch between the signature and the DNS records. It can therefore be quite helpful to receive failure reports whenever signature validation fails. In this release we implemented the RFC 6651 standard, which allows you to request failure reports from remote servers by adding an extra "report" property to the JSON specification. This feature also finds its way into the DKIM keys defined in the management console as a checkable option.
Bug fixes & improvements
- We fixed a bug where smarthosts that have their own MX records could not be reached.
- We changed the smarthost specification so they are more similar for the MIME headers and JSON properties.
- We fixed a bug that caused MailerQ to randomly crash if no smtp-certificate or smtp-privatekey were provided.
- We fixed a bug that allowed a message to use all available MTA IP addresses when it had an empty array for the "ips" property.
- We expanded the use of the "smtp-defaultips" config option. If a message is injected without specifying an IP range it is now only tried on this list of default IPs.
- We improved the "dir://" storage strategy. In the new release we save the data in a series of subdirectories to make lookups more efficient.
Because some of the issues we fixed could cause crashes we do recommend you upgrade to the new version.