Haraka Versions Save

A fast, highly extensible, and event driven SMTP server

v3.0.3

2 months ago

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

v3.0.2

10 months ago

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

v3.0.1

1 year ago
  • 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)

3.0.0

1 year ago

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

2 years ago

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

3 years ago

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

2.8.26

3 years ago

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

2.8.25

4 years ago

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

2.8.24

5 years ago

Changes

  • early_talker: skip if sender has good karma #2551
  • dockerfile: update to node 10 #2552
  • Update deprecated usages of Buffer #2553
  • early_talker: extend reasons to skip checking #2564
  • tls: add 'ca' option (for CA root file) #2571
  • outbound: little cleanups #2572
  • smtp_client: pass pool_timeout to new SMTPClient #2574
  • server: default to nodes=1 (was undefined) #2573
  • test/server: use IPv4 127.0.0.1 instead of localhost #2584
  • queue/smtp_*: add v3 upgrade notice and config setting #2585
  • spf: use the skip config for helo/ehlo checks #2587
  • spf: avoid 2nd EHLO evaluation if EHLO host is identical #2592
  • queue.js refactoring #2593
  • Log dkim_sign parse errors with connection ID #2596
  • Update ipaddr.js to the latest version #2599
  • make inactivity timeout match docs #2607

New Features

  • Implement SIGTERM graceful shutdown if pid is 1 #2547
  • tls: require validated certs on some ports with requireAuthorized #2554
  • spamassassin: disable checks when requested #2564
  • clamd: permit skipping for relay clients #2564
  • outbound: exported outbound.temp_fail_queue, outbound.delivery_queue and add TimerQueue.discard()
  • status: new plugin #2577

Fixes

  • mf.resolvable: reduce timeout by one second (so < plugin.timeout) #2544
  • LMTP blocks under stress #2556
  • invalid DKIM when empty body #2410
  • prevent running callback multiple times on TLS unix socket #2509
  • add missing callback when listing queue and empty directory
  • correct MIME parsing when charset: utf8 and encoding: 8bit #2582
  • spamassassin: default check flags to true #2583
  • smtp_client: destroy when connection gets conn timeout error #2604
  • on error and timeout, remove listeners and destroy conn. #2606

2.8.22

5 years ago

2.8.22 - Nov 17, 2018

New Features

  • enable tls/ssl for rabbitmq amqplib plugin #2518

Fixes

  • hmail: don't send RSET to LMTP #2530

Changes

  • clamd: add check.authenticated, check.private_ip, check.local_ip option
  • use get_decoded on headers that may be encoded #2537
  • connection: move max_mime_part config load to connection init #2528
  • outbound: init TLS when we send email, not when old queue file is loaded #2503

Changes

  • relay: update port 465 doc #2522
  • hmail: log the correct err message #2531
  • ob/tls: consistently use obtls (vs plugin) for "this" name #2524
  • outbound: add domain to loginfo message #2523
  • Add connection.remote.is_local #2532
  • update license #2525
  • perf: move max_mime_parts config load to connection init #2529
  • update semver to version 5.6.0 #2517
  • added hint to encrypted file authentication #2514
  • dkim_sign: improved log messages #2499
  • ehlo_hello_message: config/ehlo_hello_message can be used to overwrite the EHLO/HELO msg replacing , Haraka is at your service #2498
  • connection: add connection.remote.is_local flag for detecting loopback and link local IPs
  • add .name to outbound TLS for logs #2492