Releases: haraka/Haraka
Releases · haraka/Haraka
3.0.5
- fix(q/lmtp): revert a refactoring error
- fix: install Plugins.md when haraka -i
- fix(haraka -h): add missing return for plugin list
- fix
no_tls_hosts
related docs & tests - fix: install docs/Plugins.md when haraka -i installed
- fix(changes): spelling correction
- lint: remove deprecated semi-style rule
- dep(haraka-email-message): bump 1.2.3 -> 1.2.4
- removed dependency on ldap plugins
- doc(tls.md): add note for no_tls_hosts for outbound
- test(tls): add tests for no_tls_hosts for inbound & outbound
3.0.4
Added
- doc: add CONTRIBUTORS #3312
- tls_socket:
config/tls
dir loading is now recursive
Changed
- prefix node libs with 'node:' #3359
- .gitignore: add config/me and config/*.pem
- auth_base: enable disabling constrain_sender at runtime #3298
- auth_base: skip constrain_sender when auth user has no domain #3319
- avg: repackaged as NPM module #3347
- bounce: repackaged plugin as NPM module #3341
- clamd: repackaged plugin as NPM module
- config/plugins: consistent formatting #3359
- connection: check remote is connected before queue #3338
- contrib/plugin2npm.sh: fix path to package.json #3359
- deps: bump all versions to latest #3303, #3344, #3391
- dkim: repackaged as NPM module #3311
- esets: repackaged as NPM module #3353
- greylist: repackaged as NPM module
- helo.checks: require a successful HELO/EHLO #3352
- new NPM plugin dns-list, repackages dnsbl, dnswl, backscatterer #3313
- when using message-stream, don't send default options #3290
- rcpt_to.host_list: add connection ID to log messages #3322
- line_socket: remove unused callback #3344
- logger: don't load outbound (race condition). Instead, set name property #3322
- logger: extend add_log_methods to Classes (connection, plugins, hmail) #3322
- logger: when logging via
logger
methods, use short names #3322 - logger: check Object.hasOwn to avoid circular deps
- mail_from.resolvable: refactored, leaning on improved net_utils #3322
- messagesniffer: repackaged as NPM module
- outbound
- check for local_mx only when default route is used #3307
- client_pool: use tls_socket directly (shed line_socket)
- client_pool: sock.name is now JSON of socket args
- client_pool.get_client & release_client: arity of 5 -> 2
- mx_lookup: make it async/await
- mx_lookup: deleted. Logic moved into net_utils #3322
- use net_utils.HarkaMx for get_mx parsing #3344
- emit log message when ignoring local MX #3285
- pass in config when initiating txn #3315
- minor es6 updates #3315, #3322
- logging improvements #3322
- was: [-] [core] [outbound] Failed to get socket: Outbound connection error: Error: connect ECONNREFUSED 172.16.16.14:25
- now: [A63B62DF-F3B8-4096-8996-8CE83494A188.1.1] [outbound] Failed to get socket: connect ECONNREFUSED 172.16.16.14:25
- shorter logger syntax: logger.loginfo -> logger.info
- remove log prefixes of
[outbound]
, no longer needed - delete try_deliver_host. Use net_utils to resolve MX hosts to IPs #3322
- remove config setting ipv6_enabled #3322
- remove undocumented use of send_email with arity of 2. #3322
- encapsulate force_tls logic into get_force_tls #3322
- es6(async/promise): pre_send_trans_email_respond, process_delivery
- queue/lmtp: refactored for DRY and improved readability #3322
- smtp_client: pass connect_timeout, maybe fixes #3281
- spamassassin: repackaged as NPM module #3348
- style(es6): more for...of loops
- deps: moved attachment, spf, & dkim into optional deps
- doc(Plugins.md): update registry
- doc(Outbound.md): improve GHFM formatting
- remove last vestiges of header_hide_version (long ago renamed)
- server.js: use the local logger methods
- es6(async): _graceful, get_smtp_server, setup_smtp_listeners
- replace async.eachLimit with Promise.all batches
- status: replace async.map with Promise.allSettled
- get Haraka version from utils.getVersion (which includes git id if running from repo)
- tls_socket: remove secureConnection. Fixes #2743
- getSocketOpts is now async
- parse_x509 is now async
- shed dependency on caolin/async & openssl-wrapper
- get_certs_dir is now async
- completely refactored.
- transaction: init with conn.init_transaction, always pass in cfg #3315
- test: add a connection.response test case with DSN #3305
- test: convert test runner to mocha
- test: rename tests -> test (where test runner expect) #3340
Fixed
- fix(logger): refactor add_log_methods, don't set extra
loglog*
names - doc(connection): update rfc7001 URL
- fix(bin/haraka): list NPM installed plugin #3310
- fix(bin/haraka): get hook list from doc/Plugins #3306
- fix(outbound): call cb even if no MX is found #3294
- fix(helo.checks): declare reject.literal_mismatch as boolean #3293
- fix(outbound): allow LHLO over insecure socket if TLS is forced #3278
- fix(outbound): include return path param SMTPUTF8 when required #3289
- fix(outbound): replace empty Message-ID header #3288
- fix(outbound): don't send SNI servername when connecting to an IP
- fix(outbound): chown queue dir after creation #3291
- fix(server): async endpoint.bind() and await in server.js #3366
- fix(outbound): get_mx DNS error handling #3376
3.0.3
3.0.3 - 2024-02-07
Added
- feat(auth_vpopmaild): when outbound, assure the envelope domain matches AUTH domain #3265
- docs(outbound): remove example setting outbound_ip #3253
- doc(Plugins.md): add pi-queue-kafka #3247
- feat(rabbitmq_amqplib): configurable optional queue arguments #3239
- feat(clamd): add x-haraka-virus header #3207
Fixed
- Fix: add empty string as param to .join() on bounce. #3237
- Update links in documentation #3234
- fix(ob/hmail):Add filename to the error for easy debugging
- fix(ob/queue): Ignore 'error.' prefixed files in the queue because corrupted
Changed
- docs(outbound): remove example of outbound_ip #3253
- transaction: simplify else condition in add_data #3252
- q/smtp_forward: always register get_mx hook #3204
- dep(pi-es): bump version to 8.0.2 #3206
- dep(redis): bump version to 4.6.7 #3193
- dep(pi-spf): bump version to 1.2.4
- dep(net-utils): bump version to 1.5.3
- dep(pi-redis): bump version to 2.0.6
- dep(tld): bump version to 1.2.0
- remove defunct config files: lookup_rdns.strict.ini, lookup_rdns.strict.timeout, lookup_rdns.strict.whitelist, lookup_rdns.strict.whitelist_regex, rcpt_to.blocklist, rdns.allow_regexps, rdns.deny_regexps
3.0.2
Fixed
- feat(q_forward): add LMTP routing handling #3199
- chore(q_forward): tighten up queue.wants handling #3199
- doc(q_forward): improve markdown formatting #3199
- helo.checks: several fixes, #3191
- q/smtp_forward: correct path to next_hop #3186
- don't leak addr parsing errors into SMTP conversation #3185
- connection: handle dns.reverse invalid throws on node v20 #3184
- rename redis command setex to setEx #3181
Changed
- test(helo.checks): add regression tests for #3191 #3195
- connection: handle dns.reverse invalid throws on node v20
- build(deps): bump ipaddr.js from 2.0.1 to 2.1.0 #3194
- chore: bump a few dependency versions #3184
- dns_list_base: avoid test failure when public DNS used #3184
- doc(outbound.ini) update link #3159
- doc(clamd.md) fixed spelling error #3155
3.0.1
- 1dae4b9e fix(bin/haraka): set server.cfg and pass to conn
- ed574777 dep(pi-spf): bump version 1.1.3 to 1.2.0
- 899eb9e6 update changes
- 3d9312ff fix: dkim_verify fails to find record #3149
- 02b74f9e lint: move eslint config
- b179dc1e plugins: Add haraka-plugin-outbound-logger to registry (#3146)
- d701c14e Fixed error messages for help options (#3142)
v3.0.0
3.0.0 - 2022-12-17
Added
- feat: prevent local delivery loop when target exchange resolves to a local hostname #3002
- feat: format DKIM signature to multiline #2991
Fixed
- fix(tls): redis promise syntax for tls & ob/tls #3064
- fix(attachment): error handling with complex archive #3035
- fix(smtp_client): run "secured" once, fixes #3020
- fix(smtp_client): add missing
$
char in front of interpolated string - fix(auth_proxy): run "secured" only once, improvement for #3022
- fix(helo): remove multi-check from should_skip #3041
- fix(outbound): outbound local mx check #3010
- fix(outbound): prevent delivery loop when target MX resolves to local hostname #3002
- fix(conn): socket can't be released when disconnect after DATA command #2994
Changed
- dep(generic-pool): remove pooling from outbound #3115
- smtp_client: disable pooling in get_client_plugin, #3113
- smtp_forward: restore ability to enable queue_outbound #3119
- ./mailbody & ./mailheader moved to haraka-email-message #3071
- config/plugins: update name of uribl plugin
- doc(queue.js) spelling & grammar improvement #3051
- doc(rails): add haraka-plugin-queue-rails #2995
- doc(smtp.ini): correct spelling of SMTPUTF8 #2993
- style(es6): use optional chaining when accessing transactions #2732
- style(smtp_client): pass args as objects (was positional)
- style(plugin/*): transaction guarding #3032
- dep(spf): remove to separate plugin #3078
- dep(iconv): removed, declared in haraka-email-message)
- dep(haraka-plugin-redis)!: 1.0 -> 2.0 #3038
- dep(redis)!: 3.1 -> 4.1 #3058
- dep(generic-pool): remove pooling from outbound #3115
- smtp_client: remove smtp_* pooling support in #3113
- dep: bump plugin versions #3063
- dep: bump haraka-plugin-asn from 1.0.9 to 2.0.0 #3062
- dep(redis): 3.1 -> 4.1 #3058
- dep(nopt): 5 -> 6.0.0 #3076
- dep(haraka-plugin-fcrdns): 1.0.3 -> 1.1.0 #3076
- dep(haraka-plugin-redis): 1.0 -> 2.0 #3038
- dep(nodemailer): 6.7.0 to 6.7.2 #3000, #3004
- dep: add explicit dependency on node-gyp 9
- ci: github action tweaks #3047
- chore: transaction guarding #3032
- ci: enable windows node 16 testing #3036
- chore: update phusion image #2988
- chore: add lots of
if (!transaction) return
in places #2732 - chore(test): build shims for windows-2022 & node on windows #3052
- chore(test): restore CI tests to working order #3030
- dkim_sign: reformat dkim signature to multi-line #2991
- dkim_sign: remove spurious error logging #3034
- tls: add force_tls option to the ToDo object
- fix(banner): banner was inserted erroneously into text attachments
- outbound: remove hardcoded AUTH PLAIN authorization identity
- outbound: set acquireTimeoutMillis to prevent constant reconnect to unreachable servers
- style(smtp_client): pass args as objects (was positional)
- uribl: timeout DNS 1 second before plugin, #3077
- uribl: load .ini config to plugin.cfg, add basic tests #3077
2.8.28
Changes
- added ability to define a default relay in relay_dest_domains
- spamassassin: replace msg_too_big & should_check with should_skip #2972
- spamassassin: allow returning DENYSOFT on errors #2967
- dep: use caret version range for all dependencies #2965
- outbound: disable outbound to localhost by default #2952
- connection error logging: use key-value paris #2921
- tls: change default to NOT send TLS client certs #2902
- dep: redis is now a dependency #2896
- use address-rfc2821 2.0.0
- http: use CDN for bootstrap/jquery, drop bower #2891
- drop support for node 10 #2890
New features
- tls: require secure and verified sockets for configured hosts/domains
- tls: add
no_starttls_ports
- an array of incoming ports where STARTTLS is not advertised - outbound: add local_mx_ok config #2952
- skip plugins at runtime by pushing name into transaction.skip_plugins #2966
- outbound: add ability to specify delay times for temporary fails in
temp_fail_intervals
#2969
Fixes
- bounce: correctly set fail recipients #2901
- bounce: correctly set bounce recipients #2899
- Get local_ip from getsockname() instead of server properties #2914
- Received header TLS section adheres more closely to RFC 8314 #2903
- use RFC-2045 Quoted-Printable in email message body
- use RFC-2047 Q encoded-words in email headers
2.8.27
Changes
- bump verions of several dependencies #2888
- propagate hmail notes to split copies #2887
- log.ini: add json to list of formats in config doc #2881
- exclude port 587 from TLS NO-GO feature #2875
- strip haraka-plugin- prefixes off plugin names in config/plugins #2873
- pass smtp.ini config from Server into connections & transactions #2872
New features
- add ability to disable SMTPUTF8 advertisement #2866
Fixes
release 2.8.26
Changes
- add config options for OAR & AR headers #2855
- plugins.js: also strip haraka-plugin prefix from plugin.name #2846
- smtp_forward/spamssassin: grab refs of conn/txn to avoid crashes due to lack of existence. #2847
- outbound: add extended reason to bounce message #2843
- hgrep: replaced perl script with shell script #2842
- connection: send temp error when requested #2841
- headers: updated deprecated messages #2845
- hmail: socket.on -> socket.once #2838
- hmail: check for zero length queue file #2835
- outbound: add os.hostname() as default for outbound HELO #2813
- use node v10's mkdir instead of mkdirp #2797
- CI: drop appveyor and Travis #2784
- lint: add 'prefer-template'
- update async to version 3.2.0 #2764
- update redis to version 3.0.0 #2759
- remove deprecated max_unrecognized_commands from config #2755
- CI: add ES2017 support, drop node 8 #2740
- fix broken bannering on nested mime parts #2736
- restore TLS version info, set correctly #2723
- better error message when invalid HELO hostname is rejected
- bring STARTTLS "TLS NO-GO" feature in line with Outbound's #2792
- add listener for secureConnect #2828
- removed plugins/data.headers to haraka-plugin-headers #2826
- add zero-length queue size check
- send temp instead of hard error when asked to by
unrecognized_command
New features
- Allow web interface to be bound to unix socket #2768
- tls: add configurable minVersion to tls socket options #2738
- connection_close_message: added ability to override close connection message replacing
closing connection. Have a jolly good day.
#2730 - add JSON format for logging #2739
- support binding web interface to unix socket
Fixes
- check for punycode domain names when resolving MX, avoid crash #2861
- wait until entire message is spooled when spool_after in use #2840
- hmail: add missing space in temp_fail emitter #2837
- fix outbound config reloading after outbound split #2802
- smtp_forward: remove redundant outbound hook #2796
- smtp_forward: this plugin does not use the queue_outbound hook anymore #2795
- Fix connection pool not being unique when hosts and ports were equal between domains #2789
- fix connection pool not being unique when hosts and ports were equal between domains #2788
- Fix outbound.bounce_message To: header (and add Auto-Submitted) #2782
- Fix support for DKIM signing when forwarding and aliasing is enabled #2776
- Better error message when EHLO hostname does not have a dot #2775
- fix bannering on nested mime parts #2737
- TLS: don't abort loading certs in config/tls dir when an error is encountered. Process every cert file and then emit errors. #2729
- restore TLS version, correctly #2723
v2.8.25
Changes
- conn: remove TLS version from header #2648
- Actually enforce using key for INTERNALCMD #2643
- trans: assign conditions to named vars #2638
- drop node.js v6 support #2632
- conn: use is_local instead of localhost addr tests #2627
- spamassassin: spamassassin: strip useless WS from tests #2624
- es6: many updates #2615, #2674, #2680
- systemctl: update service definition #2612
- lint: bracket style to match newer eslint:recommended #2680
- lint: use object shorthands (eslint:recommended) #2680
- logger: use safer Object.prototype.hasOwnProperty #2680
- outbound: permit # char in SMTP status code response #2689
- dkim_sign: improve docs, add tests, es6 updates #2649
- dkim_sign: restore default key signing feature #2649
- tmp module: update to latest #2614
- semver: update to latest #2616, #2651
- async: update to latest #2653, #2664
- repo cleanup: replaced deprecated plugins with list #2681
- spf: es6 patterns, results.pass, test improvements, es6 patterns #2700
New features
- spf: add config option to fail on NONE #2644
Fixes
- mailheader: fully quality header name in _remove_more #2647
- haraka: Connection.createConnection is not a constructor #2618
- problems with japanese characters in body and part header #2675
- toobusy: fix hook name (connect_pre -> connect) #2672
- outbound: watch for socket timeouts #2687
- outbound: permit # char prefix in SMTP status code response #2691
- mailheader: strip whitespace between encoded-words #2702