Haraka 3.0.3 → 3.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/.eslintrc.yaml +5 -9
  2. package/.prettierrc.yml +1 -0
  3. package/CONTRIBUTORS.md +11 -0
  4. package/Changes.md +1365 -1214
  5. package/Plugins.md +117 -105
  6. package/README.md +4 -13
  7. package/bin/haraka +197 -298
  8. package/config/auth_flat_file.ini +1 -0
  9. package/config/dhparams.pem +8 -0
  10. package/config/mail_from.is_resolvable.ini +4 -2
  11. package/config/me +1 -0
  12. package/config/outbound.ini +0 -2
  13. package/config/plugins +36 -35
  14. package/config/smtp.ini +0 -1
  15. package/config/smtp.json +17 -0
  16. package/config/tls_cert.pem +23 -0
  17. package/config/tls_key.pem +28 -0
  18. package/connection.js +46 -73
  19. package/contrib/bsd-rc.d/haraka +3 -1
  20. package/contrib/plugin2npm.sh +6 -36
  21. package/docs/CoreConfig.md +2 -2
  22. package/docs/Logging.md +7 -21
  23. package/docs/Outbound.md +104 -201
  24. package/docs/Plugins.md +2 -2
  25. package/docs/Transaction.md +59 -82
  26. package/docs/plugins/queue/smtp_proxy.md +5 -10
  27. package/docs/plugins/tls.md +29 -9
  28. package/endpoint.js +16 -13
  29. package/haraka.js +10 -14
  30. package/host_pool.js +5 -5
  31. package/line_socket.js +3 -4
  32. package/logger.js +44 -28
  33. package/outbound/client_pool.js +27 -23
  34. package/outbound/config.js +4 -6
  35. package/outbound/fsync_writestream.js +1 -1
  36. package/outbound/hmail.js +178 -218
  37. package/outbound/index.js +86 -99
  38. package/outbound/qfile.js +1 -1
  39. package/outbound/queue.js +51 -44
  40. package/outbound/timer_queue.js +3 -2
  41. package/outbound/tls.js +19 -7
  42. package/package.json +59 -48
  43. package/plugins/.eslintrc.yaml +0 -6
  44. package/plugins/auth/auth_base.js +4 -2
  45. package/plugins/auth/auth_proxy.js +14 -12
  46. package/plugins/auth/auth_vpopmaild.js +1 -1
  47. package/plugins/block_me.js +1 -1
  48. package/plugins/data.signatures.js +2 -4
  49. package/plugins/early_talker.js +2 -1
  50. package/plugins/mail_from.is_resolvable.js +65 -135
  51. package/plugins/queue/deliver.js +4 -5
  52. package/plugins/queue/lmtp.js +11 -14
  53. package/plugins/queue/qmail-queue.js +2 -2
  54. package/plugins/queue/quarantine.js +2 -2
  55. package/plugins/queue/rabbitmq.js +16 -17
  56. package/plugins/queue/smtp_forward.js +3 -3
  57. package/plugins/queue/smtp_proxy.js +10 -1
  58. package/plugins/queue/test.js +2 -2
  59. package/plugins/rcpt_to.host_list_base.js +5 -5
  60. package/plugins/rcpt_to.in_host_list.js +2 -2
  61. package/plugins/relay.js +6 -7
  62. package/plugins/reseed_rng.js +1 -1
  63. package/plugins/status.js +37 -33
  64. package/plugins/tls.js +2 -2
  65. package/plugins/xclient.js +3 -2
  66. package/plugins.js +50 -54
  67. package/run_tests +3 -30
  68. package/server.js +190 -190
  69. package/smtp_client.js +30 -23
  70. package/{tests → test}/config/plugins +0 -2
  71. package/{tests → test}/config/smtp.ini +1 -1
  72. package/test/config/tls/example.com/_.example.com.key +28 -0
  73. package/test/config/tls/example.com/example.com.crt +25 -0
  74. package/test/connection.js +302 -0
  75. package/test/endpoint.js +94 -0
  76. package/{tests → test}/fixtures/line_socket.js +1 -1
  77. package/{tests → test}/fixtures/util_hmailitem.js +19 -25
  78. package/{tests → test}/host_pool.js +42 -57
  79. package/test/logger.js +258 -0
  80. package/test/outbound/hmail.js +141 -0
  81. package/test/outbound/index.js +220 -0
  82. package/test/outbound/qfile.js +126 -0
  83. package/test/outbound_bounce_net_errors.js +142 -0
  84. package/{tests → test}/outbound_bounce_rfc3464.js +110 -122
  85. package/test/plugins/auth/auth_base.js +484 -0
  86. package/test/plugins/auth/auth_vpopmaild.js +83 -0
  87. package/test/plugins/early_talker.js +104 -0
  88. package/test/plugins/mail_from.is_resolvable.js +35 -0
  89. package/test/plugins/queue/smtp_forward.js +206 -0
  90. package/test/plugins/rcpt_to.host_list_base.js +122 -0
  91. package/test/plugins/rcpt_to.in_host_list.js +193 -0
  92. package/test/plugins/relay.js +303 -0
  93. package/test/plugins/status.js +130 -0
  94. package/test/plugins/tls.js +70 -0
  95. package/test/plugins.js +228 -0
  96. package/test/rfc1869.js +73 -0
  97. package/test/server.js +491 -0
  98. package/test/smtp_client.js +299 -0
  99. package/test/tls_socket.js +273 -0
  100. package/test/transaction.js +270 -0
  101. package/tls_socket.js +202 -252
  102. package/transaction.js +8 -23
  103. package/CONTRIBUTING.md +0 -1
  104. package/bin/dkimverify +0 -40
  105. package/config/access.domains +0 -13
  106. package/config/attachment.ctype.regex +0 -2
  107. package/config/attachment.filename.regex +0 -1
  108. package/config/avg.ini +0 -5
  109. package/config/bounce.ini +0 -15
  110. package/config/data.headers.ini +0 -61
  111. package/config/dkim/dkim_key_gen.sh +0 -78
  112. package/config/dkim_sign.ini +0 -4
  113. package/config/dkim_verify.ini +0 -7
  114. package/config/dnsbl.ini +0 -23
  115. package/config/greylist.ini +0 -43
  116. package/config/helo.checks.ini +0 -52
  117. package/config/messagesniffer.ini +0 -18
  118. package/config/spamassassin.ini +0 -56
  119. package/dkim.js +0 -614
  120. package/docs/plugins/avg.md +0 -35
  121. package/docs/plugins/bounce.md +0 -69
  122. package/docs/plugins/clamd.md +0 -147
  123. package/docs/plugins/esets.md +0 -8
  124. package/docs/plugins/greylist.md +0 -90
  125. package/docs/plugins/helo.checks.md +0 -135
  126. package/docs/plugins/messagesniffer.md +0 -163
  127. package/docs/plugins/spamassassin.md +0 -180
  128. package/outbound/mx_lookup.js +0 -70
  129. package/plugins/auth/auth_ldap.js +0 -3
  130. package/plugins/avg.js +0 -162
  131. package/plugins/backscatterer.js +0 -25
  132. package/plugins/bounce.js +0 -381
  133. package/plugins/clamd.js +0 -382
  134. package/plugins/data.uribl.js +0 -4
  135. package/plugins/dkim_sign.js +0 -395
  136. package/plugins/dkim_verify.js +0 -62
  137. package/plugins/dns_list_base.js +0 -221
  138. package/plugins/dnsbl.js +0 -146
  139. package/plugins/dnswl.js +0 -58
  140. package/plugins/esets.js +0 -71
  141. package/plugins/graph.js +0 -5
  142. package/plugins/greylist.js +0 -645
  143. package/plugins/helo.checks.js +0 -533
  144. package/plugins/messagesniffer.js +0 -381
  145. package/plugins/rcpt_to.ldap.js +0 -3
  146. package/plugins/rcpt_to.max_count.js +0 -24
  147. package/plugins/spamassassin.js +0 -384
  148. package/tests/config/dkim/example.com/dns +0 -29
  149. package/tests/config/dkim/example.com/private +0 -6
  150. package/tests/config/dkim/example.com/public +0 -4
  151. package/tests/config/dkim/example.com/selector +0 -1
  152. package/tests/config/dkim.private.key +0 -6
  153. package/tests/config/dkim_sign.ini +0 -4
  154. package/tests/config/helo.checks.ini +0 -52
  155. package/tests/connection.js +0 -327
  156. package/tests/endpoint.js +0 -128
  157. package/tests/fixtures/vm_harness.js +0 -59
  158. package/tests/logger.js +0 -327
  159. package/tests/outbound/hmail.js +0 -112
  160. package/tests/outbound/index.js +0 -324
  161. package/tests/outbound/qfile.js +0 -67
  162. package/tests/outbound_bounce_net_errors.js +0 -173
  163. package/tests/plugins/auth/auth_base.js +0 -463
  164. package/tests/plugins/auth/auth_vpopmaild.js +0 -91
  165. package/tests/plugins/bounce.js +0 -307
  166. package/tests/plugins/clamd.js +0 -224
  167. package/tests/plugins/deprecated/relay_acl.js +0 -140
  168. package/tests/plugins/deprecated/relay_all.js +0 -59
  169. package/tests/plugins/dkim_sign.js +0 -315
  170. package/tests/plugins/dkim_signer.js +0 -108
  171. package/tests/plugins/dns_list_base.js +0 -259
  172. package/tests/plugins/dnsbl.js +0 -101
  173. package/tests/plugins/early_talker.js +0 -115
  174. package/tests/plugins/greylist.js +0 -58
  175. package/tests/plugins/helo.checks.js +0 -525
  176. package/tests/plugins/mail_from.is_resolvable.js +0 -116
  177. package/tests/plugins/queue/smtp_forward.js +0 -221
  178. package/tests/plugins/rcpt_to.host_list_base.js +0 -132
  179. package/tests/plugins/rcpt_to.in_host_list.js +0 -218
  180. package/tests/plugins/relay.js +0 -339
  181. package/tests/plugins/spamassassin.js +0 -171
  182. package/tests/plugins/status.js +0 -138
  183. package/tests/plugins/tls.js +0 -84
  184. package/tests/plugins.js +0 -247
  185. package/tests/rfc1869.js +0 -61
  186. package/tests/server.js +0 -510
  187. package/tests/smtp_client/auth.js +0 -105
  188. package/tests/smtp_client/basic.js +0 -101
  189. package/tests/smtp_client.js +0 -80
  190. package/tests/tls_socket.js +0 -333
  191. package/tests/transaction.js +0 -284
  192. /package/docs/{plugins → deprecated}/dkim_sign.md +0 -0
  193. /package/docs/{plugins → deprecated}/dkim_verify.md +0 -0
  194. /package/docs/{plugins → deprecated}/dnsbl.md +0 -0
  195. /package/docs/{plugins → deprecated}/dnswl.md +0 -0
  196. /package/{tests → test}/.eslintrc.yaml +0 -0
  197. /package/{tests → test}/config/auth_flat_file.ini +0 -0
  198. /package/{tests → test}/config/dhparams.pem +0 -0
  199. /package/{tests → test}/config/host_list +0 -0
  200. /package/{tests → test}/config/outbound_tls_cert.pem +0 -0
  201. /package/{tests → test}/config/outbound_tls_key.pem +0 -0
  202. /package/{tests → test}/config/smtp_forward.ini +0 -0
  203. /package/{tests → test}/config/tls/ec.pem +0 -0
  204. /package/{tests → test}/config/tls/haraka.local.pem +0 -0
  205. /package/{tests → test}/config/tls/mismatched.pem +0 -0
  206. /package/{tests → test}/config/tls.ini +0 -0
  207. /package/{tests → test}/config/tls_cert.pem +0 -0
  208. /package/{tests → test}/config/tls_key.pem +0 -0
  209. /package/{tests → test}/fixtures/todo_qfile.txt +0 -0
  210. /package/{tests → test}/installation/config/test-plugin-flat +0 -0
  211. /package/{tests → test}/installation/config/test-plugin.ini +0 -0
  212. /package/{tests → test}/installation/config/tls.ini +0 -0
  213. /package/{tests → test}/installation/node_modules/load_first/index.js +0 -0
  214. /package/{tests → test}/installation/node_modules/load_first/package.json +0 -0
  215. /package/{tests → test}/installation/node_modules/test-plugin/config/test-plugin-flat +0 -0
  216. /package/{tests → test}/installation/node_modules/test-plugin/config/test-plugin.ini +0 -0
  217. /package/{tests → test}/installation/node_modules/test-plugin/package.json +0 -0
  218. /package/{tests → test}/installation/node_modules/test-plugin/test-plugin.js +0 -0
  219. /package/{tests → test}/installation/plugins/base_plugin.js +0 -0
  220. /package/{tests → test}/installation/plugins/folder_plugin/index.js +0 -0
  221. /package/{tests → test}/installation/plugins/folder_plugin/package.json +0 -0
  222. /package/{tests → test}/installation/plugins/inherits.js +0 -0
  223. /package/{tests → test}/installation/plugins/load_first.js +0 -0
  224. /package/{tests → test}/installation/plugins/plugin.js +0 -0
  225. /package/{tests → test}/installation/plugins/tls.js +0 -0
  226. /package/{tests → test}/loud/config/dhparams.pem +0 -0
  227. /package/{tests → test}/loud/config/tls/goobered.pem +0 -0
  228. /package/{tests → test}/loud/config/tls.ini +0 -0
  229. /package/{tests → test}/mail_specimen/base64-root-part.txt +0 -0
  230. /package/{tests → test}/mail_specimen/varied-fold-lengths-preserve-data.txt +0 -0
  231. /package/{tests → test}/queue/1507509981169_1507509981169_0_61403_e0Y0Ym_1_fixed +0 -0
  232. /package/{tests → test}/queue/1507509981169_1507509981169_0_61403_e0Y0Ym_1_haraka +0 -0
  233. /package/{tests → test}/queue/1508269674999_1508269674999_0_34002_socVUF_1_haraka +0 -0
  234. /package/{tests → test}/queue/1508455115683_1508455115683_0_90253_9Q4o4V_1_haraka +0 -0
  235. /package/{tests → test}/queue/multibyte +0 -0
  236. /package/{tests → test}/queue/plain +0 -0
  237. /package/{tests → test}/queue/zero-length +0 -0
  238. /package/{tests → test}/test-queue/delete-me +0 -0
package/Changes.md CHANGED
@@ -1,12 +1,110 @@
1
-
2
1
  ### Unreleased
3
2
 
