Skip to content

Releases: haraka/Haraka

3.0.5

01 Oct 21:02
bfd73e7
Compare
Choose a tag to compare
  • 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

22 Aug 00:12
de9ae4e
Compare
Choose a tag to compare

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
    • improve log message for queue* hooks, fixes #2998
    • support IPv6 when setting remote.is_private #3295
    • in setTLS, replace forEach with for...of
    • NOTE: remove a handful of 3.0 sunset property names #3315
  • 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

08 Feb 06:53
2075b94
Compare
Choose a tag to compare

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

16 Jun 21:10
5c30916
Compare
Choose a tag to compare

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

19 Jan 22:59
e81640d
Compare
Choose a tag to compare

v3.0.0

06 Jan 18:09
5fa95fa
Compare
Choose a tag to compare

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

15 Oct 06:14
16b58d2
Compare
Choose a tag to compare

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

06 Jan 05:39
8582195
Compare
Choose a tag to compare

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

  • assure headers.max_lines is initialized as integer #2878
  • require haraka-net-utils >= 1.2.2 #2876

release 2.8.26

02 Dec 07:45
3145563
Compare
Choose a tag to compare

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

11 Oct 20:57
412d77e
Compare
Choose a tag to compare

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