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