3
+ ### [3.0.4] - 2024-08-21
4
+
5
+ #### Added
6
+
7
+ - doc: add CONTRIBUTORS #3312
8
+ - tls_socket: `config/tls` dir loading is now recursive
9
+
10
+ #### Changed
11
+
12
+ - prefix node libs with 'node:' #3359
13
+ - .gitignore: add config/me and config/*.pem
14
+ - auth_base: enable disabling constrain_sender at runtime #3298
15
+ - auth_base: skip constrain_sender when auth user has no domain #3319
16
+ - avg: repackaged as NPM module #3347
17
+ - bounce: repackaged plugin as NPM module #3341
18
+ - clamd: repackaged plugin as NPM module
19
+ - config/plugins: consistent formatting #3359
20
+ - connection: check remote is connected before queue #3338
21
+ - improve log message for queue* hooks, fixes #2998
22
+ - support IPv6 when setting remote.is_private #3295
23
+ - in setTLS, replace forEach with for...of
24
+ - NOTE: remove a handful of 3.0 sunset property names #3315
25
+ - contrib/plugin2npm.sh: fix path to package.json #3359
26
+ - deps: bump all versions to latest #3303, #3344, #3391
27
+ - dkim: repackaged as NPM module #3311
28
+ - esets: repackaged as NPM module #3353
29
+ - greylist: repackaged as NPM module
30
+ - helo.checks: require a successful HELO/EHLO #3352
31
+ - new NPM plugin dns-list, repackages dnsbl, dnswl, backscatterer #3313
32
+ - when using message-stream, don't send default options #3290
33
+ - rcpt_to.host_list: add connection ID to log messages #3322
34
+ - line_socket: remove unused callback #3344
35
+ - logger: don't load outbound (race condition). Instead, set name property #3322
36
+ - logger: extend add_log_methods to Classes (connection, plugins, hmail) #3322
37
+ - logger: when logging via `logger` methods, use short names #3322
38
+ - logger: check Object.hasOwn to avoid circular deps
39
+ - mail_from.resolvable: refactored, leaning on improved net_utils #3322
40
+ - fixes haraka/haraka-net-utils#88
41
+ - messagesniffer: repackaged as NPM module
42
+ - outbound
43
+ - check for local_mx only when default route is used #3307
44
+ - client_pool: use tls_socket directly (shed line_socket)
45
+ - client_pool: sock.name is now JSON of socket args
46
+ - client_pool.get_client & release_client: arity of 5 -> 2
47
+ - mx_lookup: make it async/await
48
+ - mx_lookup: deleted. Logic moved into net_utils #3322
49
+ - use net_utils.HarkaMx for get_mx parsing #3344
50
+ - emit log message when ignoring local MX #3285
51
+ - pass in config when initiating txn #3315
52
+ - minor es6 updates #3315, #3322
53
+ - logging improvements #3322
54
+ - was: [-] [core] [outbound] Failed to get socket: Outbound connection error: Error: connect ECONNREFUSED 172.16.16.14:25
55
+ - now: [A63B62DF-F3B8-4096-8996-8CE83494A188.1.1] [outbound] Failed to get socket: connect ECONNREFUSED 172.16.16.14:25
56
+ - shorter logger syntax: logger.loginfo -> logger.info
57
+ - remove log prefixes of `[outbound] `, no longer needed
58
+ - delete try_deliver_host. Use net_utils to resolve MX hosts to IPs #3322
59
+ - remove config setting ipv6_enabled #3322
60
+ - remove undocumented use of send_email with arity of 2. #3322
61
+ - encapsulate force_tls logic into get_force_tls #3322
62
+ - es6(async/promise): pre_send_trans_email_respond, process_delivery
63
+ - queue/lmtp: refactored for DRY and improved readability #3322
64
+ - smtp_client: pass connect_timeout, maybe fixes #3281
65
+ - spamassassin: repackaged as NPM module #3348
66
+ - style(es6): more for...of loops
67
+ - deps: moved attachment, spf, & dkim into optional deps
68
+ - doc(Plugins.md): update registry
69
+ - doc(Outbound.md): improve GHFM formatting
70
+ - remove last vestiges of header_hide_version (long ago renamed)
71
+ - server.js: use the local logger methods
72
+ - es6(async): _graceful, get_smtp_server, setup_smtp_listeners
73
+ - replace async.eachLimit with Promise.all batches
74
+ - status: replace async.map with Promise.allSettled
75
+ - get Haraka version from utils.getVersion (which includes git id if running from repo)
76
+ - tls_socket: remove secureConnection. Fixes #2743
77
+ - getSocketOpts is now async
78
+ - parse_x509 is now async
79
+ - shed dependency on caolin/async & openssl-wrapper
80
+ - get_certs_dir is now async
81
+ - completely refactored.
82
+ - transaction: init with conn.init_transaction, always pass in cfg #3315
83
+ - test: add a connection.response test case with DSN #3305
84
+ - test: convert test runner to mocha
85
+ - test: rename tests -> test (where test runner expect) #3340
86
+
87
+ #### Fixed
88
+
89
+ - fix(logger): refactor add_log_methods, don't set extra `loglog*` names
90
+ - doc(connection): update rfc7001 URL
91
+ - fix(bin/haraka): list NPM installed plugin #3310
92
+ - fix(bin/haraka): get hook list from doc/Plugins #3306
93
+ - fix(outbound): call cb even if no MX is found #3294
94
+ - fix(helo.checks): declare reject.literal_mismatch as boolean #3293
95
+ - fix(outbound): allow LHLO over insecure socket if TLS is forced #3278
96
+ - fix(outbound): include return path param SMTPUTF8 when required #3289
97
+ - fix(outbound): replace empty Message-ID header #3288
98
+ - fix(outbound): don't send SNI servername when connecting to an IP
99
+ - fix(outbound): chown queue dir after creation #3291
100
+ - fix(server): async endpoint.bind() and await in server.js #3366
101
+ - fix(outbound): get_mx DNS error handling #3376
102
+
4
103
  ### [3.0.3] - 2024-02-07
5
104
 
6
105
  #### Added
7
106
 
8
107
  - feat(auth_vpopmaild): when outbound, assure the envelope domain matches AUTH domain #3265
9
- - docs(outbound): remove example setting outbound_ip #3253
10
108
  - doc(Plugins.md): add pi-queue-kafka #3247
11
109
  - feat(rabbitmq_amqplib): configurable optional queue arguments #3239
12
110
  - feat(clamd): add x-haraka-virus header #3207
@@ -31,7 +129,6 @@
31
129
  - dep(tld): bump version to 1.2.0
32
130
  - 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
33
131
 
34
-
35
132
  ### [3.0.2] - 2023-06-12
36
133
 
37
134
  #### Fixed
@@ -55,7 +152,6 @@
55
152
  - doc(outbound.ini) update link #3159
56
153
  - doc(clamd.md) fixed spelling error #3155
57
154
 
58
-
59
155
  ### [3.0.1] - 2023-01-19
60
156
 
61
157
  #### Fixed
@@ -69,7 +165,6 @@
69
165
  - plugins: Add haraka-plugin-outbound-logger to registry #3146
70
166
  - dep(pi-spf): bump version 1.1.3 to 1.2.0
71
167
 
72
-
73
168
  ### [3.0.0] - 2022-12-17
74
169
 
75
170
  #### Added
@@ -81,7 +176,7 @@
81
176
 
82
177
  - fix(tls): redis promise syntax for tls & ob/tls #3064
83
178
  - fix(attachment): error handling with complex archive #3035
84
- - fix(smtp_client): run "secured" once, fixes #3020
179
+ - fix(smtp_client): run "secured" once, fixes #3020
85
180
  - fix(smtp_client): add missing `$` char in front of interpolated string
86
181
  - fix(auth_proxy): run "secured" only once, improvement for #3022
87
182
  - fix(helo): remove multi-check from should_skip #3041
@@ -104,16 +199,16 @@
104
199
  - style(plugin/\*): transaction guarding #3032
105
200
  - dep(spf): remove to separate plugin #3078
106
201
  - dep(iconv): removed, declared in haraka-email-message)
107
- - dep(haraka-plugin-redis)!: 1.0 -> 2.0 #3038
202
+ - dep(haraka-plugin-redis)!: 1.0 -> 2.0 #3038
108
203
  - dep(redis)!: 3.1 -> 4.1 #3058
109
204
  - dep(generic-pool): remove pooling from outbound #3115
110
205
  - smtp_client: remove smtp_\* pooling support in #3113
111
206
  - dep: bump plugin versions #3063
112
207
  - dep: bump haraka-plugin-asn from 1.0.9 to 2.0.0 #3062
113
208
  - dep(redis): 3.1 -> 4.1 #3058
114
- - dep(nopt): 5 -> 6.0.0 #3076
115
- - dep(haraka-plugin-fcrdns): 1.0.3 -> 1.1.0 #3076
116
- - dep(haraka-plugin-redis): 1.0 -> 2.0 #3038
209
+ - dep(nopt): 5 -> 6.0.0 #3076
210
+ - dep(haraka-plugin-fcrdns): 1.0.3 -> 1.1.0 #3076
211
+ - dep(haraka-plugin-redis): 1.0 -> 2.0 #3038
117
212
  - dep(nodemailer): 6.7.0 to 6.7.2 #3000, #3004
118
213
  - dep: add explicit dependency on node-gyp 9
119
214
  - ci: github action tweaks #3047
@@ -133,14 +228,13 @@
133
228
  - uribl: timeout DNS 1 second before plugin, #3077
134
229
  - uribl: load .ini config to plugin.cfg, add basic tests #3077
135
230
 
231
+ ### 2.8.28 - 2021-10-14
136
232
 
137
- ## 2.8.28 - 2021-10-14
138
-
139
- ### Changes
233
+ #### Changes
140
234
 
141
235
  - breaking: dkim.js has changed the constructor opts
142
236
  - tls_socket: more flexible pem file parsing #2986
143
- - move bad certs into different directory, avoid test suite noise
237
+ - move bad certs into different directory, avoid test suite noise
144
238
  - added ability to define a default relay in relay_dest_domains
145
239
  - spamassassin: replace msg_too_big & should_check with should_skip #2972
146
240
  - spamassassin: allow returning DENYSOFT on errors #2967
@@ -151,9 +245,9 @@
151
245
  - dep: redis is now a dependency #2896
152
246
  - use address-rfc2821 2.0.0
153
247
  - http: use CDN for bootstrap/jquery, drop bower #2891
154
- - drop support for node 10 #2890
248
+ - drop support for node 10 #2890
155
249
 
156
- ### New features
250
+ #### New features
157
251
 
158
252
  - tls: require secure and verified sockets for configured hosts/domains
159
253
  - DKIM plugin has got a couple of config options now
@@ -162,7 +256,7 @@
162
256
  - skip plugins at runtime by pushing name into transaction.skip_plugins #2966
163
257
  - outbound: add ability to specify delay times for temporary fails in `temp_fail_intervals` #2969
164
258
 
165
- ### Fixes
259
+ #### Fixes
166
260
 
167
261
  - bounce: correctly set fail recipients #2901
168
262
  - bounce: correctly set bounce recipients #2899
@@ -171,10 +265,9 @@
171
265
  - use RFC-2045 Quoted-Printable in email message body
172
266
  - use RFC-2047 Q encoded-words in email headers
173
267
 
268
+ ### 2.8.27 - 2021-01-05
174
269
 
175
- ## 2.8.27 - 2021-01-05
176
-
177
- ### Changes
270
+ #### Changes
178
271
 
179
272
  - bump verions of several dependencies #2888
180
273
  - propagate hmail notes to split copies #2887
@@ -183,1221 +276,1279 @@
183
276
  - strip _haraka-plugin-_ prefixes off plugin names in config/plugins #2873
184
277
  - pass smtp.ini config from Server into connections & transactions #2872
185
278
 
186
- ### New features
279
+ #### New features
187
280
 
188
281
  - add ability to disable SMTPUTF8 advertisement #2866
189
282
 
190
- ### Fixes
283
+ #### Fixes
191
284
 
192
285
  - assure headers.max_lines is initialized as integer #2878
193
- - require haraka-net-utils >= 1.2.2 #2876
194
-
195
-
196
- ## 2.8.26 - 2020-11-18
197
-
198
- ### Changes
199
-
200
- * add config options for OAR & AR headers #2855
201
- * plugins.js: also strip haraka-plugin prefix from plugin.name #2846
202
- * smtp_forward/spamssassin: grab refs of conn/txn to avoid crashes due to lack of existence. #2847
203
- * outbound: add extended reason to bounce message #2843
204
- * hgrep: replaced perl script with shell script #2842
205
- * connection: send temp error when requested #2841
206
- * headers: updated deprecated messages #2845
207
- * hmail: socket.on -> socket.once #2838
208
- * hmail: check for zero length queue file #2835
209
- * outbound: add os.hostname() as default for outbound HELO #2813
210
- * use node v10's mkdir instead of mkdirp #2797
211
- * CI: drop appveyor and Travis #2784
212
- * lint: add 'prefer-template'
213
- * update async to version 3.2.0 #2764
214
- * update redis to version 3.0.0 #2759
215
- * remove deprecated max_unrecognized_commands from config #2755
216
- * CI: add ES2017 support, drop node 8 #2740
217
- * fix broken bannering on nested mime parts #2736
218
- * restore TLS version info, set correctly #2723
219
- * better error message when invalid HELO hostname is rejected
220
- * bring STARTTLS "TLS NO-GO" feature in line with Outbound's #2792
221
- * add listener for secureConnect #2828
222
- * removed plugins/data.headers to haraka-plugin-headers #2826
223
- * add zero-length queue size check
224
- * send temp instead of hard error when asked to by `unrecognized_command`
225
-
226
- ### New features
227
-
228
- * Allow web interface to be bound to unix socket #2768
229
- * tls: add configurable minVersion to tls socket options #2738
230
- * connection_close_message: added ability to override close connection message replacing `closing connection. Have a jolly good day.` #2730
231
- * add JSON format for logging #2739
232
- * support binding web interface to unix socket
233
-
234
- ### Fixes
235
-
236
- * check for punycode domain names when resolving MX, avoid crash #2861
237
- * wait until entire message is spooled when spool_after in use #2840
238
- * hmail: add missing space in temp_fail emitter #2837
239
- * fix outbound config reloading after outbound split #2802
240
- * smtp_forward: remove redundant outbound hook #2796
241
- * smtp_forward: this plugin does not use the queue_outbound hook anymore #2795
242
- * Fix connection pool not being unique when hosts and ports were equal between domains #2789
243
- * fix connection pool not being unique when hosts and ports were equal between domains #2788
244
- * Fix outbound.bounce_message To: header (and add Auto-Submitted) #2782
245
- * Fix support for DKIM signing when forwarding and aliasing is enabled #2776
246
- * Better error message when EHLO hostname does not have a dot #2775
247
- * fix bannering on nested mime parts #2737
248
- * TLS: don't abort loading certs in config/tls dir when an error is encountered. Process every cert file and then emit errors. #2729
249
- * restore TLS version, correctly #2723
250
-
251
-
252
- ## 2.8.25 - 2019-10-11
253
-
254
- ### Changes
255
-
256
- * conn: remove TLS version from header #2648
257
- * Actually enforce using key for INTERNALCMD #2643
258
- * trans: assign conditions to named vars #2638
259
- * drop node.js v6 support #2632
260
- * conn: use is_local instead of localhost addr tests #2627
261
- * spamassassin: spamassassin: strip useless WS from tests #2624
262
- * es6: many updates #2615, #2674, #2680
263
- * systemctl: update service definition #2612
264
- * lint: bracket style to match newer eslint:recommended #2680
265
- * lint: use object shorthands (eslint:recommended) #2680
266
- * logger: use safer Object.prototype.hasOwnProperty #2680
267
- * outbound: permit # char in SMTP status code response #2689
268
- * dkim_sign: improve docs, add tests, es6 updates #2649
269
- * dkim_sign: restore default key signing feature #2649
270
- * tmp module: update to latest #2614
271
- * semver: update to latest #2616, #2651
272
- * async: update to latest #2653, #2664
273
- * repo cleanup: replaced deprecated plugins with list #2681
274
- * spf: es6 patterns, results.pass, test improvements, es6 patterns #2700
275
-
276
- ### New features
277
-
278
- * spf: add config option to fail on NONE #2644
279
-
280
- ### Fixes
281
-
282
- * mailheader: fully quality header name in _remove_more #2647
283
- * haraka: Connection.createConnection is not a constructor #2618
284
- * problems with japanese characters in body and part header #2675
285
- * toobusy: fix hook name (connect_pre -> connect) #2672
286
- * outbound: watch for socket timeouts #2687
287
- * outbound: permit # char prefix in SMTP status code response #2691
288
- * mailheader: strip whitespace between encoded-words #2702
289
-
290
-
291
- ## 2.8.24 - Mar 12, 2019
292
-
293
- ### Changes
294
-
295
- * early_talker: skip if sender has good karma #2551
296
- * dockerfile: update to node 10 #2552
297
- * Update deprecated usages of Buffer #2553
298
- * early_talker: extend reasons to skip checking #2564
299
- * tls: add 'ca' option (for CA root file) #2571
300
- * outbound: little cleanups #2572
301
- * smtp_client: pass pool_timeout to new SMTPClient #2574
302
- * server: default to nodes=1 (was undefined) #2573
303
- * test/server: use IPv4 127.0.0.1 instead of localhost #2584
304
- * queue/smtp_*: add v3 upgrade notice and config setting #2585
305
- * spf: use the skip config for helo/ehlo checks #2587
306
- * spf: avoid 2nd EHLO evaluation if EHLO host is identical #2592
307
- * queue.js refactoring #2593
308
- * Log dkim_sign parse errors with connection ID #2596
309
- * Update ipaddr.js to the latest version #2599
310
- * make inactivity timeout match docs #2607
311
-
312
- ### New Features
313
-
314
- * Implement SIGTERM graceful shutdown if pid is 1 #2547
315
- * tls: require validated certs on some ports with requireAuthorized #2554
316
- * spamassassin: disable checks when requested #2564
317
- * clamd: permit skipping for relay clients #2564
318
- * outbound: exported outbound.temp_fail_queue, outbound.delivery_queue and add TimerQueue.discard()
319
- * status: new plugin #2577
320
-
321
- ### Fixes
322
-
323
- * mf.resolvable: reduce timeout by one second (so < plugin.timeout) #2544
324
- * LMTP blocks under stress #2556
325
- * invalid DKIM when empty body #2410
326
- * prevent running callback multiple times on TLS unix socket #2509
327
- * add missing callback when listing queue and empty directory
328
- * correct MIME parsing when charset: utf8 and encoding: 8bit #2582
329
- * spamassassin: default check flags to true #2583
330
- * smtp_client: destroy when connection gets conn timeout error #2604
331
- * on error and timeout, remove listeners and destroy conn. #2606
332
-
333
-
334
- ## 2.8.23 - Nov 18, 2018
335
-
336
- ### Changes
337
-
338
- * tighten Haraka pattern in .gitignore #2542
339
-
340
-
341
- ## 2.8.22 - Nov 17, 2018
342
-
343
- ### New Features
344
-
345
- * enable tls/ssl for rabbitmq amqplib plugin #2518
346
-
347
- ### Fixes
348
-
349
- * hmail: don't send RSET to LMTP #2530
350
-
351
- ### Changes
352
-
353
- * clamd: add check.authenticated, check.private_ip, check.local_ip option
354
- * use get_decoded on headers that may be encoded #2537
355
- * connection: move max_mime_part config load to connection init #2528
356
- * outbound: init TLS when we send email, not when old queue file is loaded #2503
357
-
358
- ### Changes
359
-
360
- * relay: update port 465 doc #2522
361
- * hmail: log the correct err message #2531
362
- * ob/tls: consistently use obtls (vs plugin) for "this" name #2524
363
- * outbound: add domain to loginfo message #2523
364
- * Add connection.remote.is_local #2532
365
- * update license #2525
366
- * perf: move max_mime_parts config load to connection init #2529
367
- * update semver to version 5.6.0 #2517
368
- * added hint to encrypted file authentication #2514
369
- * dkim_sign: improved log messages #2499
370
- * ehlo_hello_message: config/ehlo_hello_message can be used to overwrite the EHLO/HELO msg replacing `, Haraka is at your service` #2498
371
- * connection: add connection.remote.is_local flag for detecting loopback and link local IPs
372
- * add .name to outbound TLS for logs #2492
373
-
374
- ## 2.8.21 - Jul 20, 2018
375
-
376
- ### New Features
377
-
378
- * outbound: skip STARTTLS after remote host fails TLS upgrade #2429
379
- * dns_list_base: introduce global plugin.lookback_is_rejected flag #2422
380
-
381
- ### Fixes
382
-
383
- * replace all _ chars in hostnames with code points #2485
384
- * Don't die on invalid commands #2481
385
- * outbound: check list exists before attempting to use it #2478
386
- * refactor outbound/hmail.process_ehlo_data #2488
387
- * tls: skip when redis is undefined #2472
388
- * Don't run delivered hook on LMTP fail #2470
389
- * Add tls_socket.load_tls_ini() to tls.register() #2465
390
-
391
- ### Changes
392
-
393
- * outbound/tls: make into a class #2474
394
- * plugins: clear timeout on cancel #2477
395
- * txn.parse_body consistently a boolean #2476
396
- * update ipaddr.js to version 1.8.0 #2468
397
-
398
-
399
- ## 2.8.20 - Jun 29, 2018
400
-
401
- * New Features
402
- * n/a
403
- * Fixes
404
- * data_headers: check defined-ness of hdr_address *after* try/catch #2458
405
- * tls: remove tls.ini loading from plugins/tls #2459
406
- * tls: remove invalid opt from load_tls_ini #2456
407
- * outbound: escape values in HTML bounce correctly #2446
408
- * dkim_sign: catch exceptions when address-rfc2822 fails to parse From #2457
409
- * Changes
410
- * logger: Add "obj" log param to log hook that contains log data by type #2425
411
- * logger: include outbound client ID in logging #2425
412
- * logger: allow specifying uuid in params when logging #2425
413
-
414
- ## 2.8.19 - Jun 26, 2018
415
-
416
- * New features
417
- * outbound: received_header=disabled supresses outbound Received header addition. #2409
418
- * auth_base.js: `check_plain_passwd` and `check_cram_md5_passwd` can now pass `message` and `code` to callback routine
419
- * spf: allow bypass for relay and AUTH clients #2417
420
- * spf: optionally add OpenSPF help text to rejection #2417
421
- * auth_base: prevent storing of AUTH password in connection.notes.auth_passwd by setting plugin.blackout_password. #2421
422
- * Fixes
423
- * Mitigate MIME part explosion attack #2447
424
- * Always prefix ClamAV with a Received header #2407
425
- * plugins/data.headers.js: wrap address-rfc2822 header parse into try block #2373
426
- * tls_socket: as client, only apply TLS opts if config is valid #2414
427
- * when installing, creates config/me if missing #2413
428
- * queue/qmail-queue: fix a 2nd crash bug when client disconnects unexpectedly #2360
429
- * remove desconstruction of SMTP commands to prevent exception #2398
430
- * attstream: return self so that pipe() calls can be chained together. #2424
431
- * outbound: fix dotfile cleanup to consider platform-based prefix. #2395
432
- * outbound: fix handling of LMTP socket when a socket path is specified. #2376
433
- * Changes
434
- * relay: move relay acl check to connect_init so flag is set earlier #2442
435
- * process\_title: add total recipients, avg rcpts/msg, recipients/sec cur/avg/max and messages/conn #2389
436
- * when relaying is set in a transaction, don't persist beyond the transaction #2393
437
- * connection.set supports dot delimited path syntax #2390
438
- * remove deprecated (since 2.8.16) ./dsn.js
439
- * Add transaction.msg_status property that reflects message status. #2427
440
- * Add transaction.notes.proxy object that hold HAProxy details. #2427
441
- * spamassassin: make relay header configurable. #2418
442
- * deprecate max_unrecognized_commands plugin in favor of limit. #2402
443
- * xclient: add support for DESTADDR/DESTPORT. #2396
444
-
445
- ## 2.8.18 - Mar 8, 2018
446
-
447
- * New features
448
- * smtp_forward: domain configuration is now chosen based on domain_selector #2346
449
- * Fixes
450
- * queue/qmail-queue: fix crash bug when client disconnects unexpectedly #2360
451
- * tls: fix crash bug in `unrecognized_command` hook
452
- * `dkim_key_gen.sh`: improve usability and parameter parsing #2355
453
- * Changes
454
- * document `force_shutdown_timeout` and `graceful_shutdown` settings #2350
455
-
456
- ## 2.8.17 - Feb 16, 2017
457
-
458
- * New Features
459
- * SMTPS port is configurable #2269
460
- * smtp_forward: enable_outbound can be set per domain #2335
461
- * Fixes
462
- * Fix ability to set log level to emerg #2128
463
- * outbound/hmail: use Buffer to correctly read binary file data + tests #2231
464
- * quarantine: consolidate 2x hook_init_master functions
465
- * tls_socket: restore SNI functionality, emit count of TLS certs #2293
466
- * fix smtp_client error handling #2298
467
- * fix outbound pools #2317
468
- * add openssl-wrapper as dependency #2320
469
- * replace _ chars in hostnames with code points #2324
470
- * add this.removeAllListeners('connection-error') #2323
471
- * Fix crashing on RSET #2328
472
- * Prevent data headers crit fail #2329
473
- * Fix undefined max_lines in log message #2337
474
- * Changes
475
- * line_socket: remove superfluous function #2339
476
- * consistent end of function declaration semicolon #2336
477
- * connection: assure hostname is set #2338
478
- * smtp_client: Fix log message typo #2334
479
- * Update ipaddr.js to version 1.6.0 #2333
480
- * Warn on max_header_lines #2331
481
- * update jquery version #2322
482
- * plugins: add SRS plugin to registry #2318
483
- * tls_socket: only generate dhparam.pem on master process #2313
484
- * add ENOTFOUND to also check A record #2310
485
- * smtp_forward: correct config file name in docs #2309
486
- * reduce severity of iconv conversion failure #2307
487
- * Add txn UUID to "250 Message Queued" #2305
488
- * mailheader: reduce log level priority #2299
489
- * greylist: only log redis DB errors when exist #2295
490
- * data.headers: reduce undef MLM logerror to logdebug #2294
491
- * quarantine: consolidate 2x hook_init_master() #2292
492
- * move test_queue to queue/test #2291
493
- * in haraka plugin test mode, add server.notes #2248
494
- * outbound/hmail: refactor #2238
495
- * outbound/hmail: add JSON sanity test before JSON.parse #2231
496
- * outbound/index: use newer Buffer.from syntax #2231
497
- * outbound/hmail: make haraka queue files human friendly #2231
498
- * plugins/rcpt_to.ldap -> haraka-plugin-rcpt-ldap #2144
499
- * plugins/auth/auth_ldap -> haraka-plugin-auth-ldap #2144
500
- * plugins/smtp_forward: enable_outbound can be enabled/disabled for specific domains
501
- * auth_proxy: read TLS key and cert files from tls.ini #2212
502
- * README: typo fixes #2210
503
- * incorrect RCPT TO reply message #2227
504
- * Resolve decoding bug when root part is base64 encoded. #2204
505
- * Resolve base64 data truncation #2188
506
- * Fix damaged encoding when body is non-utf #2187
507
- * Fix disconnect hooks #2184
508
- * ability to set log level to emerg #2128
509
- * Improve docs for `Address` objects #2224
510
- * connection: replace 3x ternaries with get_remote() #2169
511
- * connection.local.host populated with hostname (from config/me) #2165
512
- * connection.local.info populated with Haraka/version #2196
513
- * npm packaged plugins:
514
- * plugins/rcpt_to.ldap -> haraka-plugin-rcpt-ldap #2144
515
- * plugins/auth/auth_ldap -> haraka-plugin-auth-ldap #2144
516
- * plugins/graph -> haraka-plugin-graph #2185
517
- * config: replace ./config.js with haraka-config #2119
518
- * Replace concatenated strings with template literals (#2129) in:
519
- * attachment #2260
520
- * bin/spf #2129
521
- * bin/dkimverify #2278
522
- * connection #2129, #2243
523
- * delay_deny #2264
524
- * dkim #2216
525
- * dsn #2265
526
- * host_pool #2198, #2245
527
- * logger #2277, #2246
528
- * mailbody #2280
529
- * max_unrecognised_commands #2171
530
- * outbound/hmail #2259
531
- * outbound/index #2249
532
- * outbound/todo #2233
533
- * plugins #2239
534
- * plugins/aliases #2229
535
- * plugins/attachment #2155
536
- * plugins/auth_base #2252
537
- * plugins/avg #2156
538
- * plugins/backscatterer #2261
539
- * plugins/bounce #2229
540
- * plugins/clamd #2237
541
- * plugins/connect.rdns_access #2262
542
- * plugins/data.headers #2263
543
- * plugins/data.uribl #2258
544
- * plugins/helo.checks #2255
545
- * plugins/rcpt_to.in_host_list #2253
546
- * plugins/spamassassin #2256
547
- * plugins/profile #2170
548
- * plugins/rcpt_to.host_list_base #2254
549
- * plugins/relay #2174
550
- * plugins/relay_acl #2177
551
- * plugins/spf #2266
552
- * plugins/toobusy #2186
553
- * plugins/xclient #2159
554
- * rfc1869 #2159
555
- * smtp_client #2129, #2208
556
- * tests/host_pool #2159
557
- * use es6 destructuring (#2075) in:
558
- * connection #2230
559
- * dkim #2232
560
- * use es6 classes (#2133) in:
561
- * attachment #2260
562
- * attachment_stream #2215
563
- * chunkemitter #2219
564
- * dkim #2206
565
- * dsn #2247
566
- * host_pool #2194
567
- * mailheader #2213
568
- * mailbody #2213
569
- * smtp_client #2221
570
- * spf #2214
571
- * tls_socket #2190
572
- * timer_queue #2226
573
- * outbound/hmail #2197
574
- * outbound/todo #2233
575
- * Automatically set connection.remote.is_private when connection.remote.ip is set #2192
576
- * Add remove_msgid and remove_date options to outbound.send_email #2209
577
- * Add origin option to outbound.send_mail #2314
578
-
579
-
580
- ## 2.8.16 - Sep 30, 2017
581
-
582
- * Changes
583
- * additional tests get var -> const/let medicine #2122
584
- * move connection states into haraka-constants #2121
585
- * lint: remove useless escapes #2117
586
- * lint: switch no-var to error #2109
587
- * rspamd: repackaged as NPM module #2106
588
- * dsn: repackaged as NPM module haraka-dsn #2105
589
- * outbound: add results when queueing #2103
590
- * spamassassin: skip adding headers when value is empty #2102
591
- * Replace console.log with stdout #2100
592
- * update js-yaml to version 3.10.0 #2097
593
- * repackage p0f plugin to NPM #2076
594
- * ES6: replace var with const or let #2073
595
-
596
- * New Features
597
- * Bounces can have an HTML part #2091
598
- * Fixes
599
- * daemon cwd #2126
600
- * updated fcrdns plugin name passed to results #2115
601
- * tls: only apply default key/cert paths when undefined #2111
602
- * dkim_verify: fix formatting of auth results #2107
603
- * smtp_forward: consistently use queue.wants #2107
604
- * haraka was adding TLS header on non-TLS connection #2103
605
- * dkim typo fix #2101
606
- * fix rfc2231 parsing code to cope with continuation #2089
607
-
608
- ## 2.8.15 - Sep 10, 2017
609
-
610
- * Changes
611
- * Permit log settings to be set w/o LOG prefix #2057
612
- * additional results storing in smtp_forward and quarantine #2067
613
- * publish p0f plugin to NPM #2076
614
- * smtp_forward stores queue note at queue.wants #2083
615
- * Remove unused folders from installation #2088
616
- * smtp_forward stores queue note at queue.wants #2083
617
- * add get/set to conn/txn.notes #2082
618
- * additional results storing in smtp_forward and quarantine #2067
619
- * Permit log settings to be set w/o LOG prefix #2057
620
- * support INFO *and* LOGINFO as config settings #2056
621
- * log.ini, new default location for log related settings #2054
622
- * dcc: replace with npm packaged version #2052
623
- * qmd: replace rcpt_to.qmail_deliverable with npm #2051
624
- * rspamd: pass SPF evaluation #2050
625
- * add logfmt support #2047
626
- * update ipaddr.js to version 1.5.0 #2037
627
- * update redis to version 2.8.0 #2033
628
- * disable graceful for SIGTERM #2028
629
- * add additional integration tests #2026
630
- * move most npm packaged plugins into optionalDependencies #2023
631
- * New Features
632
- * TLS certificate directory (config/tls) #2032
633
- * plugins can specify a queue plugin & next_hop route #2067
634
- * connection/transaction notes now have get/set #2082
635
- * Fixes
636
- * haraka cli will now create folders if they don't exist #2088
637
- * maybe fix for #1852 503 response #2064
638
- * crash when 'AUTH LOGIN' is sent after a successful auth #2039
639
- * docs: fixed swaks test command #2034
640
- * dkim: prevent dkim_verify from causing 'cannot pipe' #1693
641
-
642
- ## 2.8.14 - Jul 26, 2017
643
-
644
- * Changes
645
- * Fix auth plugin failure when re-selecting auth method #2000
646
- * don't crash Haraka when invalid YAML config encountered #2013
647
- * update semver to version 5.4.0 #2015
648
- * relay docs: correct the config file name #2012
649
- * rename config/xclient.hosts to match plugin & docs #2014
650
- * build_todo() is part of the outbound/index.js api #2016
651
- * update js-yaml to version 3.9.0 #2002
652
- * outbound/hmail: use WRITE_EXCL from haraka-constants #2011
653
- * replace plugins/log.elasticsearch with npm packaged #2004
654
- * Remove two spurious log statements #1989
655
- * access: rebuild blacklist upon change (vs supplement) #1990
656
- * deliver to qmail-queue with LF line endings (not CRLF) #1997
657
- * doc: add note that smtp_forward only supports STARTTLS #1988
658
- * import Plugins.md from v3 #1991
659
- * update async to 2.5.0 #1982
660
- * update iconv to 2.3.0 #1981
661
- * require node.js v6+ #1958
662
- * update ipaddr.js to 1.4.0 #1972
663
- * support newer address-rfc2822 #1970
664
- * update node-address-rfc2821 version to 1.1.1 #1968
665
- * outbound: be consistent with todo.domain #1960
666
- * bump haraka-results required version #1949
667
- * logger: load in a setImmediate call #1948
668
- * logger: strip intermediate \n chars #1947
669
- * tls consistency cleanups #1851
670
- * Get pool config handling simplifcation #1868
671
- * add integration test: send message w/smtp_client
672
- * replace some legacy code with es6 #1862
673
- * update async to version 2.2.0 #1863
674
- * update ipaddr.js to version 1.3.0 #1857
675
- * update redis to version 2.7.0 #1854
676
- * assure conn/tran still exists before storing results #1849
677
- * moved tls.ini parsing to net_utils #1848
678
- * smtp forward dest split routing #1847
679
- * rspamd: refactor complex condition into function #1840
680
- * block js attachments #1837
681
- * helo.checks: bring plugin into alignment with docs #1833
682
- * when proxy enabled, update remote.is_private too #1811
683
- * create an outbound queue filename handler #1792
684
- * replace fcrdns with npm package #1810
685
- * add an additional node_modules plugin search path #1805
686
- * Set graceful shutdown off by default #1927
687
- * Allow outbound pools to be disabled #1917
688
- * Outbound split and move into folder #1850
689
- * don't emit binary characters into the logs #1902
690
- * Add .editorconfig #1884
691
- * tls: remove interim variables #1871
692
- * New Features
693
- * Use punycode domain (support SMTPUTF8) #1944
694
- * Added RabbitMQ vhost support #1866
695
- * clamav: allow "Unknown Result" and Socket Error to try next host #1931
696
- * outbound client certificates #1908
697
- * Implement the missing upgrade method on SMTPClient #1901
698
- * Remove typo from relay.md #1886
699
- * Fixes
700
- * outbound: fix queue not loaded for single process #1941
701
- * outbound: Fix undefined variable platformDOT in hmail.js #1943
702
- * outbound: fix undefined FsyncWriteStream var #1953
703
- * Fix cluster messaging for node v6+ #1938
704
- * outbound: fix loading under cluster. #1934
705
- * Check pool exists before delete #1937
706
- * be more strict in attachment filename matching #1957
707
- * doc typo fix #1963
708
- * RabbitMQ: fix encoding of user and password string #1964
709
- * spf: improve modifier regexp #1859
710
- * rabbitmq doc typo in config file name #1865
711
- * URL to manual was 404, point to Plugins.md #1844
712
- * smtp_client: set idleTimeout to 1s < pool_timeout #1842
713
- * fix broken continuations #1843
714
- * doc error for the 'check.authenticated' setting in rspamd plugin #1834
715
- * emit _the_ result, not all of them #1829
716
- * fix outbound logger #1827
717
- * fix forwarding with client auth over TLS (forward to gmail) #1803
718
- * Don't blow the stack on qstat #1930
719
- * run dumped logs through log plugins, not console #1929
720
- * Fix path parsing bug on Windows platform #1919
721
- * helo: make sure list_re is defined before access #1903
722
- * TLS: handle case where OCSP server is unavailable #1880
723
- * rspamd: add missing 'default' keyword #1856
724
- * disable naïve comment stripping #1876
725
-
726
- ## 2.8.13 - Feb 03, 2017
727
-
728
- * Changes
729
- * new [haraka-plugin-limit](https://github.com/haraka/haraka-plugin-limit) #1785
730
- * replaces plugin/limit, plugin/rate_limit, and haraka-plugin-outbound-rate-limit
731
- * p0f: skip on private IPs (normally empty) #1758
732
- * spf: skip for outbound when context != myself #1763
733
- * redis: plugins using redis can inherit redis config #1777
734
- * redis: replace plugins/redis with haraka-plugin-redis #1786
735
- * lint: require space before function declaration #1784
736
- * lint: added eslint:recommended #1790
737
- * logger: remove logger.colorize code for legacy node versions
738
- * New Features
739
- * redis: add `redis_subscribe_pattern()` #1766
740
- * queue/discard: add ENV that permits discarding #1791
741
- * Improvements
742
- * rspamd: improve response parsing #1770
743
- * restore Windows testing to working state #1755
744
- * elasticsearch: use UTC dates for index creation #1771
745
- * tls: fix dhparam usage example syntax #1774
746
- * typo: logerr -> logerror #1776
747
- * when generating long DKIM keys, include a BIND compatible folded key #1775
748
- * in haraka-test-fixtures, access results via fixtures.results #1783
749
- * integration test: end to end server testing #1791
750
- * Bug Fixes
751
- * spf: restore functionality for relay context=myself #1759
752
- * rate_limit:if incr creates a new record, assure it has a TTL #1781
753
- * tls: do not create a top level secureContext #1787
754
- * dnswl: swap lines to fix missing inherited methods #1793
755
- * dnswl: fix config loader callback syntax #1794
756
- * tests/plugins: unset process.env.HARAKA to avoid side effects that interfere with other tests
757
- * remove auth_flat_file sample auth user #1796
758
-
759
-
760
- ## 2.8.12 - Jan 03, 2017
761
-
762
- * Changes
763
- * plugin/karma -> npm packaged haraka-plugin-karma #1747
764
- * update generic-pool 2.4.2 -> 2.5.0
765
- * New Features
766
- * Added option to bypass SpamAssassin headers' merge #1745
767
- * Improvements
768
- * reduce severity of debug message #1744
769
- * fix misleading entries in config/tls.ini #1734
770
- * Misc. performance improvements #1738
771
- * set tls.sessionIdContext property (for Thunderbird compat) #1740
772
- * Bug Fixes
773
- * Swap lines to avoid clobbering response array #1743
774
-
775
-
776
- ## 2.8.11 - Nov 24, 2016
777
-
778
- * Changes
779
- * rename core_require to haraka_require #1708
780
- * move log.syslog to haraka-plugin-syslog #1698
781
- * remove tls.ini loading and is_no_tls_host to net_utils #1690
782
- * replace ./utils with npm packaged haraka-utils #1720
783
- * require node 4
784
- * karma: add .top TLD scoring #1714
785
-
786
- * New Features
787
- * Implement OCSP Stapling #1724
788
-
789
- * Improvements
790
- * show help for npm packaged plugins included in core #1698
791
- * use tls.connect for client #1682
792
- * bring port 465 SMTPS TLS config support on par with STARTTLS #1667
793
- * use tls.connect instead of createSecurePair #1678
794
- * redis: improve error handling in tests #
795
- * replace / path seperators with path.\* for cross platform compat #1713
796
-
797
- * Bug Fixes
798
- * dkim_sign: per-domain key finding fixed #1707
799
- * Rspamd: restore spam report header #1702
800
- * auth/vpopmail: do not toString() when null #1695
801
- * fix outbound to avoid recursive reading key/cert after refactoring #1692
802
- * tls: fix option servername (not hostname) #1728
803
- * correct Auth-Results cleaning #1726
804
- * fix results for connection.remote_host and NXDOMAIN #1716
805
-
806
-
807
- ## 2.8.10 - Oct 20, 2016
808
-
809
- * Changes
810
- * use standard npm syntax for lint and tests #1646
811
- * remove ./net_utils to haraka-net-utils #1644
812
- * remove incorrect and unused spf.hello_host #1635
813
- * remove rogue DENYSOFT copy-pasta error #1634
814
- * update async to v2 #1545
815
- * remove plugin/dir support from base haraka #1668
816
- * use node_modules_dir support instead
817
- * use TLSSocket instead of createSecurePair #1672
818
- * refactor plugins/tls #1670
819
- * moved watch plugin to npm as haraka-plugin-watch #1657
820
- * normalize proxy properties #1650
821
-
822
- * New Features
823
- * added connection.remote.is_private boolean #1648
824
- * added additional TLS options (@typingArtist) #1651
825
- * added wildcard boolean support to config loader #1680
826
- * tls: allow multiple key and cert parameters for RSA+ECDSA #1663
827
- * permit specifying haraka plugins w/o haraka-plugin- prefix #1645
828
- * in config/plugins and resultstore
829
-
830
- * Improvements
831
- * connection.geoip replaced by haraka-plugin-geoip #1645
832
- * connection.asn replaced by haraka-plugin-asn #1645
833
- * permit specifying npm packaged plugins w/o haraka-plugin prefix #1647
834
- * normalized connection properties #1547, #1577
835
- * Rspamd: fix spambar for negative scores #1630
836
- * set connection.remote.is_private early
837
- * replace calls to net_utils with remote.is_private test
838
-
839
- * Bug Fixes
840
- * Tidy-up graceful shutdown and fix for non-cluster mode #1639
841
- * Fix data.headers plugin crash #1641
842
- * Fix access plugin crash #1640
843
- * Minor DKIM fix #1642
844
- * do not set TLS timer if timeout=0 #1632
845
- * do not overwrite config/host_list on install #1637
846
- * correct smtp_forward cfg for multiple rcpts #1680
847
- * fix TLS timeout errors #1665
848
-
849
-
850
- ## 2.8.9 - Oct 02, 2016
851
-
852
- * Changes
853
-
854
- * New Features
855
- * Support outbound.pool_timeout of 0 to effectively disable pooling. #1561
856
- * Added never_add_headers option to rspamd plugin. #1562
857
- * rcpt_to.routes URI format w/ LMTP support #1568
858
-
859
- * Improvements
860
- * The delay_deny plugin now has a whitelist mode (vs blacklist). #1564
861
- * Don't show the private key in logs for dkim_sign. #1565
862
- * update geoip for compat with newer ES (#1622)
863
- * drop node 0.10 testing / official support (#1621)
864
- * watch plugin displays UUIDs as URL (#1624)
865
- * Catch errors on header decode in rfc2231 #1599
866
- * Attachment plugin updates (#1606)
867
- * add outbound.ini pool_timeout example setting #1584
868
-
869
- * Bug Fixes
870
- * Fixed some small documentation issues. #1573, #1616, #1612
871
- * Fixed AUTH PLAIN when it spreads over two lines. #1550
872
- * Fixed dkim_verify calling next() too soon. #1566
873
- * Fixed bugs with outbound pools who shutdown before we QUIT. #1561, #1572
874
- * outbound issues #1615, #1603
875
- * Fixed adding/removing headers in rspamd plugin. #1562
876
- * Fixed process_title not shutting down. #1560
877
- * fix a spurious error emitted by p0f (#1623)
878
- * fix header version hiding (#1617)
879
- * messagestream returns destination (#1610)
880
- * plugins.getdenyfn now passed 3rd params arg (#1591)
881
- * Fix scope of spf logdebug (#1598)
882
- * fix rabbitmq deliveryMode bug (#1594)
883
- * fix dkim_sign TypeError with null mail_from.host (#1592)
884
- * fix dkim_sign attempting to lower an undefined (#1587)
885
-
886
- ## 2.8.8 - Jul 20, 2016
887
-
888
- * Changes
889
- * removed UPGRADE.doc to [wiki](https://github.com/haraka/Haraka/wiki/Upgrade-Haraka)
890
-
891
- * Improvements
892
- * support + wildcard in aliases plugin #1531
893
- * Support dkim_sign with outbound.send_email() #1512
894
- * spf: always check remote IP, then public IP if != pass #1528
895
- * spf: diplay IP used for SPF eval #1528
896
-
897
- * Bug Fixes
898
- * handle missing wss section in http.ini #1542
899
- * fix leak on socket write error #1541
900
- * add results property to outbound transaction #1535
901
- * don't unref unref'd wss server #1521
902
-
903
- ## 2.8.7 - Jun 18, 2016
904
-
905
- * Changes
906
- * Fix geoip test
907
-
908
- * Improvements
909
- * Allow alias plugin to explode to a list of aliases
910
- * Support IPv6 literals in HELO tests (#1507 thanks @gramakri)
911
- * Make ldap plugin use the modified address if a rcpt hook
912
- changes it (#1501 thanks @darkpixel)
913
-
914
- * Bug Fixes
915
- * Fix loading plugins as npm modules (#1513)
916
- * More DKIM fixes (#1506 thanks @zllovesuki)
917
- * Fix the long failing host-pool-timer test (#1508)
918
- * Fix clean shutdown of redis with new shutdown code
919
- (#1504 and #1502 thanks @darkpixel)
920
- * More fixes to clean shutdown (#1503)
921
-
922
- ## 2.8.6 - Jun 06, 2016
923
-
924
- * Bug Fixes
925
- * Fix loading under Node v4 which sends a blank message
926
- * Fix quit (SIGINT) when running without nodes=
927
-
928
- ## 2.8.5 - Jun 04, 2016
929
-
930
- * Changes
931
- * The connection object is now passed to `get_plain_passwd`. Older
932
- modules should continue to work as-is.
933
- * The reseed_rng plugin now just uses the Crypto module from core.
934
- Though it seems this plugin should be irrelevant with newer versions
935
- of node.js
936
-
937
- * New Features
938
- * Outbound mail now uses pooled connections, only sending a `QUIT`
939
- message if the connection has been idle for a while.
940
-
941
- * Improvements
942
- * Shut down and reload (via `haraka -c <path> --graceful`) is now
943
- graceful - allowing current connections to finish and plugins
944
- to clean up before ending.
945
-
946
- * Bug Fixes
947
- * Bind maxmind version to ignore API change (#1492)
948
- * Fix encodings when banners are used (#1477)
949
- * Various DKIM fixes (#1495)
950
-
951
- ## 2.8.4 - May 24, 2016
952
-
953
- * Bug Fixes
954
- * Fix plugin loading override when installed (#1471)
955
-
956
- ## 2.8.3 - May 18, 2016
957
-
958
- * Bug Fixes
959
- * Fix config overriding for core modules (#1468)
960
-
961
- ## 2.8.2 - May 17, 2016
962
-
963
- * Changes
964
- * Added Node v6 to travis tests
965
-
966
- * New Features
967
- * Added bin/haraka --qunstick <domain> to flush all mails
968
- for that domain (#1460)
969
-
970
- * Improvements
971
- * Make bin/haraka --qlist show much more information (#1452)
972
- * Allow CIDR ranges in no_tls_hosts (#1450)
973
-
974
- * Bug Fixes
975
- * 2.8.0 was shipped with a broken config/plugins. (#1453)
976
- * Stop haraka dying when ldap connections fail (#1456)
977
- * Pick up domain specific config correctly in ldap (#1456)
978
-
979
- ## 2.8.0 - May 06, 2016
980
-
981
- * Changes
982
- * updated dependency versions (#1426, #1425)
983
- * use utf8 encoding for body filters (#1429)
984
- * remove spameatingmonkey from tests (#1421)
985
- * replace ./constants.js with haraka-constants (#1353)
986
- * Document HMail and TODO items (#1343)
987
- * Copy only a minimal config/\* by default (#1341).
988
- * cfreader/\* removed to haraka/haraka-config (#1350)
989
- * outbound and smtp_client honor tls.ini settings (#1350)
990
- * outbound TLS defaults to enabled
991
- * lint: remove all unused variables (#1358)
992
- * replace ./address.js with address-rfc2181 (#1359)
993
-
994
- * New Features
995
- * smtp_forward: accepts a list of backend hosts, thanks @kgeoss (#1333)
996
- * config: add array[] syntax to INI files (#1345)
997
- * plugins.js: support require('./config') in plugins
998
- * Load plugin config from own folder and merge (#1335)
999
- * Allow original email's Subject to be included in bounce message (#1337)
1000
- * new queue/smtp_bridge plugin, thanks @jesucarr (#1351)
1001
-
1002
- * Improvements
1003
- * early_talker: supports IP whitelisting (#1423)
1004
- * loading plugins as packages (#1278)
1005
- * removed TLD stuff to haraka/haraka-tld (#1301)
1006
- * removed unused 'require('redis') in plugins/karma (#1348)
1007
- * improved MIME header support per rfc2231 (#1344)
1008
- * tls options can be defined for outbound and smtp\_\* (#1357)
1009
- * explicitly disable SSLv2 (#1395)
1010
- * cache STUN results
1011
- * xclient plugin improvements (#1405)
1012
- * tls: Set verify=NO correctly when no certificate presented (#1400)
1013
- * improved message header decoding (#1403, #1406)
1014
- * bounce: skip single_recipient check for relays/private_ips (#1385)
1015
- * rspamd docs: Clarify usage of check.private_ip (#1383)
1016
- * if rcpt_to returns DSN in msg, log it properly (#1375)
1017
-
1018
- * Bug Fixes
1019
- * fix out-of-range errors from banner insertion (#1334)
1020
- * dkim_verify: Call next only after message_stream ended (#1330)
1021
- * outbound: remove type check from pid match (#1322)
1022
- * lint: enable no-shadown and remove all shadow variables (#1349)
1023
- * spf: fix log_debug syntax (#1416)
1024
- * auto_proxy: fix a starttls loop (#1392)
1025
- * fcrdns: corrected err variable name (#1391)
1026
- * rspamd: Fix undefined variable (#1396)
1027
- * dkim_verify: Fix header handling (#1371)
1028
- * smtp_client: fix remote_ip (#1362)
1029
-
1030
-
1031
- ## 2.7.3 - Feb 04, 2016
1032
-
1033
- * Changes
1034
- * smtp_proxy & qmail-queue: default to enabled for outbound deliveries
1035
- (previously used Outbound), to better matches user expectations.
1036
-
1037
- * New Features
1038
- * outbound: allow passing notes to send_email (#1295)
1039
-
1040
- * Improvements
1041
- * logging: emit log message queue before shutting down (#1296)
1042
- * result_store: permit redis pub/sub to work when host != localhost (#1277)
1043
- * tests: quiet the extremely verbose messages (#1282)
1044
- * rspamd: add timeout error handling (#1276)
1045
- * watch: fix display of early_talker results (#1281)
1046
- * spamassassin: publish results to result_store (#1280)
1047
- * karma: can now connect to redis on hosts other than localhost (#1275)
1048
- * geoip & p0f: don't log empty/null values from RFC 1918 connects (#1267)
1049
- * redis: make plugin params match docs (#1273)
1050
- * mailbody: small refactoring (#1315)
1051
- * smtp_proxy & qmail-queue: default to enabled for outbound (#1308)
1052
-
1053
- * Bug Fixes
1054
- * redis: use correct path for db.select (#1273)
1055
- * count errors correctly (#1274)
1056
- * logger: ignore null arguments (#1299)
1057
- * connection: pause for hook_reset_transaction (#1303)
1058
- * rcpt_to.routes: update redis usage for compat with redis plugin (#1302)
1059
- * smtp_forward: use correct config path to auth settings (#1327)
1060
- * messagestream: correctly pass options parameter to get_data (#1316)
1061
- * spf: honour configuration for mfrom scope (#1322)
1062
- * outbound: Add missing dash to 'Final-Recipient' header name (#1320)
1063
-
1064
-
1065
- ## 2.7.2 - Dec 15, 2015
1066
-
1067
- * Bug Fixes
1068
- * Revert a change that broke plugin loading
1069
-
1070
-
1071
- ## 2.7.1 - Dec 14, 2015
1072
-
1073
- * New Features
1074
- * added debian init.d file (#1255) @slattery
1075
-
1076
- * Improvements
1077
- * smtp_forward auth settings now work (#430)
1078
- * better handling of broken messages (#1234)
1079
- * Docker: use latest Phusion image && stdout (#1238, #1239)
1080
- * Clean up plugin loading a tiny bit (#1242)
1081
- * make dkim keydir case insensitive (1251)
1082
- * ignore DNS errors that aren't errors (#1247)
1083
- * outbound doc updates (#1258) @Currerius
1084
- * outbound: return DENYSOFT on queue error (#1264)
1085
- * smtp_client: if enable_tls is set and TLS files missing, warn (#1266)
1086
-
1087
- * Bug Fixes
1088
- * Don't sent empty headers to rspamd (#1230)
1089
- * Fix auth_base.js key need to be a string - number.toString() (#1228)
1090
- * fix bug with empty charset= on mime parts … (#1225)
1091
- * Fix "passwd" check crash with numeric password. (#1254)
1092
- * result_store: show arrays when not empty (#1261)
1093
-
1094
-
1095
- ## 2.7.0 - Oct 07, 2015
1096
-
1097
- * New Features
1098
- * SPF bounce check
1099
- * rspamd plugin (@fatalbanana)
1100
- * watch plugin
1101
- * limit plugin (connection concurrency, errors, unrecognized commands)
1102
- * plugins can now be npm packages (see also #946)
1103
- * built-in HTTP server (Express backed)
1104
- * ESETS AV plugin
1105
- * DCC plugin (incomplete)
1106
- * Add LOGIN support to XCLIENT
1107
- * backscatterer plugin
1108
- * full IPv4 & IPv6 compatibility inbound #1120, #1123, #1154 (@Dexus)
1109
- * Early talker #1075 (@smfreegard, @msimerson)
1110
- * permit loading of plugins in node_modules #1056 (@msimerson)
1111
-
1112
- * Improvements
1113
- * Fix anti_spoof by use config #1171
1114
- * Add license clause #1170
1115
- * package.json dependencies and travis update #1147, #1168 (@Dexus)
1116
- * logging: remove node-syslog and strong-fork-syslog with modern-syslog #1145 (@Dexus)
1117
- * aliases: support for email, user and host aliases #1149 (@Dexus)
1118
- * add docs for use private key with TLS #1130 (@Dexus)
1119
- * outbound: ENOENT on dotfile - compatibility for windows #1129 (@Dexus)
1120
- * plugin/attachment: block more attachment file types #1191 (@Dexus)
1121
- * remove double functions #1126 (@Dexus)
1122
- * Outbound Bounce messages according to RFC3464 #1189 (@hatsebutz)
1123
- * toobusy: only run checks if toobusy.js installed and loads
1124
- * HAProxy: set local_ip, local_port and remote_port
1125
- * save auth pass/fail/user to result_store
1126
- * ini files no longer require values (useful for storing lists)
1127
- * connection: add MAIL and RCPT to results
1128
- * results_store: enable 'emit' feature for .push()
1129
- * add support for custom Outbound Received header value (@zombified)
1130
- * save smtp_forward result to result_store
1131
- * auth_base: permit a return message (@DarkSorrow)
1132
- * add DSN.create() and RFC 4954 support
1133
- * enhanced pipelining support
1134
- * added config/access.domains with some tips (@EyePulp)
1135
- * Add SSL detection over plain-text socket
1136
- * earlytalker: store results
1137
- * bounce: make it safe to check non_local_msgid
1138
- * AVG: store results, added defer options
1139
- * tls: change createCredentials to tls.createSecureContext (@DarkSorrow)
1140
- * update dependency versions (esp async 0.2.9 -> 1.0.0)
1141
- * ASN docs: add FTP download note for routeviews
1142
- * karma: removed concurrency limits (see limit plugin) and penalty feature
1143
- * added utils.elapsed()
1144
- * deny message includes hostname
1145
- * Add Fisher-Yates shuffle to randomize lookup order in data.uribl
1146
- * change default message size limit to 25mb
1147
- * auth_base: save auth results
1148
- * upgrade toobusy plugin to toobusy-js (@alexkavon)
1149
- * configfile: permit / char in ini keys
1150
- * added utils.node_min()
1151
- * added result_store.get_all()
1152
- * updated ubuntu upstart script
1153
- * plugin/rate_limit: return in no custom default is set 0 = unlimited #1186, #1185
1154
- * Outbound.send_email: added dot-stuffing #1176, #1165 (@hatsebutz)
1155
- * make sure server object is availabe to plugins loaded from node_modules #1162 (@bmonty)
1156
- * Net_utils.get_ips_by_host #1160 (@msimerson)
1157
- * fcrdns: don't log error for ENODATA #1140 (@msimerson)
1158
- * improve MUA detection #1137 (@msimerson)
1159
- * tls: tmp disable for hosts that fail STARTTLS #1136 (@msimerson)
1160
- * karma: skip deny on outbound hooks #1100 (@msimerson)
1161
- * Store HAProxy IP in connection object #1097 (@smfreegard)
1162
- * Remove UUID from queued message #1092 (@smfreegard)
1163
-
1164
- * Bug Fixes
1165
- * fix windows build and test failures #1076 (@msimerson)
1166
- * Fix plugin ordering #1081 (@smfreegard)
1167
- * Fix distance reporting to X-Haraka-GeoIP for geoip-lite #1086 (@smfreegard)
1168
- * uribl: prevent calling next() more than 1x #1138 (@msimerson)
1169
- * Fix so constants are imported when plugin is loaded from node_modules. #1133 (@bmonty)
1170
- * Include STMP-code in bounce-reason string for upstream 5XX responses #1117 (@hatsebutz)
1171
- * TLS fixes: add timed_out flag and karma should not run deny hook on it. #1109 (@smfreegard)
1172
- * Fix port to number instead of string for HAProxy #1108 (@DarkSorrow)
1173
- * Plugin dcc: fixed syntax error #1164 (@hatsebutz)
1174
- * config: fix flat files if \r\n lines #1187 (@Dexus)
1175
- * corrected hook_rcpt log code hook_rcpt_ok returns CONT
1176
- * fix crash bug when loglevel = LOGDEBUG
1177
- * corrected pathname in rcpt.ldap plugin (@abhas)
1178
- * added helo.checks boolean for proto_mismatch
1179
- * make rate_limit redis keys always expire @celesteking
1180
- * dkim_sign: Buffer.concat expects an array of buffers
1181
- * transaction: check discard_data before adding line end (@DarkSorrow)
1182
- * fix 8-bit msg not displayed properly in gmail
1183
- * fcrdns: always init results
1184
- * TLS timer on error
1185
- * dkim_verify: fixed timeout issue
1186
- * smtp\_[proxy|forward]: correct authentication example
1187
- * Fork child workers after init_master hook
1188
- * connection: return 450/550 for plugin DENY\* (was 452/552)
1189
- * spamassassin: don't call next() when transaction gone
1190
- * outbound: fix crash when sending bounce mail
1191
- * auth_base: fix bad protocol in auth_base.js #1121 (@Dexus)
1192
- * outbound: Fix HELO/rDNS issue while using multiple outbound ip #1128 (@Dexus)
1193
- * connection: Fix bug when client disconnect after sending data #1193
1194
- * Fix connect.geoip bug #1144 (@smfreegard)
1195
- * Fix tiny bug in messagesniffer #1198 (@smfreegard)
1196
-
1197
- ## 2.6.1 - Mar 27, 2015
1198
-
1199
- * added sedation timers for config file re-reading
1200
- * Add AUTH support to outbound
1201
- * tests/spf: quiet excessive DEBUG noise
1202
- * allow domains with underscore
1203
- * correct name of domains config file in access
1204
- * Fix SMTP AUTH in smtp_forward/proxy and add docs
1205
- * Fix opts not being passed to HMailItem \_bounce function
1206
- * log.syslog will try strong-fork-syslog (for node 0.12 compat)
1207
- * improvements to Plugin docs
1208
- * rename net_utils.is_rfc1918 -> is_private_ip
1209
- * IPv6 compat
1210
- * test coverage
1211
- * add IPv6 unique local fc00::/7
1212
- * pre-populated config/plugins
1213
- * added utils.extend, copies props onto objects
1214
-
1215
- ## 2.6.0 - Feb 21, 2015
1216
-
1217
- * other bug fixes
1218
- * updated a few tests so test suite passes on Windows
1219
- * log.syslog: handle failure to load node-syslog
1220
- * plugin directory is $ENV definable (@martin1yness)
1221
- * logging timestamps were static, fixed by @cloudbuy
1222
- * queue/rabbitmq_amqplib, new plugin for RabbitMQ using amqplib (@esevece)
1223
- * outbound:
1224
- * plugins can set the outbound IP (during get_mx)
1225
- * only replace line endings if not \r\n
1226
- * bannering fixes
1227
- * added support for per recipient routes
1228
- * tls: don't register hooks upless certs exist
1229
- * removed contrib/geolite-mirror-simple.pl (replaced by
286
+ - require haraka-net-utils >= 1.2.2 #2876
287
+
288
+ ### 2.8.26 - 2020-11-18
289
+
290
+ #### Changes
291
+
292
+ - add config options for OAR & AR headers #2855
293
+ - plugins.js: also strip haraka-plugin prefix from plugin.name #2846
294
+ - smtp_forward/spamssassin: grab refs of conn/txn to avoid crashes due to lack of existence. #2847
295
+ - outbound: add extended reason to bounce message #2843
296
+ - hgrep: replaced perl script with shell script #2842
297
+ - connection: send temp error when requested #2841
298
+ - headers: updated deprecated messages #2845
299
+ - hmail: socket.on -> socket.once #2838
300
+ - hmail: check for zero length queue file #2835
301
+ - outbound: add os.hostname() as default for outbound HELO #2813
302
+ - use node v10's mkdir instead of mkdirp #2797
303
+ - CI: drop appveyor and Travis #2784
304
+ - lint: add 'prefer-template'
305
+ - update async to version 3.2.0 #2764
306
+ - update redis to version 3.0.0 #2759
307
+ - remove deprecated max_unrecognized_commands from config #2755
308
+ - CI: add ES2017 support, drop node 8 #2740
309
+ - fix broken bannering on nested mime parts #2736
310
+ - restore TLS version info, set correctly #2723
311
+ - better error message when invalid HELO hostname is rejected
312
+ - bring STARTTLS "TLS NO-GO" feature in line with Outbound's #2792
313
+ - add listener for secureConnect #2828
314
+ - removed plugins/data.headers to haraka-plugin-headers #2826
315
+ - add zero-length queue size check
316
+ - send temp instead of hard error when asked to by `unrecognized_command`
317
+
318
+ #### New features
319
+
320
+ - Allow web interface to be bound to unix socket #2768
321
+ - tls: add configurable minVersion to tls socket options #2738
322
+ - connection_close_message: added ability to override close connection message replacing `closing connection. Have a jolly good day.` #2730
323
+ - add JSON format for logging #2739
324
+ - support binding web interface to unix socket
325
+
326
+ #### Fixes
327
+
328
+ - check for punycode domain names when resolving MX, avoid crash #2861
329
+ - wait until entire message is spooled when spool_after in use #2840
330
+ - hmail: add missing space in temp_fail emitter #2837
331
+ - fix outbound config reloading after outbound split #2802
332
+ - smtp_forward: remove redundant outbound hook #2796
333
+ - smtp_forward: this plugin does not use the queue_outbound hook anymore #2795
334
+ - Fix connection pool not being unique when hosts and ports were equal between domains #2789
335
+ - fix connection pool not being unique when hosts and ports were equal between domains #2788
336
+ - Fix outbound.bounce_message To: header (and add Auto-Submitted) #2782
337
+ - Fix support for DKIM signing when forwarding and aliasing is enabled #2776
338
+ - Better error message when EHLO hostname does not have a dot #2775
339
+ - fix bannering on nested mime parts #2737
340
+ - TLS: don't abort loading certs in config/tls dir when an error is encountered. Process every cert file and then emit errors. #2729
341
+ - restore TLS version, correctly #2723
342
+
343
+ ### 2.8.25 - 2019-10-11
344
+
345
+ #### Changes
346
+
347
+ - conn: remove TLS version from header #2648
348
+ - Actually enforce using key for INTERNALCMD #2643
349
+ - trans: assign conditions to named vars #2638
350
+ - drop node.js v6 support #2632
351
+ - conn: use is_local instead of localhost addr tests #2627
352
+ - spamassassin: spamassassin: strip useless WS from tests #2624
353
+ - es6: many updates #2615, #2674, #2680
354
+ - systemctl: update service definition #2612
355
+ - lint: bracket style to match newer eslint:recommended #2680
356
+ - lint: use object shorthands (eslint:recommended) #2680
357
+ - logger: use safer Object.prototype.hasOwnProperty #2680
358
+ - outbound: permit # char in SMTP status code response #2689
359
+ - dkim_sign: improve docs, add tests, es6 updates #2649
360
+ - dkim_sign: restore default key signing feature #2649
361
+ - tmp module: update to latest #2614
362
+ - semver: update to latest #2616, #2651
363
+ - async: update to latest #2653, #2664
364
+ - repo cleanup: replaced deprecated plugins with list #2681
365
+ - spf: es6 patterns, results.pass, test improvements, es6 patterns #2700
366
+
367
+ #### New features
368
+
369
+ - spf: add config option to fail on NONE #2644
370
+
371
+ #### Fixes
372
+
373
+ - mailheader: fully quality header name in \_remove_more #2647
374
+ - haraka: Connection.createConnection is not a constructor #2618
375
+ - problems with japanese characters in body and part header #2675
376
+ - toobusy: fix hook name (connect_pre -> connect) #2672
377
+ - outbound: watch for socket timeouts #2687
378
+ - outbound: permit # char prefix in SMTP status code response #2691
379
+ - mailheader: strip whitespace between encoded-words #2702
380
+
381
+ ### 2.8.24 - Mar 12, 2019
382
+
383
+ #### Changes
384
+
385
+ - early_talker: skip if sender has good karma #2551
386
+ - dockerfile: update to node 10 #2552
387
+ - Update deprecated usages of Buffer #2553
388
+ - early_talker: extend reasons to skip checking #2564
389
+ - tls: add 'ca' option (for CA root file) #2571
390
+ - outbound: little cleanups #2572
391
+ - smtp_client: pass pool_timeout to new SMTPClient #2574
392
+ - server: default to nodes=1 (was undefined) #2573
393
+ - test/server: use IPv4 127.0.0.1 instead of localhost #2584
394
+ - queue/smtp_*: add v3 upgrade notice and config setting #2585
395
+ - spf: use the skip config for helo/ehlo checks #2587
396
+ - spf: avoid 2nd EHLO evaluation if EHLO host is identical #2592
397
+ - queue.js refactoring #2593
398
+ - Log dkim_sign parse errors with connection ID #2596
399
+ - Update ipaddr.js to the latest version #2599
400
+ - make inactivity timeout match docs #2607
401
+
402
+ #### New Features
403
+
404
+ - Implement SIGTERM graceful shutdown if pid is 1 #2547
405
+ - tls: require validated certs on some ports with requireAuthorized #2554
406
+ - spamassassin: disable checks when requested #2564
407
+ - clamd: permit skipping for relay clients #2564
408
+ - outbound: exported outbound.temp_fail_queue, outbound.delivery_queue and add TimerQueue.discard()
409
+ - status: new plugin #2577
410
+
411
+ #### Fixes
412
+
413
+ - mf.resolvable: reduce timeout by one second (so < plugin.timeout) #2544
414
+ - LMTP blocks under stress #2556
415
+ - invalid DKIM when empty body #2410
416
+ - prevent running callback multiple times on TLS unix socket #2509
417
+ - add missing callback when listing queue and empty directory
418
+ - correct MIME parsing when charset: utf8 and encoding: 8bit #2582
419
+ - spamassassin: default check flags to true #2583
420
+ - smtp_client: destroy when connection gets conn timeout error #2604
421
+ - on error and timeout, remove listeners and destroy conn. #2606
422
+
423
+ ### 2.8.23 - Nov 18, 2018
424
+
425
+ #### Changes
426
+
427
+ - tighten Haraka pattern in .gitignore #2542
428
+
429
+ ### 2.8.22 - Nov 17, 2018
430
+
431
+ #### New Features
432
+
433
+ - enable tls/ssl for rabbitmq amqplib plugin #2518
434
+
435
+ #### Fixes
436
+
437
+ - hmail: don't send RSET to LMTP #2530
438
+
439
+ #### Changes
440
+
441
+ - clamd: add check.authenticated, check.private_ip, check.local_ip option
442
+ - use get_decoded on headers that may be encoded #2537
443
+ - connection: move max_mime_part config load to connection init #2528
444
+ - outbound: init TLS when we send email, not when old queue file is loaded #2503
445
+ - relay: update port 465 doc #2522
446
+ - hmail: log the correct err message #2531
447
+ - ob/tls: consistently use obtls (vs plugin) for "this" name #2524
448
+ - outbound: add domain to loginfo message #2523
449
+ - Add connection.remote.is_local #2532
450
+ - update license #2525
451
+ - perf: move max_mime_parts config load to connection init #2529
452
+ - update semver to version 5.6.0 #2517
453
+ - added hint to encrypted file authentication #2514
454
+ - dkim_sign: improved log messages #2499
455
+ - ehlo_hello_message: config/ehlo_hello_message can be used to overwrite the EHLO/HELO msg replacing `, Haraka is at your service` #2498
456
+ - connection: add connection.remote.is_local flag for detecting loopback and link local IPs
457
+ - add .name to outbound TLS for logs #2492
458
+
459
+ ### 2.8.21 - Jul 20, 2018
460
+
461
+ #### New Features
462
+
463
+ - outbound: skip STARTTLS after remote host fails TLS upgrade #2429
464
+ - dns_list_base: introduce global plugin.lookback_is_rejected flag #2422
465
+
466
+ #### Fixes
467
+
468
+ - replace all \_ chars in hostnames with code points #2485
469
+ - Don't die on invalid commands #2481
470
+ - outbound: check list exists before attempting to use it #2478
471
+ - refactor outbound/hmail.process_ehlo_data #2488
472
+ - tls: skip when redis is undefined #2472
473
+ - Don't run delivered hook on LMTP fail #2470
474
+ - Add tls_socket.load_tls_ini() to tls.register() #2465
475
+
476
+ #### Changes
477
+
478
+ - outbound/tls: make into a class #2474
479
+ - plugins: clear timeout on cancel #2477
480
+ - txn.parse_body consistently a boolean #2476
481
+ - update ipaddr.js to version 1.8.0 #2468
482
+
483
+ ### 2.8.20 - Jun 29, 2018
484
+
485
+ #### Fixes
486
+
487
+ - data_headers: check defined-ness of hdr_address _after_ try/catch #2458
488
+ - tls: remove tls.ini loading from plugins/tls #2459
489
+ - tls: remove invalid opt from load_tls_ini #2456
490
+ - outbound: escape values in HTML bounce correctly #2446
491
+ - dkim_sign: catch exceptions when address-rfc2822 fails to parse From #2457
492
+
493
+ #### Changes
494
+
495
+ - logger: Add "obj" log param to log hook that contains log data by type #2425
496
+ - logger: include outbound client ID in logging #2425
497
+ - logger: allow specifying uuid in params when logging #2425
498
+
499
+ ### 2.8.19 - Jun 26, 2018
500
+
501
+ #### New features
502
+
503
+ - outbound: received_header=disabled supresses outbound Received header addition. #2409
504
+ - auth_base.js: `check_plain_passwd` and `check_cram_md5_passwd` can now pass `message` and `code` to callback routine
505
+ - spf: allow bypass for relay and AUTH clients #2417
506
+ - spf: optionally add OpenSPF help text to rejection #2417
507
+ - auth_base: prevent storing of AUTH password in connection.notes.auth_passwd by setting plugin.blackout_password. #2421
508
+
509
+ #### Fixes
510
+
511
+ - Mitigate MIME part explosion attack #2447
512
+ - Always prefix ClamAV with a Received header #2407
513
+ - plugins/data.headers.js: wrap address-rfc2822 header parse into try block #2373
514
+ - tls_socket: as client, only apply TLS opts if config is valid #2414
515
+ - when installing, creates config/me if missing #2413
516
+ - queue/qmail-queue: fix a 2nd crash bug when client disconnects unexpectedly #2360
517
+ - remove desconstruction of SMTP commands to prevent exception #2398
518
+ - attstream: return self so that pipe() calls can be chained together. #2424
519
+ - outbound: fix dotfile cleanup to consider platform-based prefix. #2395
520
+ - outbound: fix handling of LMTP socket when a socket path is specified. #2376
521
+
522
+ #### Changes
523
+
524
+ - relay: move relay acl check to connect_init so flag is set earlier #2442
525
+ - process_title: add total recipients, avg rcpts/msg, recipients/sec cur/avg/max and messages/conn #2389
526
+ - when relaying is set in a transaction, don't persist beyond the transaction #2393
527
+ - connection.set supports dot delimited path syntax #2390
528
+ - remove deprecated (since 2.8.16) ./dsn.js
529
+ - Add transaction.msg_status property that reflects message status. #2427
530
+ - Add transaction.notes.proxy object that hold HAProxy details. #2427
531
+ - spamassassin: make relay header configurable. #2418
532
+ - deprecate max_unrecognized_commands plugin in favor of limit. #2402
533
+ - xclient: add support for DESTADDR/DESTPORT. #2396
534
+
535
+ ### 2.8.18 - Mar 8, 2018
536
+
537
+ #### New features
538
+
539
+ - smtp_forward: domain configuration is now chosen based on domain_selector #2346
540
+
541
+ #### Fixes
542
+
543
+ - queue/qmail-queue: fix crash bug when client disconnects unexpectedly #2360
544
+ - tls: fix crash bug in `unrecognized_command` hook
545
+ - `dkim_key_gen.sh`: improve usability and parameter parsing #2355
546
+
547
+ #### Changes
548
+
549
+ - document `force_shutdown_timeout` and `graceful_shutdown` settings #2350
550
+
551
+ ### 2.8.17 - Feb 16, 2017
552
+
553
+ #### New Features
554
+
555
+ - SMTPS port is configurable #2269
556
+ - smtp_forward: enable_outbound can be set per domain #2335
557
+
558
+ #### Fixes
559
+
560
+ - Fix ability to set log level to emerg #2128
561
+ - outbound/hmail: use Buffer to correctly read binary file data + tests #2231
562
+ - quarantine: consolidate 2x hook_init_master functions
563
+ - tls_socket: restore SNI functionality, emit count of TLS certs #2293
564
+ - fix smtp_client error handling #2298
565
+ - fix outbound pools #2317
566
+ - add openssl-wrapper as dependency #2320
567
+ - replace \_ chars in hostnames with code points #2324
568
+ - add this.removeAllListeners('connection-error') #2323
569
+ - Fix crashing on RSET #2328
570
+ - Prevent data headers crit fail #2329
571
+ - Fix undefined max_lines in log message #2337
572
+
573
+ #### Changes
574
+
575
+ - line_socket: remove superfluous function #2339
576
+ - consistent end of function declaration semicolon #2336
577
+ - connection: assure hostname is set #2338
578
+ - smtp_client: Fix log message typo #2334
579
+ - Update ipaddr.js to version 1.6.0 #2333
580
+ - Warn on max_header_lines #2331
581
+ - update jquery version #2322
582
+ - plugins: add SRS plugin to registry #2318
583
+ - tls_socket: only generate dhparam.pem on master process #2313
584
+ - add ENOTFOUND to also check A record #2310
585
+ - smtp_forward: correct config file name in docs #2309
586
+ - reduce severity of iconv conversion failure #2307
587
+ - Add txn UUID to "250 Message Queued" #2305
588
+ - mailheader: reduce log level priority #2299
589
+ - greylist: only log redis DB errors when exist #2295
590
+ - data.headers: reduce undef MLM logerror to logdebug #2294
591
+ - quarantine: consolidate 2x hook_init_master() #2292
592
+ - move test_queue to queue/test #2291
593
+ - in haraka plugin test mode, add server.notes #2248
594
+ - outbound/hmail: refactor #2238
595
+ - outbound/hmail: add JSON sanity test before JSON.parse #2231
596
+ - outbound/index: use newer Buffer.from syntax #2231
597
+ - outbound/hmail: make haraka queue files human friendly #2231
598
+ - plugins/rcpt_to.ldap -> haraka-plugin-rcpt-ldap #2144
599
+ - plugins/auth/auth_ldap -> haraka-plugin-auth-ldap #2144
600
+ - plugins/smtp_forward: enable_outbound can be enabled/disabled for specific domains
601
+ - auth_proxy: read TLS key and cert files from tls.ini #2212
602
+ - README: typo fixes #2210
603
+ - incorrect RCPT TO reply message #2227
604
+ - Resolve decoding bug when root part is base64 encoded. #2204
605
+ - Resolve base64 data truncation #2188
606
+ - Fix damaged encoding when body is non-utf #2187
607
+ - Fix disconnect hooks #2184
608
+ - ability to set log level to emerg #2128
609
+ - Improve docs for `Address` objects #2224
610
+ - connection: replace 3x ternaries with get_remote() #2169
611
+ - connection.local.host populated with hostname (from config/me) #2165
612
+ - connection.local.info populated with Haraka/version #2196
613
+ - npm packaged plugins:
614
+ - plugins/rcpt_to.ldap -> haraka-plugin-rcpt-ldap #2144
615
+ - plugins/auth/auth_ldap -> haraka-plugin-auth-ldap #2144
616
+ - plugins/graph -> haraka-plugin-graph #2185
617
+ - config: replace ./config.js with haraka-config #2119
618
+ - Replace concatenated strings with template literals (#2129) in:
619
+ - attachment #2260
620
+ - bin/spf #2129
621
+ - bin/dkimverify #2278
622
+ - connection #2129, #2243
623
+ - delay_deny #2264
624
+ - dkim #2216
625
+ - dsn #2265
626
+ - host_pool #2198, #2245
627
+ - logger #2277, #2246
628
+ - mailbody #2280
629
+ - max_unrecognised_commands #2171
630
+ - outbound/hmail #2259
631
+ - outbound/index #2249
632
+ - outbound/todo #2233
633
+ - plugins #2239
634
+ - plugins/aliases #2229
635
+ - plugins/attachment #2155
636
+ - plugins/auth_base #2252
637
+ - plugins/avg #2156
638
+ - plugins/backscatterer #2261
639
+ - plugins/bounce #2229
640
+ - plugins/clamd #2237
641
+ - plugins/connect.rdns_access #2262
642
+ - plugins/data.headers #2263
643
+ - plugins/data.uribl #2258
644
+ - plugins/helo.checks #2255
645
+ - plugins/rcpt_to.in_host_list #2253
646
+ - plugins/spamassassin #2256
647
+ - plugins/profile #2170
648
+ - plugins/rcpt_to.host_list_base #2254
649
+ - plugins/relay #2174
650
+ - plugins/relay_acl #2177
651
+ - plugins/spf #2266
652
+ - plugins/toobusy #2186
653
+ - plugins/xclient #2159
654
+ - rfc1869 #2159
655
+ - smtp_client #2129, #2208
656
+ - tests/host_pool #2159
657
+ - use es6 destructuring (#2075) in:
658
+ - connection #2230
659
+ - dkim #2232
660
+ - use es6 classes (#2133) in:
661
+ - attachment #2260
662
+ - attachment_stream #2215
663
+ - chunkemitter #2219
664
+ - dkim #2206
665
+ - dsn #2247
666
+ - host_pool #2194
667
+ - mailheader #2213
668
+ - mailbody #2213
669
+ - smtp_client #2221
670
+ - spf #2214
671
+ - tls_socket #2190
672
+ - timer_queue #2226
673
+ - outbound/hmail #2197
674
+ - outbound/todo #2233
675
+ - Automatically set connection.remote.is_private when connection.remote.ip is set #2192
676
+ - Add remove_msgid and remove_date options to outbound.send_email #2209
677
+ - Add origin option to outbound.send_mail #2314
678
+
679
+ ### 2.8.16 - Sep 30, 2017
680
+
681
+ #### Changes
682
+
683
+ - additional tests get var -> const/let medicine #2122
684
+ - move connection states into haraka-constants #2121
685
+ - lint: remove useless escapes #2117
686
+ - lint: switch no-var to error #2109
687
+ - rspamd: repackaged as NPM module #2106
688
+ - dsn: repackaged as NPM module haraka-dsn #2105
689
+ - outbound: add results when queueing #2103
690
+ - spamassassin: skip adding headers when value is empty #2102
691
+ - Replace console.log with stdout #2100
692
+ - update js-yaml to version 3.10.0 #2097
693
+ - repackage p0f plugin to NPM #2076
694
+ - ES6: replace var with const or let #2073
695
+
696
+ #### New Features
697
+
698
+ - Bounces can have an HTML part #2091
699
+
700
+ #### Fixes
701
+
702
+ - daemon cwd #2126
703
+ - updated fcrdns plugin name passed to results #2115
704
+ - tls: only apply default key/cert paths when undefined #2111
705
+ - dkim_verify: fix formatting of auth results #2107
706
+ - smtp_forward: consistently use queue.wants #2107
707
+ - haraka was adding TLS header on non-TLS connection #2103
708
+ - dkim typo fix #2101
709
+ - fix rfc2231 parsing code to cope with continuation #2089
710
+
711
+ ### 2.8.15 - Sep 10, 2017
712
+
713
+ #### Changes
714
+
715
+ - Permit log settings to be set w/o LOG prefix #2057
716
+ - additional results storing in smtp_forward and quarantine #2067
717
+ - publish p0f plugin to NPM #2076
718
+ - smtp_forward stores queue note at queue.wants #2083
719
+ - Remove unused folders from installation #2088
720
+ - smtp_forward stores queue note at queue.wants #2083
721
+ - add get/set to conn/txn.notes #2082
722
+ - additional results storing in smtp_forward and quarantine #2067
723
+ - Permit log settings to be set w/o LOG prefix #2057
724
+ - support INFO _and_ LOGINFO as config settings #2056
725
+ - log.ini, new default location for log related settings #2054
726
+ - dcc: replace with npm packaged version #2052
727
+ - qmd: replace rcpt_to.qmail_deliverable with npm #2051
728
+ - rspamd: pass SPF evaluation #2050
729
+ - add logfmt support #2047
730
+ - update ipaddr.js to version 1.5.0 #2037
731
+ - update redis to version 2.8.0 #2033
732
+ - disable graceful for SIGTERM #2028
733
+ - add additional integration tests #2026
734
+ - move most npm packaged plugins into optionalDependencies #2023
735
+
736
+ #### New Features
737
+
738
+ - TLS certificate directory (config/tls) #2032
739
+ - plugins can specify a queue plugin & next_hop route #2067
740
+ - connection/transaction notes now have get/set #2082
741
+
742
+ #### Fixes
743
+
744
+ - haraka cli will now create folders if they don't exist #2088
745
+ - maybe fix for #1852 503 response #2064
746
+ - crash when 'AUTH LOGIN' is sent after a successful auth #2039
747
+ - docs: fixed swaks test command #2034
748
+ - dkim: prevent dkim_verify from causing 'cannot pipe' #1693
749
+
750
+ ### 2.8.14 - Jul 26, 2017
751
+
752
+ #### Changes
753
+
754
+ - Fix auth plugin failure when re-selecting auth method #2000
755
+ - don't crash Haraka when invalid YAML config encountered #2013
756
+ - update semver to version 5.4.0 #2015
757
+ - relay docs: correct the config file name #2012
758
+ - rename config/xclient.hosts to match plugin & docs #2014
759
+ - build_todo() is part of the outbound/index.js api #2016
760
+ - update js-yaml to version 3.9.0 #2002
761
+ - outbound/hmail: use WRITE_EXCL from haraka-constants #2011
762
+ - replace plugins/log.elasticsearch with npm packaged #2004
763
+ - Remove two spurious log statements #1989
764
+ - access: rebuild blacklist upon change (vs supplement) #1990
765
+ - deliver to qmail-queue with LF line endings (not CRLF) #1997
766
+ - doc: add note that smtp_forward only supports STARTTLS #1988
767
+ - import Plugins.md from v3 #1991
768
+ - update async to 2.5.0 #1982
769
+ - update iconv to 2.3.0 #1981
770
+ - require node.js v6+ #1958
771
+ - update ipaddr.js to 1.4.0 #1972
772
+ - support newer address-rfc2822 #1970
773
+ - update node-address-rfc2821 version to 1.1.1 #1968
774
+ - outbound: be consistent with todo.domain #1960
775
+ - bump haraka-results required version #1949
776
+ - logger: load in a setImmediate call #1948
777
+ - logger: strip intermediate \n chars #1947
778
+ - tls consistency cleanups #1851
779
+ - Get pool config handling simplifcation #1868
780
+ - add integration test: send message w/smtp_client
781
+ - replace some legacy code with es6 #1862
782
+ - update async to version 2.2.0 #1863
783
+ - update ipaddr.js to version 1.3.0 #1857
784
+ - update redis to version 2.7.0 #1854
785
+ - assure conn/tran still exists before storing results #1849
786
+ - moved tls.ini parsing to net_utils #1848
787
+ - smtp forward dest split routing #1847
788
+ - rspamd: refactor complex condition into function #1840
789
+ - block js attachments #1837
790
+ - helo.checks: bring plugin into alignment with docs #1833
791
+ - when proxy enabled, update remote.is_private too #1811
792
+ - create an outbound queue filename handler #1792
793
+ - replace fcrdns with npm package #1810
794
+ - add an additional node_modules plugin search path #1805
795
+ - Set graceful shutdown off by default #1927
796
+ - Allow outbound pools to be disabled #1917
797
+ - Outbound split and move into folder #1850
798
+ - don't emit binary characters into the logs #1902
799
+ - Add .editorconfig #1884
800
+ - tls: remove interim variables #1871
801
+
802
+ #### New Features
803
+
804
+ - Use punycode domain (support SMTPUTF8) #1944
805
+ - Added RabbitMQ vhost support #1866
806
+ - clamav: allow "Unknown Result" and Socket Error to try next host #1931
807
+ - outbound client certificates #1908
808
+ - Implement the missing upgrade method on SMTPClient #1901
809
+ - Remove typo from relay.md #1886
810
+
811
+ #### Fixes
812
+
813
+ - outbound: fix queue not loaded for single process #1941
814
+ - outbound: Fix undefined variable platformDOT in hmail.js #1943
815
+ - outbound: fix undefined FsyncWriteStream var #1953
816
+ - Fix cluster messaging for node v6+ #1938
817
+ - outbound: fix loading under cluster. #1934
818
+ - Check pool exists before delete #1937
819
+ - be more strict in attachment filename matching #1957
820
+ - doc typo fix #1963
821
+ - RabbitMQ: fix encoding of user and password string #1964
822
+ - spf: improve modifier regexp #1859
823
+ - rabbitmq doc typo in config file name #1865
824
+ - URL to manual was 404, point to Plugins.md #1844
825
+ - smtp_client: set idleTimeout to 1s < pool_timeout #1842
826
+ - fix broken continuations #1843
827
+ - doc error for the 'check.authenticated' setting in rspamd plugin #1834
828
+ - emit _the_ result, not all of them #1829
829
+ - fix outbound logger #1827
830
+ - fix forwarding with client auth over TLS (forward to gmail) #1803
831
+ - Don't blow the stack on qstat #1930
832
+ - run dumped logs through log plugins, not console #1929
833
+ - Fix path parsing bug on Windows platform #1919
834
+ - helo: make sure list_re is defined before access #1903
835
+ - TLS: handle case where OCSP server is unavailable #1880
836
+ - rspamd: add missing 'default' keyword #1856
837
+ - disable naïve comment stripping #1876
838
+
839
+ ### 2.8.13 - Feb 03, 2017
840
+
841
+ #### Changes
842
+
843
+ - new [haraka-plugin-limit](https://github.com/haraka/haraka-plugin-limit) #1785
844
+ - replaces plugin/limit, plugin/rate_limit, and haraka-plugin-outbound-rate-limit
845
+ - p0f: skip on private IPs (normally empty) #1758
846
+ - spf: skip for outbound when context != myself #1763
847
+ - redis: plugins using redis can inherit redis config #1777
848
+ - redis: replace plugins/redis with haraka-plugin-redis #1786
849
+ - lint: require space before function declaration #1784
850
+ - lint: added eslint:recommended #1790
851
+ - logger: remove logger.colorize code for legacy node versions
852
+
853
+ #### New Features
854
+
855
+ - redis: add `redis_subscribe_pattern()` #1766
856
+ - queue/discard: add ENV that permits discarding #1791
857
+
858
+ #### Improvements
859
+
860
+ - rspamd: improve response parsing #1770
861
+ - restore Windows testing to working state #1755
862
+ - elasticsearch: use UTC dates for index creation #1771
863
+ - tls: fix dhparam usage example syntax #1774
864
+ - typo: logerr -> logerror #1776
865
+ - when generating long DKIM keys, include a BIND compatible folded key #1775
866
+ - in haraka-test-fixtures, access results via fixtures.results #1783
867
+ - integration test: end to end server testing #1791
868
+
869
+ #### Fixes
870
+
871
+ - spf: restore functionality for relay context=myself #1759
872
+ - rate_limit:if incr creates a new record, assure it has a TTL #1781
873
+ - tls: do not create a top level secureContext #1787
874
+ - dnswl: swap lines to fix missing inherited methods #1793
875
+ - dnswl: fix config loader callback syntax #1794
876
+ - tests/plugins: unset process.env.HARAKA to avoid side effects that interfere with other tests
877
+ - remove auth_flat_file sample auth user #1796
878
+
879
+ ### 2.8.12 - Jan 03, 2017
880
+
881
+ #### Changes
882
+
883
+ - plugin/karma -> npm packaged haraka-plugin-karma #1747
884
+ - update generic-pool 2.4.2 -> 2.5.0
885
+
886
+ #### New Features
887
+
888
+ - Added option to bypass SpamAssassin headers' merge #1745
889
+
890
+ #### Improvements
891
+
892
+ - reduce severity of debug message #1744
893
+ - fix misleading entries in config/tls.ini #1734
894
+ - Misc. performance improvements #1738
895
+ - set tls.sessionIdContext property (for Thunderbird compat) #1740
896
+
897
+ #### Fixes
898
+
899
+ - Swap lines to avoid clobbering response array #1743
900
+
901
+ ### 2.8.11 - Nov 24, 2016
902
+
903
+ #### Changes
904
+
905
+ - rename core_require to haraka_require #1708
906
+ - move log.syslog to haraka-plugin-syslog #1698
907
+ - remove tls.ini loading and is_no_tls_host to net_utils #1690
908
+ - replace ./utils with npm packaged haraka-utils #1720
909
+ - require node 4
910
+ - karma: add .top TLD scoring #1714
911
+
912
+ #### New Features
913
+
914
+ - Implement OCSP Stapling #1724
915
+
916
+ #### Improvements
917
+
918
+ - show help for npm packaged plugins included in core #1698
919
+ - use tls.connect for client #1682
920
+ - bring port 465 SMTPS TLS config support on par with STARTTLS #1667
921
+ - use tls.connect instead of createSecurePair #1678
922
+ - redis: improve error handling in tests #
923
+ - replace / path seperators with path.* for cross platform compat #1713
924
+
925
+ #### Fixes
926
+
927
+ - dkim_sign: per-domain key finding fixed #1707
928
+ - Rspamd: restore spam report header #1702
929
+ - auth/vpopmail: do not toString() when null #1695
930
+ - fix outbound to avoid recursive reading key/cert after refactoring #1692
931
+ - tls: fix option servername (not hostname) #1728
932
+ - correct Auth-Results cleaning #1726
933
+ - fix results for connection.remote_host and NXDOMAIN #1716
934
+
935
+ ### 2.8.10 - Oct 20, 2016
936
+
937
+ #### Changes
938
+
939
+ - use standard npm syntax for lint and tests #1646
940
+ - remove ./net_utils to haraka-net-utils #1644
941
+ - remove incorrect and unused spf.hello_host #1635
942
+ - remove rogue DENYSOFT copy-pasta error #1634
943
+ - update async to v2 #1545
944
+ - remove plugin/dir support from base haraka #1668
945
+ - use node_modules_dir support instead
946
+ - use TLSSocket instead of createSecurePair #1672
947
+ - refactor plugins/tls #1670
948
+ - moved watch plugin to npm as haraka-plugin-watch #1657
949
+ - normalize proxy properties #1650
950
+
951
+ #### New Features
952
+
953
+ - added connection.remote.is_private boolean #1648
954
+ - added additional TLS options (@typingArtist) #1651
955
+ - added wildcard boolean support to config loader #1680
956
+ - tls: allow multiple key and cert parameters for RSA+ECDSA #1663
957
+ - permit specifying haraka plugins w/o haraka-plugin- prefix #1645
958
+ - in config/plugins and resultstore
959
+
960
+ #### Improvements
961
+
962
+ - connection.geoip replaced by haraka-plugin-geoip #1645
963
+ - connection.asn replaced by haraka-plugin-asn #1645
964
+ - permit specifying npm packaged plugins w/o haraka-plugin prefix #1647
965
+ - normalized connection properties #1547, #1577
966
+ - Rspamd: fix spambar for negative scores #1630
967
+ - set connection.remote.is_private early
968
+ - replace calls to net_utils with remote.is_private test
969
+
970
+ #### Fixes
971
+
972
+ - Tidy-up graceful shutdown and fix for non-cluster mode #1639
973
+ - Fix data.headers plugin crash #1641
974
+ - Fix access plugin crash #1640
975
+ - Minor DKIM fix #1642
976
+ - do not set TLS timer if timeout=0 #1632
977
+ - do not overwrite config/host_list on install #1637
978
+ - correct smtp_forward cfg for multiple rcpts #1680
979
+ - fix TLS timeout errors #1665
980
+
981
+ ### 2.8.9 - Oct 02, 2016
982
+
983
+ #### New Features
984
+
985
+ - Support outbound.pool_timeout of 0 to effectively disable pooling. #1561
986
+ - Added never_add_headers option to rspamd plugin. #1562
987
+ - rcpt_to.routes URI format w/ LMTP support #1568
988
+
989
+ #### Improvements
990
+
991
+ - The delay_deny plugin now has a whitelist mode (vs blacklist). #1564
992
+ - Don't show the private key in logs for dkim_sign. #1565
993
+ - update geoip for compat with newer ES (#1622)
994
+ - drop node 0.10 testing / official support (#1621)
995
+ - watch plugin displays UUIDs as URL (#1624)
996
+ - Catch errors on header decode in rfc2231 #1599
997
+ - Attachment plugin updates (#1606)
998
+ - add outbound.ini pool_timeout example setting #1584
999
+
1000
+ #### Fixes
1001
+
1002
+ - Fixed some small documentation issues. #1573, #1616, #1612
1003
+ - Fixed AUTH PLAIN when it spreads over two lines. #1550
1004
+ - Fixed dkim_verify calling next() too soon. #1566
1005
+ - Fixed bugs with outbound pools who shutdown before we QUIT. #1561, #1572
1006
+ - outbound issues #1615, #1603
1007
+ - Fixed adding/removing headers in rspamd plugin. #1562
1008
+ - Fixed process_title not shutting down. #1560
1009
+ - fix a spurious error emitted by p0f (#1623)
1010
+ - fix header version hiding (#1617)
1011
+ - messagestream returns destination (#1610)
1012
+ - plugins.getdenyfn now passed 3rd params arg (#1591)
1013
+ - Fix scope of spf logdebug (#1598)
1014
+ - fix rabbitmq deliveryMode bug (#1594)
1015
+ - fix dkim_sign TypeError with null mail_from.host (#1592)
1016
+ - fix dkim_sign attempting to lower an undefined (#1587)
1017
+
1018
+ ### 2.8.8 - Jul 20, 2016
1019
+
1020
+ #### Changes
1021
+
1022
+ - removed UPGRADE.doc to [wiki](https://github.com/haraka/Haraka/wiki/Upgrade-Haraka)
1023
+
1024
+ #### Improvements
1025
+
1026
+ - support + wildcard in aliases plugin #1531
1027
+ - Support dkim_sign with outbound.send_email() #1512
1028
+ - spf: always check remote IP, then public IP if != pass #1528
1029
+ - spf: diplay IP used for SPF eval #1528
1030
+
1031
+ #### Fixes
1032
+
1033
+ - handle missing wss section in http.ini #1542
1034
+ - fix leak on socket write error #1541
1035
+ - add results property to outbound transaction #1535
1036
+ - don't unref unref'd wss server #1521
1037
+
1038
+ ### 2.8.7 - Jun 18, 2016
1039
+
1040
+ #### Changes
1041
+
1042
+ - Fix geoip test
1043
+
1044
+ #### Improvements
1045
+
1046
+ - Allow alias plugin to explode to a list of aliases
1047
+ - Support IPv6 literals in HELO tests (#1507 thanks @gramakri)
1048
+ - Make ldap plugin use the modified address if a rcpt hook
1049
+ changes it (#1501 thanks @darkpixel)
1050
+
1051
+ #### Fixes
1052
+
1053
+ - Fix loading plugins as npm modules (#1513)
1054
+ - More DKIM fixes (#1506 thanks @zllovesuki)
1055
+ - Fix the long failing host-pool-timer test (#1508)
1056
+ - Fix clean shutdown of redis with new shutdown code
1057
+ (#1504 and #1502 thanks @darkpixel)
1058
+ - More fixes to clean shutdown (#1503)
1059
+
1060
+ ### 2.8.6 - Jun 06, 2016
1061
+
1062
+ #### Fixes
1063
+
1064
+ - Fix loading under Node v4 which sends a blank message
1065
+ - Fix quit (SIGINT) when running without nodes=
1066
+
1067
+ ### 2.8.5 - Jun 04, 2016
1068
+
1069
+ #### Changes
1070
+
1071
+ - The connection object is now passed to `get_plain_passwd`. Older modules should continue to work as-is.
1072
+ - The reseed_rng plugin now just uses the Crypto module from core. Though it seems this plugin should be irrelevant with newer versions of node.js
1073
+
1074
+ #### New Features
1075
+
1076
+ - Outbound mail now uses pooled connections, only sending a `QUIT` message if the connection has been idle for a while.
1077
+
1078
+ #### Improvements
1079
+
1080
+ - Shut down and reload (via `haraka -c <path> --graceful`) is now graceful - allowing current connections to finish and plugins to clean up before ending.
1081
+
1082
+ #### Fixes
1083
+
1084
+ - Bind maxmind version to ignore API change (#1492)
1085
+ - Fix encodings when banners are used (#1477)
1086
+ - Various DKIM fixes (#1495)
1087
+
1088
+ ### 2.8.4 - May 24, 2016
1089
+
1090
+ #### Fixes
1091
+
1092
+ - Fix plugin loading override when installed (#1471)
1093
+
1094
+ ### 2.8.3 - May 18, 2016
1095
+
1096
+ #### Fixes
1097
+
1098
+ - Fix config overriding for core modules (#1468)
1099
+
1100
+ ### 2.8.2 - May 17, 2016
1101
+
1102
+ #### Changes
1103
+
1104
+ - Added Node v6 to travis tests
1105
+
1106
+ #### New Features
1107
+
1108
+ - Added bin/haraka --qunstick <domain> to flush all mails
1109
+ for that domain (#1460)
1110
+
1111
+ #### Improvements
1112
+
1113
+ - Make bin/haraka --qlist show much more information (#1452)
1114
+ - Allow CIDR ranges in no_tls_hosts (#1450)
1115
+
1116
+ #### Fixes
1117
+
1118
+ - 2.8.0 was shipped with a broken config/plugins. (#1453)
1119
+ - Stop haraka dying when ldap connections fail (#1456)
1120
+ - Pick up domain specific config correctly in ldap (#1456)
1121
+
1122
+ ### 2.8.0 - May 06, 2016
1123
+
1124
+ #### Changes
1125
+
1126
+ - updated dependency versions (#1426, #1425)
1127
+ - use utf8 encoding for body filters (#1429)
1128
+ - remove spameatingmonkey from tests (#1421)
1129
+ - replace ./constants.js with haraka-constants (#1353)
1130
+ - Document HMail and TODO items (#1343)
1131
+ - Copy only a minimal config/* by default (#1341).
1132
+ - cfreader/* removed to haraka/haraka-config (#1350)
1133
+ - outbound and smtp_client honor tls.ini settings (#1350)
1134
+ - outbound TLS defaults to enabled
1135
+ - lint: remove all unused variables (#1358)
1136
+ - replace ./address.js with address-rfc2181 (#1359)
1137
+
1138
+ #### New Features
1139
+
1140
+ - smtp_forward: accepts a list of backend hosts, thanks @kgeoss (#1333)
1141
+ - config: add array[] syntax to INI files (#1345)
1142
+ - plugins.js: support require('./config') in plugins
1143
+ - Load plugin config from own folder and merge (#1335)
1144
+ - Allow original email's Subject to be included in bounce message (#1337)
1145
+ - new queue/smtp_bridge plugin, thanks @jesucarr (#1351)
1146
+
1147
+ #### Improvements
1148
+
1149
+ - early_talker: supports IP whitelisting (#1423)
1150
+ - loading plugins as packages (#1278)
1151
+ - removed TLD stuff to haraka/haraka-tld (#1301)
1152
+ - removed unused 'require('redis') in plugins/karma (#1348)
1153
+ - improved MIME header support per rfc2231 (#1344)
1154
+ - tls options can be defined for outbound and smtp_* (#1357)
1155
+ - explicitly disable SSLv2 (#1395)
1156
+ - cache STUN results
1157
+ - xclient plugin improvements (#1405)
1158
+ - tls: Set verify=NO correctly when no certificate presented (#1400)
1159
+ - improved message header decoding (#1403, #1406)
1160
+ - bounce: skip single_recipient check for relays/private_ips (#1385)
1161
+ - rspamd docs: Clarify usage of check.private_ip (#1383)
1162
+ - if rcpt_to returns DSN in msg, log it properly (#1375)
1163
+
1164
+ #### Fixes
1165
+
1166
+ - fix out-of-range errors from banner insertion (#1334)
1167
+ - dkim_verify: Call next only after message_stream ended (#1330)
1168
+ - outbound: remove type check from pid match (#1322)
1169
+ - lint: enable no-shadown and remove all shadow variables (#1349)
1170
+ - spf: fix log_debug syntax (#1416)
1171
+ - auto_proxy: fix a starttls loop (#1392)
1172
+ - fcrdns: corrected err variable name (#1391)
1173
+ - rspamd: Fix undefined variable (#1396)
1174
+ - dkim_verify: Fix header handling (#1371)
1175
+ - smtp_client: fix remote_ip (#1362)
1176
+
1177
+ ### 2.7.3 - Feb 04, 2016
1178
+
1179
+ #### Changes
1180
+
1181
+ - smtp_proxy & qmail-queue: default to enabled for outbound deliveries (previously used Outbound), to better matches user expectations.
1182
+
1183
+ #### New Features
1184
+
1185
+ - outbound: allow passing notes to send_email (#1295)
1186
+
1187
+ #### Improvements
1188
+
1189
+ - logging: emit log message queue before shutting down (#1296)
1190
+ - result_store: permit redis pub/sub to work when host != localhost (#1277)
1191
+ - tests: quiet the extremely verbose messages (#1282)
1192
+ - rspamd: add timeout error handling (#1276)
1193
+ - watch: fix display of early_talker results (#1281)
1194
+ - spamassassin: publish results to result_store (#1280)
1195
+ - karma: can now connect to redis on hosts other than localhost (#1275)
1196
+ - geoip & p0f: don't log empty/null values from RFC 1918 connects (#1267)
1197
+ - redis: make plugin params match docs (#1273)
1198
+ - mailbody: small refactoring (#1315)
1199
+ - smtp_proxy & qmail-queue: default to enabled for outbound (#1308)
1200
+
1201
+ #### Fixes
1202
+
1203
+ - redis: use correct path for db.select (#1273)
1204
+ - count errors correctly (#1274)
1205
+ - logger: ignore null arguments (#1299)
1206
+ - connection: pause for hook_reset_transaction (#1303)
1207
+ - rcpt_to.routes: update redis usage for compat with redis plugin (#1302)
1208
+ - smtp_forward: use correct config path to auth settings (#1327)
1209
+ - messagestream: correctly pass options parameter to get_data (#1316)
1210
+ - spf: honour configuration for mfrom scope (#1322)
1211
+ - outbound: Add missing dash to 'Final-Recipient' header name (#1320)
1212
+
1213
+ ### 2.7.2 - Dec 15, 2015
1214
+
1215
+ #### Fixes
1216
+
1217
+ - Revert a change that broke plugin loading
1218
+
1219
+ ### 2.7.1 - Dec 14, 2015
1220
+
1221
+ #### New Features
1222
+
1223
+ - added debian init.d file (#1255) @slattery
1224
+
1225
+ #### Improvements
1226
+
1227
+ - smtp_forward auth settings now work (#430)
1228
+ - better handling of broken messages (#1234)
1229
+ - Docker: use latest Phusion image && stdout (#1238, #1239)
1230
+ - Clean up plugin loading a tiny bit (#1242)
1231
+ - make dkim keydir case insensitive (1251)
1232
+ - ignore DNS errors that aren't errors (#1247)
1233
+ - outbound doc updates (#1258) @Currerius
1234
+ - outbound: return DENYSOFT on queue error (#1264)
1235
+ - smtp_client: if enable_tls is set and TLS files missing, warn (#1266)
1236
+
1237
+ #### Fixes
1238
+
1239
+ - Don't sent empty headers to rspamd (#1230)
1240
+ - Fix auth_base.js key need to be a string - number.toString() (#1228)
1241
+ - fix bug with empty charset= on mime parts … (#1225)
1242
+ - Fix "passwd" check crash with numeric password. (#1254)
1243
+ - result_store: show arrays when not empty (#1261)
1244
+
1245
+ ### 2.7.0 - Oct 07, 2015
1246
+
1247
+ #### New Features
1248
+
1249
+ - SPF bounce check
1250
+ - rspamd plugin (@fatalbanana)
1251
+ - watch plugin
1252
+ - limit plugin (connection concurrency, errors, unrecognized commands)
1253
+ - plugins can now be npm packages (see also #946)
1254
+ - built-in HTTP server (Express backed)
1255
+ - ESETS AV plugin
1256
+ - DCC plugin (incomplete)
1257
+ - Add LOGIN support to XCLIENT
1258
+ - backscatterer plugin
1259
+ - full IPv4 & IPv6 compatibility inbound #1120, #1123, #1154 (@Dexus)
1260
+ - Early talker #1075 (@smfreegard, @msimerson)
1261
+ - permit loading of plugins in node_modules #1056 (@msimerson)
1262
+
1263
+ #### Improvements
1264
+
1265
+ - Fix anti_spoof by use config #1171
1266
+ - Add license clause #1170
1267
+ - package.json dependencies and travis update #1147, #1168 (@Dexus)
1268
+ - logging: remove node-syslog and strong-fork-syslog with modern-syslog #1145 (@Dexus)
1269
+ - aliases: support for email, user and host aliases #1149 (@Dexus)
1270
+ - add docs for use private key with TLS #1130 (@Dexus)
1271
+ - outbound: ENOENT on dotfile - compatibility for windows #1129 (@Dexus)
1272
+ - plugin/attachment: block more attachment file types #1191 (@Dexus)
1273
+ - remove double functions #1126 (@Dexus)
1274
+ - Outbound Bounce messages according to RFC3464 #1189 (@hatsebutz)
1275
+ - toobusy: only run checks if toobusy.js installed and loads
1276
+ - HAProxy: set local_ip, local_port and remote_port
1277
+ - save auth pass/fail/user to result_store
1278
+ - ini files no longer require values (useful for storing lists)
1279
+ - connection: add MAIL and RCPT to results
1280
+ - results_store: enable 'emit' feature for .push()
1281
+ - add support for custom Outbound Received header value (@zombified)
1282
+ - save smtp_forward result to result_store
1283
+ - auth_base: permit a return message (@DarkSorrow)
1284
+ - add DSN.create() and RFC 4954 support
1285
+ - enhanced pipelining support
1286
+ - added config/access.domains with some tips (@EyePulp)
1287
+ - Add SSL detection over plain-text socket
1288
+ - earlytalker: store results
1289
+ - bounce: make it safe to check non_local_msgid
1290
+ - AVG: store results, added defer options
1291
+ - tls: change createCredentials to tls.createSecureContext (@DarkSorrow)
1292
+ - update dependency versions (esp async 0.2.9 -> 1.0.0)
1293
+ - ASN docs: add FTP download note for routeviews
1294
+ - karma: removed concurrency limits (see limit plugin) and penalty feature
1295
+ - added utils.elapsed()
1296
+ - deny message includes hostname
1297
+ - Add Fisher-Yates shuffle to randomize lookup order in data.uribl
1298
+ - change default message size limit to 25mb
1299
+ - auth_base: save auth results
1300
+ - upgrade toobusy plugin to toobusy-js (@alexkavon)
1301
+ - configfile: permit / char in ini keys
1302
+ - added utils.node_min()
1303
+ - added result_store.get_all()
1304
+ - updated ubuntu upstart script
1305
+ - plugin/rate_limit: return in no custom default is set 0 = unlimited #1186, #1185
1306
+ - Outbound.send_email: added dot-stuffing #1176, #1165 (@hatsebutz)
1307
+ - make sure server object is availabe to plugins loaded from node_modules #1162 (@bmonty)
1308
+ - Net_utils.get_ips_by_host #1160 (@msimerson)
1309
+ - fcrdns: don't log error for ENODATA #1140 (@msimerson)
1310
+ - improve MUA detection #1137 (@msimerson)
1311
+ - tls: tmp disable for hosts that fail STARTTLS #1136 (@msimerson)
1312
+ - karma: skip deny on outbound hooks #1100 (@msimerson)
1313
+ - Store HAProxy IP in connection object #1097 (@smfreegard)
1314
+ - Remove UUID from queued message #1092 (@smfreegard)
1315
+
1316
+ #### Fixes
1317
+
1318
+ - fix windows build and test failures #1076 (@msimerson)
1319
+ - Fix plugin ordering #1081 (@smfreegard)
1320
+ - Fix distance reporting to X-Haraka-GeoIP for geoip-lite #1086 (@smfreegard)
1321
+ - uribl: prevent calling next() more than 1x #1138 (@msimerson)
1322
+ - Fix so constants are imported when plugin is loaded from node_modules. #1133 (@bmonty)
1323
+ - Include STMP-code in bounce-reason string for upstream 5XX responses #1117 (@hatsebutz)
1324
+ - TLS fixes: add timed_out flag and karma should not run deny hook on it. #1109 (@smfreegard)
1325
+ - Fix port to number instead of string for HAProxy #1108 (@DarkSorrow)
1326
+ - Plugin dcc: fixed syntax error #1164 (@hatsebutz)
1327
+ - config: fix flat files if \r\n lines #1187 (@Dexus)
1328
+ - corrected hook_rcpt log code hook_rcpt_ok returns CONT
1329
+ - fix crash bug when loglevel = LOGDEBUG
1330
+ - corrected pathname in rcpt.ldap plugin (@abhas)
1331
+ - added helo.checks boolean for proto_mismatch
1332
+ - make rate_limit redis keys always expire @celesteking
1333
+ - dkim_sign: Buffer.concat expects an array of buffers
1334
+ - transaction: check discard_data before adding line end (@DarkSorrow)
1335
+ - fix 8-bit msg not displayed properly in gmail
1336
+ - fcrdns: always init results
1337
+ - TLS timer on error
1338
+ - dkim_verify: fixed timeout issue
1339
+ - smtp\_[proxy|forward]: correct authentication example
1340
+ - Fork child workers after init_master hook
1341
+ - connection: return 450/550 for plugin DENY* (was 452/552)
1342
+ - spamassassin: don't call next() when transaction gone
1343
+ - outbound: fix crash when sending bounce mail
1344
+ - auth_base: fix bad protocol in auth_base.js #1121 (@Dexus)
1345
+ - outbound: Fix HELO/rDNS issue while using multiple outbound ip #1128 (@Dexus)
1346
+ - connection: Fix bug when client disconnect after sending data #1193
1347
+ - Fix connect.geoip bug #1144 (@smfreegard)
1348
+ - Fix tiny bug in messagesniffer #1198 (@smfreegard)
1349
+
1350
+ ### 2.6.1 - Mar 27, 2015
1351
+
1352
+ - added sedation timers for config file re-reading
1353
+ - Add AUTH support to outbound
1354
+ - tests/spf: quiet excessive DEBUG noise
1355
+ - allow domains with underscore
1356
+ - correct name of domains config file in access
1357
+ - Fix SMTP AUTH in smtp_forward/proxy and add docs
1358
+ - Fix opts not being passed to HMailItem \_bounce function
1359
+ - log.syslog will try strong-fork-syslog (for node 0.12 compat)
1360
+ - improvements to Plugin docs
1361
+ - rename net_utils.is_rfc1918 -> is_private_ip
1362
+ - IPv6 compat
1363
+ - test coverage
1364
+ - add IPv6 unique local fc00::/7
1365
+ - pre-populated config/plugins
1366
+ - added utils.extend, copies props onto objects
1367
+
1368
+ ### 2.6.0 - Feb 21, 2015
1369
+
1370
+ - other bug fixes
1371
+ - updated a few tests so test suite passes on Windows
1372
+ - log.syslog: handle failure to load node-syslog
1373
+ - plugin directory is $ENV definable (@martin1yness)
1374
+ - logging timestamps were static, fixed by @cloudbuy
1375
+ - queue/rabbitmq_amqplib, new plugin for RabbitMQ using amqplib (@esevece)
1376
+ - outbound:
1377
+ - plugins can set the outbound IP (during get_mx)
1378
+ - only replace line endings if not \r\n
1379
+ - bannering fixes
1380
+ - added support for per recipient routes
1381
+ - tls: don't register hooks upless certs exist
1382
+ - removed contrib/geolite-mirror-simple.pl (replaced by
1230
1383
  docs update pointing to maxmind-geolite-mirror)
1231
- * rcpt.routes: new plugin by @msimerson
1232
- * make haproxy IPv6 compatible
1233
- * record_envelope_addresses: new plugin by @deburau
1234
- * prevent_credential_leaks: new plugin by @smfreegard
1235
- * config:
1236
- * configfile: added .yaml support
1237
- * improved config file 'watch' logic
1238
- * Allow hyphens in params in config files (@abhas)
1239
- * cached requests include options in cache key name
1240
- * asn: updates for node 0.11 compat
1241
- * dnsbl: use aysync.each vs forEach (avoid race condition)
1242
- * spamassassin: improved config loading and test coverage
1243
- * geoip: deprecate geoip-lite in favor of maxmind, IPv6 compatible
1244
- * disable SSLv3 (due to POODLE)
1245
- * dkim & spf, updates for node 0.11 compatibiilty
1246
- * karma: move neighbor scoring from code to karma.ini
1247
- * move excludes list to karma.ini
1248
- * apply awards before adding message header & permit rejection at queue
1249
- * karma.ini: score updates for access & uribl plugins
1250
- * score denials issued by skipped plugins
1251
- * add scores for specific DNSBLs
1252
- * add transaction body filters (@chazomaticus)
1253
- * change bannering to use them
1254
- * helo.checks: fix timeout bug
1255
- * match_re now validates and pre-compiles all REs
1256
- * Add new proto_mismatch check
1257
- * p0f: add register(), load config once, early
1258
- * server: improved config handling
1259
- * data.headers: add Delivered-To check
1260
- * rcpt_to.ldap: new plugin by @abhas
1261
- * smtp_client: only load tls_* when cfg.enable_tls
1262
- * added plugins/host_list_base
1263
- * Platform independent temp dir (thanks @martinvd)
1264
- * move deprecated docs into docs/deprecated
1265
- * Switch to Phusion baseimage instead of stock Ubuntu (thanks @Synchro)
1266
- * dkim_verify: new plugin by @smfreegard
1267
- * many new tests
1268
- * improved URI parser (for URIBL plugin)
1269
- * Allow mixed case STARTTLS command
1270
- * Install Node via package manager (Mohd Rozi)
1271
- * Fix a couple crit errors (@Illirgway)
1272
- * Add noisy/bulk out-of-band rule support to MessaageSniffer plugin
1273
- * initial support for rabbitmq plugin (@samuelharden)
1274
- * bounce, added non_local_msgid checks and much faster lookups
1275
- * vpopmail: fail faster during a CRAM-MD5 auth attempt with an invalid user
1276
- * fcrdns: handle a null hostname
1277
- * Improve HAProxy support code and documentation
1278
- * tls: reworked for efficiency and linear style
1279
- * access: test hostname validity before PSL lookup
1280
- * load lists into objects (vs arrays), for much faster runtime access
1281
- * host_list: huge performance increase, esp for many hosts
1282
-
1283
- ## 2.5.0 - May 24, 2014
1284
-
1285
- * added automated build testing via Travis-CI.org
1286
- * fixed dkim_sign crash issue #560
1287
- * geoip can discover external IP via net_utils.get_public_ip
1288
- * geoip: skip private IPs
1289
- * qmd: when relaying, validate MAIL FROM against QMD, add per-domain
1384
+ - rcpt.routes: new plugin by @msimerson
1385
+ - make haproxy IPv6 compatible
1386
+ - record_envelope_addresses: new plugin by @deburau
1387
+ - prevent_credential_leaks: new plugin by @smfreegard
1388
+ - config:
1389
+ - configfile: added .yaml support
1390
+ - improved config file 'watch' logic
1391
+ - Allow hyphens in params in config files (@abhas)
1392
+ - cached requests include options in cache key name
1393
+ - asn: updates for node 0.11 compat
1394
+ - dnsbl: use aysync.each vs forEach (avoid race condition)
1395
+ - spamassassin: improved config loading and test coverage
1396
+ - geoip: deprecate geoip-lite in favor of maxmind, IPv6 compatible
1397
+ - disable SSLv3 (due to POODLE)
1398
+ - dkim & spf, updates for node 0.11 compatibiilty
1399
+ - karma: move neighbor scoring from code to karma.ini
1400
+ - move excludes list to karma.ini
1401
+ - apply awards before adding message header & permit rejection at queue
1402
+ - karma.ini: score updates for access & uribl plugins
1403
+ - score denials issued by skipped plugins
1404
+ - add scores for specific DNSBLs
1405
+ - add transaction body filters (@chazomaticus)
1406
+ - change bannering to use them
1407
+ - helo.checks: fix timeout bug
1408
+ - match_re now validates and pre-compiles all REs
1409
+ - Add new proto_mismatch check
1410
+ - p0f: add register(), load config once, early
1411
+ - server: improved config handling
1412
+ - data.headers: add Delivered-To check
1413
+ - rcpt_to.ldap: new plugin by @abhas
1414
+ - smtp*client: only load tls*- when cfg.enable_tls
1415
+ - added plugins/host_list_base
1416
+ - Platform independent temp dir (thanks @martinvd)
1417
+ - move deprecated docs into docs/deprecated
1418
+ - Switch to Phusion baseimage instead of stock Ubuntu (thanks @Synchro)
1419
+ - dkim_verify: new plugin by @smfreegard
1420
+ - many new tests
1421
+ - improved URI parser (for URIBL plugin)
1422
+ - Allow mixed case STARTTLS command
1423
+ - Install Node via package manager (Mohd Rozi)
1424
+ - Fix a couple crit errors (@Illirgway)
1425
+ - Add noisy/bulk out-of-band rule support to MessaageSniffer plugin
1426
+ - initial support for rabbitmq plugin (@samuelharden)
1427
+ - bounce, added non_local_msgid checks and much faster lookups
1428
+ - vpopmail: fail faster during a CRAM-MD5 auth attempt with an invalid user
1429
+ - fcrdns: handle a null hostname
1430
+ - Improve HAProxy support code and documentation
1431
+ - tls: reworked for efficiency and linear style
1432
+ - access: test hostname validity before PSL lookup
1433
+ - load lists into objects (vs arrays), for much faster runtime access
1434
+ - host_list: huge performance increase, esp for many hosts
1435
+
1436
+ ### 2.5.0 - May 24, 2014
1437
+
1438
+ - added automated build testing via Travis-CI.org
1439
+ - fixed dkim_sign crash issue #560
1440
+ - geoip can discover external IP via net_utils.get_public_ip
1441
+ - geoip: skip private IPs
1442
+ - qmd: when relaying, validate MAIL FROM against QMD, add per-domain
1290
1443
  configurations, added reject option, added tests and bug fixes.
1291
- * net_utils: added is_ipv4_literal, is_public_suffix, get_public_ip, added
1444
+ - net_utils: added is_ipv4_literal, is_public_suffix, get_public_ip, added
1292
1445
  tests, shed some CamelCase.
1293
- * asn: looksup up ASN of connection, uses 3 providers, tests providers, saves
1446
+ - asn: looksup up ASN of connection, uses 3 providers, tests providers, saves
1294
1447
  results, optionally adds headers. Includes tests.
1295
- * access: new plugin that merges rdns_access, mail_from.access, and
1448
+ - access: new plugin that merges rdns_access, mail_from.access, and
1296
1449
  rcpt_to.access.
1297
- * fcrdns: new plugin (Forward Confirmed Reverse DNS)
1298
- * bounce: new plugin (merges
1299
- * data.headers: new plugin added direct_to_mx, check & reject settings, added MLM detection,
1450
+ - fcrdns: new plugin (Forward Confirmed Reverse DNS)
1451
+ - bounce: new plugin (merges
1452
+ - data.headers: new plugin added direct_to_mx, check & reject settings, added MLM detection,
1300
1453
  tests.
1301
- * helo.checks: refactored, better config handling, new tests (match_rdns,
1454
+ - helo.checks: refactored, better config handling, new tests (match_rdns,
1302
1455
  mismatch, results), reject option.
1303
- * results_store: store processing results in data structures (vs notes)
1304
- * spf: refactored, added outbound checks when relaying, added 15 tests,
1305
- * dnsbl: return errors as Error objects, reduce list to unique zones, added
1456
+ - results_store: store processing results in data structures (vs notes)
1457
+ - spf: refactored, added outbound checks when relaying, added 15 tests,
1458
+ - dnsbl: return errors as Error objects, reduce list to unique zones, added
1306
1459
  tests, added search=multi option, handle ENOTFOUND error, added reject=false option.
1307
- * dns_list_base: bug fixes (race condition, returning invalid results)
1308
- * bounce: refactored, each check has enable and reject switches, added tests,
1460
+ - dns_list_base: bug fixes (race condition, returning invalid results)
1461
+ - bounce: refactored, each check has enable and reject switches, added tests,
1309
1462
  added bad_bounce_to
1310
- * clamav: add virus name to results, better config parsing, typo fixes
1311
- * uribl:
1312
- * mf_resolvable:
1313
- * tls: add link to wiki article on TLS setup
1314
- * relay_acl: fix issue #428, refactored, don't crash when relay_dest_domains.ini
1463
+ - clamav: add virus name to results, better config parsing, typo fixes
1464
+ - uribl:
1465
+ - mf_resolvable:
1466
+ - tls: add link to wiki article on TLS setup
1467
+ - relay_acl: fix issue #428, refactored, don't crash when relay_dest_domains.ini
1315
1468
  missing, added tests
1316
- * fix mx mechanism when no records are returned
1317
- * vpopmaild: added per-domain feature
1318
- * karma: added whitelist award, pass through temp (DENYSOFT) errors, made
1469
+ - fix mx mechanism when no records are returned
1470
+ - vpopmaild: added per-domain feature
1471
+ - karma: added whitelist award, pass through temp (DENYSOFT) errors, made
1319
1472
  tarpit variable, configurable reject hooks, doc rewrite, ASN awards, fix penalty days calculation, new DSL for karma awards,
1320
- * bannering fixes
1321
- * added log\* stubs to test/fixtures/[plugin|connection]
1322
- * tests/fixtures/stub_plugin: set name property
1323
- * config: corrected handling of config.arg gets, fix caching bug, fix boolean
1473
+ - bannering fixes
1474
+ - added log* stubs to test/fixtures/[plugin|connection]
1475
+ - tests/fixtures/stub_plugin: set name property
1476
+ - config: corrected handling of config.arg gets, fix caching bug, fix boolean
1324
1477
  handling, added missing 'type' handling.
1325
- * Adding the option of using CIDR ranges in the haproxy_hosts file
1326
- * tarpit: added config option hooks_to_delay, added docs
1327
- * contrib/haraka.bsd.rc: startup file for \*BSD
1328
- * Store attachment headers on stream
1329
- * Record accepted domains at hook_rcpt and improve queue/lmtp
1330
- * return after next() in the whitelist checks
1331
- * Add new -o option to bin/haraka
1332
-
1333
- ## 2.4.0 - Feb 12, 2014
1334
-
1335
- * Trim whitespace when reading "list" type config files (such as config/plugins)
1336
- * Added LMTP via queue/lmtp plugin
1337
- * Fixed bug in outbound when temp failing some of the recipients that would prevent delivery working to those recipients for future delivery attempts
1338
- * Add additional details/parameters to delivered hook for outbound mail
1339
- * Removed the hmail.bounce_extra object as that information now stored with the rcpt_to list
1340
- * Store the RCPT TO rejection reason on the address object
1341
-
1342
-
1343
- ## 2.3.0 - Feb 07, 2014
1344
-
1345
- * Fix memory leak when watching config files for changes
1346
- * Support for badly formatted MAIL FROM/RCPT TO lines
1347
- * Fix a memory corruption when fixing line endings
1348
- * Fix breakpoints in plugins when using node inspector
1349
- * Reload config in relay_force_routing without restart
1350
- * Don't re-attempt TLS upgrade if upgraded already and STARTTLS is re-advertised
1351
- * Improved outbound logging
1352
- * Pass failed recipients to bounce hook in outbound processing
1353
- * Added startup checks to ensure Haraka has been installed correctly
1354
- * Handle case of Haraka server running out of disk space better
1355
- * In mail_from.is_resolvable: move re_bogus_ip into config
1356
- * Added auth/auth_vpopmaild plugin - SMTP AUTH against a vpopmaild server
1357
- * Fixed graph plugin to work with sqlite3
1358
- * Added rcpt_to.qmail_deliverable plugin - Authenticate inbound RCPT TOs against Qmail::Deliverable daemon
1359
- * Added data.headers plugin which merges header checks into one place.
1478
+ - Adding the option of using CIDR ranges in the haproxy_hosts file
1479
+ - tarpit: added config option hooks_to_delay, added docs
1480
+ - contrib/haraka.bsd.rc: startup file for *BSD
1481
+ - Store attachment headers on stream
1482
+ - Record accepted domains at hook_rcpt and improve queue/lmtp
1483
+ - return after next() in the whitelist checks
1484
+ - Add new -o option to bin/haraka
1485
+
1486
+ ### 2.4.0 - Feb 12, 2014
1487
+
1488
+ - Trim whitespace when reading "list" type config files (such as config/plugins)
1489
+ - Added LMTP via queue/lmtp plugin
1490
+ - Fixed bug in outbound when temp failing some of the recipients that would prevent delivery working to those recipients for future delivery attempts
1491
+ - Add additional details/parameters to delivered hook for outbound mail
1492
+ - Removed the hmail.bounce_extra object as that information now stored with the rcpt_to list
1493
+ - Store the RCPT TO rejection reason on the address object
1494
+
1495
+ ### 2.3.0 - Feb 07, 2014
1496
+
1497
+ - Fix memory leak when watching config files for changes
1498
+ - Support for badly formatted MAIL FROM/RCPT TO lines
1499
+ - Fix a memory corruption when fixing line endings
1500
+ - Fix breakpoints in plugins when using node inspector
1501
+ - Reload config in relay_force_routing without restart
1502
+ - Don't re-attempt TLS upgrade if upgraded already and STARTTLS is re-advertised
1503
+ - Improved outbound logging
1504
+ - Pass failed recipients to bounce hook in outbound processing
1505
+ - Added startup checks to ensure Haraka has been installed correctly
1506
+ - Handle case of Haraka server running out of disk space better
1507
+ - In mail_from.is_resolvable: move re_bogus_ip into config
1508
+ - Added auth/auth_vpopmaild plugin - SMTP AUTH against a vpopmaild server
1509
+ - Fixed graph plugin to work with sqlite3
1510
+ - Added rcpt_to.qmail_deliverable plugin - Authenticate inbound RCPT TOs against Qmail::Deliverable daemon
1511
+ - Added data.headers plugin which merges header checks into one place.
1360
1512
  Deprecates data.noreceived, data.rfc5322_header_checks, and data.nomsgid.
1361
- * Added documentation for logging system
1362
- * Added DKIM per-domain signing support
1363
- * Added p0f plugin
1364
- * In relay_acl, if host is allowed by acl, don't deny the recipient because the domain isn't in the allow list
1365
- * Add Authentication-Results header (RFC 5451) to all emails
1366
- * Fixed writing the todo file in outbound for newer Node versions
1367
- * Added Karma plugin to support penalizing consistently evil senders
1368
- * Added GeoIP plugin including distance calculation from your mail server
1369
- * Added bounce plugin for handling incoming bounce messages in various ways
1370
- * Fix underscores in documentation so web version doesn't look so weird
1371
- * By default prevent SMTP AUTH unless on a private IP or using TLS WARNING: May break some uses of Haraka, but is worth it for security
1372
- * In lookup_rdns.strict, check whitelist before looking up IP
1373
- * Big rewrite of the SpamAssassin plugin for simplicity and mainly to pass through X-Spam-* headers provided
1374
- * Added delay_deny plugin allowing more flexibility on when to reject mail
1375
- * Improvements to ini file parsing allowing floats and negative integers, and specifying boolean keys
1376
- * Fix issue causing a CRIT/crash with lost transaction/connection while sending inbound to ongoing SMTP server
1377
- * Allow setting of spamd_user for spamassassin plugin
1378
-
1379
-
1380
- ## 2.0.0 - Nov 28, 2012
1381
-
1382
- * Various fixes to SMTP AUTH code, including providing SMTP AUTH to inbound
1513
+ - Added documentation for logging system
1514
+ - Added DKIM per-domain signing support
1515
+ - Added p0f plugin
1516
+ - In relay_acl, if host is allowed by acl, don't deny the recipient because the domain isn't in the allow list
1517
+ - Add Authentication-Results header (RFC 5451) to all emails
1518
+ - Fixed writing the todo file in outbound for newer Node versions
1519
+ - Added Karma plugin to support penalizing consistently evil senders
1520
+ - Added GeoIP plugin including distance calculation from your mail server
1521
+ - Added bounce plugin for handling incoming bounce messages in various ways
1522
+ - Fix underscores in documentation so web version doesn't look so weird
1523
+ - By default prevent SMTP AUTH unless on a private IP or using TLS WARNING: May break some uses of Haraka, but is worth it for security
1524
+ - In lookup_rdns.strict, check whitelist before looking up IP
1525
+ - Big rewrite of the SpamAssassin plugin for simplicity and mainly to pass through X-Spam-* headers provided
1526
+ - Added delay_deny plugin allowing more flexibility on when to reject mail
1527
+ - Improvements to ini file parsing allowing floats and negative integers, and specifying boolean keys
1528
+ - Fix issue causing a CRIT/crash with lost transaction/connection while sending inbound to ongoing SMTP server
1529
+ - Allow setting of spamd_user for spamassassin plugin
1530
+
1531
+ ### 2.0.0 - Nov 28, 2012
1532
+
1533
+ - Various fixes to SMTP AUTH code, including providing SMTP AUTH to inbound
1383
1534
  mail forwarders.
1384
- * Updates to process_title plugin to show more details
1385
- * Changed transaction.data_lines to a Stream (this will break all code which
1535
+ - Updates to process_title plugin to show more details
1536
+ - Changed transaction.data_lines to a Stream (this will break all code which
1386
1537
  uses transaction.data_lines currently - see the migration guide)
1387
- * Changed attachments to be a Stream (this will break some code which uses
1538
+ - Changed attachments to be a Stream (this will break some code which uses
1388
1539
  transaction.attachment_hooks - see the migration guide)
1389
- * Capture and log signals sent to Haraka
1390
- * Various performance improvements
1391
- * Fixed a memory leak in connection pool
1392
- * Improvements to TLS compatibility
1393
- * RFC compliance improvements with greeting, EHLO/HELO, QUIT, and dot stuffing
1394
- * Throw exception with set_banner as it is now non-functional. Will be returned in a future version.
1395
- * Small fixes to data.uribl
1396
-
1397
- ## 1.4.0 -
1540
+ - Capture and log signals sent to Haraka
1541
+ - Various performance improvements
1542
+ - Fixed a memory leak in connection pool
1543
+ - Improvements to TLS compatibility
1544
+ - RFC compliance improvements with greeting, EHLO/HELO, QUIT, and dot stuffing
1545
+ - Throw exception with set_banner as it is now non-functional. Will be returned in a future version.
1546
+ - Small fixes to data.uribl
1398
1547
 
1548
+ ### 1.4.0 -
1399
1549
 
1400
1550
  [3.0.0]: https://github.com/haraka/Haraka/releases/tag/3.0.0
1401
- [3.0.1]: https://github.com/haraka/Haraka/releases/tag/3.0.1
1402
- [3.0.2]: https://github.com/haraka/Haraka/releases/tag/3.0.2
1403
- [3.0.3]: https://github.com/haraka/Haraka/releases/tag/3.0.3
1551
+ [3.0.1]: https://github.com/haraka/Haraka/releases/tag/v3.0.1
1552
+ [3.0.2]: https://github.com/haraka/Haraka/releases/tag/v3.0.2
1553
+ [3.0.3]: https://github.com/haraka/Haraka/releases/tag/v3.0.3
1554
+ [3.0.4]: https://github.com/haraka/Haraka/releases/tag/3.0.4