Haraka Versions Save

A fast, highly extensible, and event driven SMTP server

2.8.20

5 years ago
  • New Features
    • n/a
  • Fixes
    • data_headers: check defined-ness of hdr_address after try/catch #2458
    • tls: remove tls.ini loading from plugins/tls #2459
    • tls: remove invalid opt from load_tls_ini #2456
    • outbound: escape values in HTML bounce correctly #2446
    • dkim_sign: catch exceptions when address-rfc2822 fails to parse From #2457
  • Changes
    • logger: Add "obj" log param to log hook that contains log data by type #2425
    • logger: include outbound client ID in logging #2425
    • logger: allow specifying uuid in params when logging #2425

release-2.8.21

5 years ago

New Features

  • outbound: skip STARTTLS after remote host fails TLS upgrade #2429
  • dns_list_base: introduce global plugin.lookback_is_rejected flag #2422

Fixes

  • replace all _ chars in hostnames with code points #2485
  • Don't die on invalid commands #2481
  • outbound: check list exists before attempting to use it #2478
    • refactor outbound/hmail.process_ehlo_data #2488
  • tls: skip when redis is undefined #2472
  • Don't run delivered hook on LMTP fail #2470
  • Add tls_socket.load_tls_ini() to tls.register() #2465

Changes

  • outbound/tls: make into a class #2474
  • plugins: clear timeout on cancel #2477
  • txn.parse_body consistently a boolean #2476
  • update ipaddr.js to version 1.8.0 #2468

v2.8.19

5 years ago
  • New features
    • outbound: received_header=disabled supresses outbound Received header addition. #2409
    • auth_base.js: check_plain_passwd and check_cram_md5_passwd can now pass message and code to callback routine
    • spf: allow bypass for relay and AUTH clients #2417
    • spf: optionally add OpenSPF help text to rejection #2417
    • auth_base: prevent storing of AUTH password in connection.notes.auth_passwd by setting plugin.blackout_password. #2421
  • Fixes
    • Mitigate MIME part explosion attack #2447
    • Always prefix ClamAV with a Received header #2407
    • plugins/data.headers.js: wrap address-rfc2822 header parse into try block #2373
    • tls_socket: as client, only apply TLS opts if config is valid #2414
    • when installing, creates config/me if missing #2413
    • queue/qmail-queue: fix a 2nd crash bug when client disconnects unexpectedly #2360
    • remove desconstruction of SMTP commands to prevent exception #2398
    • attstream: return self so that pipe() calls can be chained together. #2424
    • outbound: fix dotfile cleanup to consider platform-based prefix. #2395
    • outbound: fix handling of LMTP socket when a socket path is specified. #2376
  • Changes
    • relay: move relay acl check to connect_init so flag is set earlier #2442
    • process_title: add total recipients, avg rcpts/msg, recipients/sec cur/avg/max and messages/conn #2389
    • when relaying is set in a transaction, don't persist beyond the transaction #2393
    • connection.set supports dot delimited path syntax #2390
    • remove deprecated (since 2.8.16) ./dsn.js
    • Add transaction.msg_status property that reflects message status. #2427
    • Add transaction.notes.proxy object that hold HAProxy details. #2427
    • spamassassin: make relay header configurable. #2418
    • deprecate max_unrecognized_commands plugin in favor of limit. #2402
    • xclient: add support for DESTADDR/DESTPORT. #2396

2.8.18

6 years ago
  • New features
    • smtp_forward: domain configuration is now chosen based on domain_selector #2346
  • Fixes
    • queue/qmail-queue: fix crash bug when client disconnects unexpectedly #2360
    • tls: fix crash bug in unrecognized_command hook
    • dkim_key_gen.sh: improve usability and parameter parsing #2355
  • Changes
    • document force_shutdown_timeout and graceful_shutdown settings #2350

2.8.17

