After a massive development effort a new stable release of Haraka is out.
v2.5.0 contains a huge number of changes, of which these are the highlights:
- A new feature called ResultStore (or Results) which allows plugins to communicate information they found to each other. This is primarily used by the karma plugin to use the results of other plugins to penalise senders
- A -o/–order option to
bin/harakato show the order all currently configured plugins will run.
- IPv6 support on outbound via `echo 1 > config/outbound.ipv6_enabled`
- Attachment streams now have access to the MIME header for that attachment via stream.header
- A new “deferred” hook for outbound mail, called when mail is temporarily denied
- Outbound “bounce” hooks now receive an Error object, containing the MX and recipient information. Existing uses of the error being treated as a string should still function as normal
- Outbound gets more parameters on the “delivered” hook to allow detailed analysis of sent mail
- Outbound UUID now distinguishes between different domains using .1, .2 etc just as inbound gives a new index for each transaction
- Outbound won’t try and send to domains publishing NULL MX (draft-delany-nullmx-02)
- Outbound template can use `extended_reason` to show a more detailed error
- Log lines are coloured if sent to the terminal
- Log lines can have timestamps prepended via `echo 1 > config/log_timestamps`
- Net_utils gets a large number of new support functions
- Listening on port 465 automatically enables SSL support on that socket
- New plugins: connect.asn, access, connect.fcrdns, and relay
- A new utility: `haraka_grep` – a grep-like tool for Haraka log lines which displays all log lines for a given connection when it finds matching lines in the logs
- Haraka is now continuously tested by Travis-CI
- Dependencies are now more strictly managed with “~Version” in package.json
This release also features many updates to existing plugins, and many bug fixes particularly in the Outbound sending engine.
Installation or upgrading is as simple as “npm install -g Haraka”, and restarting your server, with the caveat that we urge anyone upgrading to test upgrades thoroughly before putting them into production.
As usual the development of Haraka could not be done without the help of many in the community. Please see the git logs for a full list of all changes and contributors.