Release history
Haraka releases
Fast, highly extensible, and event driven SMTP server.
All releases
8 shown
v3.1.5
Bug fix
Fixed SMTP forward queue hook to call next() after delivery.
Full changelog
- fix(smtp_forward): update AUTH to match WHATWG URL API #3546
- fix(smtp_forward): queue hook now calls next() after delivery
— see haraka/message-stream#17 - deps(all): bump versions to latest
- test: refactor server, use smtp_client for all tests #3548
- test runner is now node --test #3547
- test(smtp_client, tls_socket, smtp_forward): 95% coverage #3546
- ci: added explicit minimal permissions
v3.1.4
Breaking risk
Fixed crash on duplicate QUIT commands in outbound connections.
Full changelog
Fixed
- fix: add ensure_body for late parse_body=true #3539
- fix(outbound): prevent ERR_UNHANDLED_ERROR crash #3538
- fix(txn): more robust handling of body filter additions #3537
- fix(conn): avoid connection fault when 2x QUIT sent #3536
- fix(txn): more robust handling of broken messages #3535
- fix(connection): pause after odd SMTP command sequence #3525
Changed
- chore(plugins): deleted deprecated core_require
- dep(rabbitmq): repackaged as NPM module #3526
- deps(all): bump versions
- doc(Plugins): add sections filter, enrichment, and logging #3534
- added dropbox-plugin #3543
- es2024: #3527, #3528
- outbound replace fs callback with promises and async/await #3528
- dep(async): remove dep by replacing async.map with Queue
- use startsWith instead of indexOf === 0
- use spread syntax instead of [].concat and {}.assign
- use implicit arrow function returns
- replace deprecated substr with slice or substring
- test(outbound/queue): added tests #3531
- test: fixes for test-fixtures 1.4 & local plugins that do require('./')
- TL;DR: bundled plugins don't need a special require any more
- fixtures/plugin behaves more like real one, test accordingly
- refactored connection, transaction, and outbound to
node --test#3541- transaction.js (48 → 62 tests)
- connection.js (24 → 51 tests)
- moved ./test/outbound_* to ./test/outbound/, and fixed race conditions
- move TLS tests to haraka-tls #3542
- improve coverage for transaction, rfc1869, xclient, and record_envelope_addresses #3524
v3.1.3
Breaking risk
Breaking changes
- Removed the 'graph' dependency which used the unmaintained sqlite3 library
Full changelog
- fix(config): spool_dir and spool_after belong in connection.ini #3518
- fix(outbound): aggregate error path #3519
- fix(haraka): getHooks regex to grab only hook names
- deps(graph): removed, sqlite3 library is unmaintained
- deps: bump all to latest
- doc: fix no plugin names displayed with haraka --order #3517
v3.1.2
Breaking risk
⚠ Upgrade required
- All dependencies bumped to latest versions; review changelogs for transitive changes.
- Removed temporary dependency `tmp` (only used in attachment plugin).
Breaking changes
- Minimum Node.js version raised to 20+
- Renamed configuration key `dot_stuffing` to `dot_stuffed`
Notable features
- Configurable outbound IPv4/IPv6 preference using `inet_prefer`
- RabbitMQ AMQPlib now supports optional exchange arguments and message priority configuration
Full changelog
- smtp_forward: [domain selector] : user + domain #3501
- rspamd: revert to older plugin version #3493
- feat: push to a 'release' branch with package-lock.json #3474
- change: finish renaming dot_stuffing to dot_stuffed #3473
- deps: require node 20+
- deps: bump all deps to latest
- deps: bump message-stream to 1.3.0, add some missing ^ chars
- dep(tmp): deleted, only used in attachment plugin
- feat(outbound): configurable outbound IPv4/IPv6 preference using
inet_prefer - feat(outbound): deferred hook is now passed the failed recips and mx #3505
- feat(rabbitmq_amqplib): configurable optional exchange arguments #3472
- feat(rabbitmq_amqplib): configurable message priority #3472
- fix: auth_proxy TLS upgrade works again #3514
- doc(Plugins): add save-sent #3497
- doc(README): update DKIM plugin link, #3490
- style: run prettier in repo #3504