6 years ago
  • New Features
    • SMTPS port is configurable #2269
    • smtp_forward: enable_outbound can be set per domain #2335
  • Fixes
    • Fix ability to set log level to emerg #2128
    • outbound/hmail: use Buffer to correctly read binary file data + tests #2231
    • quarantine: consolidate 2x hook_init_master functions
    • tls_socket: restore SNI functionality, emit count of TLS certs #2293
    • fix smtp_client error handling #2298
    • fix outbound pools #2317
    • add openssl-wrapper as dependency #2320
    • replace _ chars in hostnames with code points #2324
    • add this.removeAllListeners('connection-error') #2323
    • Fix crashing on RSET #2328
    • Prevent data headers crit fail #2329
    • Fix undefined max_lines in log message #2337
  • Changes
    • line_socket: remove superfluous function #2339
    • consistent end of function declaration semicolon #2336
    • connection: assure hostname is set #2338
    • smtp_client: Fix log message typo #2334
    • Update ipaddr.js to version 1.6.0 #2333
    • Warn on max_header_lines #2331
    • update jquery version #2322
    • plugins: add SRS plugin to registry #2318
    • tls_socket: only generate dhparam.pem on master process #2313
    • add ENOTFOUND to also check A record #2310
    • smtp_forward: correct config file name in docs #2309
    • reduce severity of iconv conversion failure #2307
    • Add txn UUID to "250 Message Queued" #2305
    • mailheader: reduce log level priority #2299
    • greylist: only log redis DB errors when exist #2295
    • data.headers: reduce undef MLM logerror to logdebug #2294
    • quarantine: consolidate 2x hook_init_master() #2292
    • move test_queue to queue/test #2291
    • in haraka plugin test mode, add server.notes #2248
    • outbound/hmail: refactor #2238
    • outbound/hmail: add JSON sanity test before JSON.parse #2231
    • outbound/index: use newer Buffer.from syntax #2231
    • outbound/hmail: make haraka queue files human friendly #2231
    • plugins/rcpt_to.ldap -> haraka-plugin-rcpt-ldap #2144
    • plugins/auth/auth_ldap -> haraka-plugin-auth-ldap #2144
    • plugins/smtp_forward: enable_outbound can be enabled/disabled for specific domains
    • auth_proxy: read TLS key and cert files from tls.ini #2212
    • README: typo fixes #2210
    • incorrect RCPT TO reply message #2227
    • Resolve decoding bug when root part is base64 encoded. #2204
    • Resolve base64 data truncation #2188
    • Fix damaged encoding when body is non-utf #2187
    • Fix disconnect hooks #2184
    • ability to set log level to emerg #2128
    • Improve docs for Address objects #2224
    • connection: replace 3x ternaries with get_remote() #2169
    • connection.local.host populated with hostname (from config/me) #2165
    • connection.local.info populated with Haraka/version #2196
    • npm packaged plugins:
      • plugins/rcpt_to.ldap -> haraka-plugin-rcpt-ldap #2144
      • plugins/auth/auth_ldap -> haraka-plugin-auth-ldap #2144
      • plugins/graph -> haraka-plugin-graph #2185
      • plugins/graph -> haraka-plugin-graph #2185
    • config: replace ./config.js with haraka-config #2119
    • Replace concatenated strings with template literals (#2129) in:
      • attachment #2260
      • bin/spf #2129
      • bin/dkimverify #2278
      • connection #2129, #2243
      • delay_deny #2264
      • dkim #2216
      • dsn #2265
      • host_pool #2198, #2245
      • logger #2277, #2246
      • mailbody #2280
      • max_unrecognised_commands #2171
      • outbound/hmail #2259
      • outbound/index #2249
      • outbound/todo #2233
      • plugins #2239
      • plugins/aliases #2229
      • plugins/attachment #2155
      • plugins/auth_base #2252
      • plugins/avg #2156
      • plugins/backscatterer #2261
      • plugins/bounce #2229
      • plugins/clamd #2237
      • plugins/connect.rdns_access #2262
      • plugins/data.headers #2263
      • plugins/data.uribl #2258
      • plugins/helo.checks #2255
      • plugins/rcpt_to.in_host_list #2253
      • plugins/spamassassin #2256
      • plugins/profile #2170
      • plugins/rcpt_to.host_list_base #2254
      • plugins/relay #2174
      • plugins/relay_acl #2177
      • plugins/spf #2266
      • plugins/toobusy #2186
      • plugins/xclient #2159
      • rfc1869 #2159
      • smtp_client #2129, #2208
      • tests/host_pool #2159
    • use es6 destructuring (#2075) in:
      • connection #2230
      • dkim #2232
    • use es6 classes (#2133) in:
      • attachment #2260
      • attachment_stream #2215
      • chunkemitter #2219
      • dkim #2206
      • dsn #2247
      • host_pool #2194
      • mailheader #2213
      • mailbody #2213
      • smtp_client #2221
      • spf #2214
      • tls_socket #2190
      • timer_queue #2226
      • outbound/hmail #2197
      • outbound/todo #2233
    • Automatically set connection.remote.is_private when connection.remote.ip is set #2192
    • Add remove_msgid and remove_date options to outbound.send_email #2209
    • Add origin option to outbound.send_mail #2314

2.8.16

6 years ago
  • Changes
    • additional tests get var -> const/let medicine #2122
    • move connection states into haraka-constants #2121
    • lint: remove useless escapes #2117
    • lint: switch no-var to error #2109
    • rspamd: repackaged as NPM module #2106
    • dsn: repackaged as NPM module haraka-dsn #2105
    • outbound: add results when queueing #2103
    • spamassassin: skip adding headers when value is empty #2102
    • Replace console.log with stdout #2100
    • update js-yaml to version 3.10.0 #2097
    • repackage p0f plugin to NPM #2076
    • ES6: replace var with const or let #2073
  • Fixes
    • daemon cwd #2126
    • updated fcrdns plugin name passed to results #2115
    • tls: only apply default key/cert paths when undefined #2111
    • dkim_verify: fix formatting of auth results #2107
    • smtp_forward: consistently use queue.wants #2107
    • haraka was adding TLS header on non-TLS connection #2103
    • dkim typo fix #2101
    • fix rfc2231 parsing code to cope with continuation #2089

2.8.15

6 years ago

2.8.15 - Sep 10, 2017

  • Changes
    • Remove unused folders from installation #2088
    • smtp_forward stores queue note at queue.wants #2083
    • add get/set to conn/txn.notes #2082
    • additional results storing in smtp_forward and quarantine #2067
    • Permit log settings to be set w/o LOG prefix #2057
    • support INFO and LOGINFO as config settings #2056
    • log.ini, new default location for log related settings #2054
    • dcc: replace with npm packaged version #2052
    • qmd: replace rcpt_to.qmail_deliverable with npm #2051
    • rspamd: pass SPF evaluation #2050
    • add logfmt support #2047
    • update ipaddr.js to version 1.5.0 #2037
    • update redis to version 2.8.0 #2033
    • disable graceful for SIGTERM #2028
    • add additional integration tests #2026
    • move most npm packaged plugins into optionalDependencies #2023
  • New Features
    • TLS certificate directory (config/tls) #2032
    • plugins can specify a queue plugin & next_hop route #2067
    • connection/transaction notes now have get/set #2082
  • Fixes
    • haraka cli will now create folders if they don't exist #2088
    • maybe fix for #1852 503 response #2064
    • crash when 'AUTH LOGIN' is sent after a successful auth #2039
    • docs: fixed swaks test command #2034
    • dkim: prevent dkim_verify from causing 'cannot pipe' #1693

v2.8.14

6 years ago

2.8.14 - Jul 26, 2017

  • Changes
    • Fix auth plugin failure when re-selecting auth method #2000
    • don't crash Haraka when invalid YAML config encountered #2013
    • update semver to version 5.4.0 #2015
    • relay docs: correct the config file name #2012
    • rename config/xclient.hosts to match plugin & docs #2014
    • build_todo() is part of the outbound/index.js api #2016
    • update js-yaml to version 3.9.0 #2002
    • outbound/hmail: use WRITE_EXCL from haraka-constants #2011
    • replace plugins/log.elasticsearch with npm packaged #2004
    • Remove two spurious log statements #1989
    • access: rebuild blacklist upon change (vs supplement) #1990
    • deliver to qmail-queue with LF line endings (not CRLF) #1997
    • doc: add note that smtp_forward only supports STARTTLS #1988
    • import Plugins.md from v3 #1991
    • update async to 2.5.0 #1982
    • update iconv to 2.3.0 #1981
    • require node.js v6+ #1958
    • update ipaddr.js to 1.4.0 #1972
    • support newer address-rfc2822 #1970
    • update node-address-rfc2821 version to 1.1.1 #1968
    • outbound: be consistent with todo.domain #1960
    • bump haraka-results required version #1949
    • logger: load in a setImmediate call #1948
    • logger: strip intermediate \n chars #1947
    • tls consistency cleanups #1851
    • Get pool config handling simplifcation #1868
      • add integration test: send message w/smtp_client
    • replace some legacy code with es6 #1862
    • update async to version 2.2.0 #1863
    • update ipaddr.js to version 1.3.0 #1857
    • update redis to version 2.7.0 #1854
    • assure conn/tran still exists before storing results #1849
    • moved tls.ini parsing to net_utils #1848
    • smtp forward dest split routing #1847
    • rspamd: refactor complex condition into function #1840
    • block js attachments #1837
    • helo.checks: bring plugin into alignment with docs #1833
    • when proxy enabled, update remote.is_private too #1811
    • create an outbound queue filename handler #1792
    • replace connect.fcrdns with npm package #1810
    • add an additional node_modules plugin search path #1805
    • Set graceful shutdown off by default #1927
    • Allow outbound pools to be disabled #1917
    • Outbound split and move into folder #1850
    • don't emit binary characters into the logs #1902
    • Add .editorconfig #1884
    • tls: remove interim variables #1871
  • New Features
    • Use punycode domain (support SMTPUTF8) #1944
    • Added RabbitMQ vhost support #1866
    • clamav: allow "Unknown Result" and Socket Error to try next host #1931
    • outbound client certificates #1908
    • Implement the missing upgrade method on SMTPClient #1901
    • Remove typo from relay.md #1886
  • Fixes
    • outbound: fix queue not loaded for single process #1941
    • outbound: Fix undefined variable platformDOT in hmail.js #1943
    • outbound: fix undefined FsyncWriteStream var #1953
    • Fix cluster messaging for node v6+ #1938
    • outbound: fix loading under cluster. #1934
    • Check pool exists before delete #1937
    • be more strict in attachment filename matching #1957
    • doc typo fix #1963
    • RabbitMQ: fix encoding of user and password string #1964
    • spf: improve modifier regexp #1859
    • rabbitmq doc typo in config file name #1865
    • URL to manual was 404, point to Plugins.md #1844
    • smtp_client: set idleTimeout to 1s < pool_timeout #1842
    • fix broken continuations #1843
    • doc error for the 'check.authenticated' setting in rspamd plugin #1834
    • emit the result, not all of them #1829
    • fix outbound logger #1827
    • fix forwarding with client auth over TLS (forward to gmail) #1803
    • Don't blow the stack on qstat #1930
    • run dumped logs through log plugins, not console #1929
    • Fix path parsing bug on Windows platform #1919
    • helo: make sure list_re is defined before access #1903
    • TLS: handle case where OCSP server is unavailable #1880
    • rspamd: add missing 'default' keyword #1856
    • disable naïve comment stripping #1876

2.8.13

7 years ago
  • Changes
    • new haraka-plugin-limit #1785
      • replaces plugin/limit, plugin/rate_limit, and haraka-plugin-outbound-rate-limit
    • p0f: skip on private IPs (normally empty) #1758
    • spf: skip for outbound when context != myself #1763
    • redis: plugins using redis can inherit redis config #1777
    • redis: replace plugins/redis with haraka-plugin-redis #1786
    • lint: require space before function declaration #1784
    • lint: added eslint:recommended #1790
    • logger: remove logger.colorize code for legacy node versions
  • New Features
    • redis: add redis_subscribe_pattern() #1766
    • queue/discard: add ENV that permits discarding #1791
  • Improvements
    • rspamd: improve response parsing #1770
    • restore Windows testing to working state #1755
    • elasticsearch: use UTC dates for index creation #1771
    • tls: fix dhparam usage example syntax #1774
    • typo: logerr -> logerror #1776
    • when generating long DKIM keys, include a BIND compatible folded key #1775
    • in haraka-test-fixtures, access results via fixtures.results #1783
    • integration test: end to end server testing #1791
  • Bug Fixes
    • spf: restore functionality for relay context=myself #1759
    • rate_limit:if incr creates a new record, assure it has a TTL #1781
    • tls: do not create a top level secureContext #1787
    • dnswl: swap lines to fix missing inherited methods #1793
    • dnswl: fix config loader callback syntax #1794
    • tests/plugins: unset process.env.HARAKA to avoid side effects that interfere with other tests
    • remove auth_flat_file sample auth user #1796

2.8.12

7 years ago
  • Changes
    • plugin/karma -> npm packaged haraka-plugin-karma #1747
    • update generic-pool 2.4.2 -> 2.5.0
  • New Features
    • Added option to bypass SpamAssassin headers' merge #1745
  • Improvements
    • reduce severity of debug message #1744
    • fix misleading entries in config/tls.ini #1734
    • Misc. performance improvements #1738
    • set tls.sessionIdContext property (for Thunderbird compat) #1740
  • Bug Fixes
    • Swap lines to avoid clobbering response array #1743