Haraka 3.1.0 → 3.1.2

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 (160) hide show
  1. package/.prettierignore +4 -0
  2. package/CONTRIBUTORS.md +5 -5
  3. package/Changes.md +69 -50
  4. package/Plugins.md +3 -1
  5. package/README.md +1 -1
  6. package/bin/haraka +475 -478
  7. package/config/outbound.ini +3 -0
  8. package/connection.js +1072 -1108
  9. package/docs/Connection.md +29 -30
  10. package/docs/CoreConfig.md +38 -39
  11. package/docs/CustomReturnCodes.md +0 -1
  12. package/docs/HAProxy.md +2 -2
  13. package/docs/Header.md +1 -1
  14. package/docs/Logging.md +29 -5
  15. package/docs/Outbound.md +93 -78
  16. package/docs/Plugins.md +103 -108
  17. package/docs/Transaction.md +49 -51
  18. package/docs/Tutorial.md +127 -143
  19. package/docs/deprecated/access.md +0 -1
  20. package/docs/deprecated/backscatterer.md +2 -3
  21. package/docs/deprecated/connect.rdns_access.md +18 -27
  22. package/docs/deprecated/data.headers.md +0 -1
  23. package/docs/deprecated/data.nomsgid.md +1 -2
  24. package/docs/deprecated/data.noreceived.md +1 -2
  25. package/docs/deprecated/data.rfc5322_header_checks.md +1 -2
  26. package/docs/deprecated/dkim_sign.md +13 -17
  27. package/docs/deprecated/dkim_verify.md +9 -17
  28. package/docs/deprecated/dnsbl.md +36 -38
  29. package/docs/deprecated/dnswl.md +41 -43
  30. package/docs/deprecated/lookup_rdns.strict.md +21 -34
  31. package/docs/deprecated/mail_from.access.md +17 -25
  32. package/docs/deprecated/mail_from.blocklist.md +9 -12
  33. package/docs/deprecated/mail_from.nobounces.md +1 -2
  34. package/docs/deprecated/rcpt_to.access.md +20 -27
  35. package/docs/deprecated/rcpt_to.blocklist.md +10 -13
  36. package/docs/deprecated/rcpt_to.routes.md +0 -1
  37. package/docs/deprecated/rdns.regexp.md +13 -15
  38. package/docs/plugins/aliases.md +89 -89
  39. package/docs/plugins/auth/auth_bridge.md +5 -7
  40. package/docs/plugins/auth/auth_ldap.md +11 -14
  41. package/docs/plugins/auth/auth_proxy.md +10 -12
  42. package/docs/plugins/auth/auth_vpopmaild.md +5 -6
  43. package/docs/plugins/auth/flat_file.md +4 -4
  44. package/docs/plugins/block_me.md +3 -3
  45. package/docs/plugins/data.signatures.md +1 -2
  46. package/docs/plugins/delay_deny.md +3 -4
  47. package/docs/plugins/max_unrecognized_commands.md +4 -4
  48. package/docs/plugins/prevent_credential_leaks.md +6 -6
  49. package/docs/plugins/process_title.md +18 -18
  50. package/docs/plugins/queue/deliver.md +2 -3
  51. package/docs/plugins/queue/discard.md +4 -4
  52. package/docs/plugins/queue/lmtp.md +1 -3
  53. package/docs/plugins/queue/qmail-queue.md +7 -9
  54. package/docs/plugins/queue/quarantine.md +16 -21
  55. package/docs/plugins/queue/rabbitmq.md +8 -11
  56. package/docs/plugins/queue/rabbitmq_amqplib.md +43 -39
  57. package/docs/plugins/queue/smtp_bridge.md +7 -10
  58. package/docs/plugins/queue/smtp_forward.md +42 -34
  59. package/docs/plugins/queue/smtp_proxy.md +30 -29
  60. package/docs/plugins/queue/test.md +1 -3
  61. package/docs/plugins/rcpt_to.in_host_list.md +6 -6
  62. package/docs/plugins/rcpt_to.max_count.md +1 -1
  63. package/docs/plugins/record_envelope_addresses.md +3 -3
  64. package/docs/plugins/reseed_rng.md +6 -6
  65. package/docs/plugins/status.md +9 -8
  66. package/docs/plugins/tarpit.md +7 -11
  67. package/docs/plugins/tls.md +12 -17
  68. package/docs/plugins/toobusy.md +4 -4
  69. package/docs/plugins/xclient.md +3 -3
  70. package/docs/tutorials/Migrating_from_v1_to_v2.md +19 -41
  71. package/docs/tutorials/SettingUpOutbound.md +6 -9
  72. package/endpoint.js +35 -38
  73. package/eslint.config.mjs +22 -19
  74. package/haraka.js +42 -47
  75. package/host_pool.js +75 -79
  76. package/http/html/404.html +45 -49
  77. package/http/html/index.html +39 -28
  78. package/http/package.json +2 -4
  79. package/line_socket.js +27 -28
  80. package/logger.js +182 -201
  81. package/outbound/client_pool.js +34 -27
  82. package/outbound/config.js +64 -59
  83. package/outbound/fsync_writestream.js +24 -25
  84. package/outbound/hmail.js +888 -835
  85. package/outbound/index.js +194 -187
  86. package/outbound/qfile.js +49 -52
  87. package/outbound/queue.js +197 -190
  88. package/outbound/timer_queue.js +41 -43
  89. package/outbound/tls.js +68 -61
  90. package/outbound/todo.js +11 -11
  91. package/package.json +38 -33
  92. package/plugins/.eslintrc.yaml +0 -1
  93. package/plugins/auth/auth_base.js +123 -127
  94. package/plugins/auth/auth_bridge.js +7 -7
  95. package/plugins/auth/auth_proxy.js +121 -126
  96. package/plugins/auth/auth_vpopmaild.js +84 -85
  97. package/plugins/auth/flat_file.js +18 -17
  98. package/plugins/block_me.js +31 -31
  99. package/plugins/data.signatures.js +13 -13
  100. package/plugins/delay_deny.js +65 -61
  101. package/plugins/prevent_credential_leaks.js +23 -23
  102. package/plugins/process_title.js +125 -128
  103. package/plugins/profile.js +5 -5
  104. package/plugins/queue/deliver.js +3 -3
  105. package/plugins/queue/discard.js +13 -14
  106. package/plugins/queue/lmtp.js +16 -17
  107. package/plugins/queue/qmail-queue.js +54 -55
  108. package/plugins/queue/quarantine.js +68 -70
  109. package/plugins/queue/rabbitmq.js +80 -87
  110. package/plugins/queue/rabbitmq_amqplib.js +75 -54
  111. package/plugins/queue/smtp_bridge.js +16 -16
  112. package/plugins/queue/smtp_forward.js +175 -179
  113. package/plugins/queue/smtp_proxy.js +69 -71
  114. package/plugins/queue/test.js +9 -9
  115. package/plugins/rcpt_to.host_list_base.js +30 -34
  116. package/plugins/rcpt_to.in_host_list.js +19 -19
  117. package/plugins/record_envelope_addresses.js +4 -4
  118. package/plugins/reseed_rng.js +4 -4
  119. package/plugins/status.js +90 -97
  120. package/plugins/tarpit.js +25 -14
  121. package/plugins/tls.js +68 -68
  122. package/plugins/toobusy.js +21 -23
  123. package/plugins/xclient.js +51 -53
  124. package/plugins.js +276 -293
  125. package/rfc1869.js +30 -35
  126. package/server.js +308 -299
  127. package/smtp_client.js +244 -228
  128. package/test/.eslintrc.yaml +0 -1
  129. package/test/connection.js +127 -134
  130. package/test/endpoint.js +53 -47
  131. package/test/fixtures/line_socket.js +12 -12
  132. package/test/fixtures/util_hmailitem.js +89 -85
  133. package/test/host_pool.js +90 -92
  134. package/test/installation/plugins/base_plugin.js +2 -2
  135. package/test/installation/plugins/folder_plugin/index.js +2 -3
  136. package/test/installation/plugins/inherits.js +3 -3
  137. package/test/installation/plugins/load_first.js +2 -3
  138. package/test/installation/plugins/plugin.js +1 -3
  139. package/test/installation/plugins/tls.js +2 -4
  140. package/test/logger.js +135 -116
  141. package/test/outbound/hmail.js +49 -35
  142. package/test/outbound/index.js +118 -101
  143. package/test/outbound/qfile.js +51 -53
  144. package/test/outbound_bounce_net_errors.js +84 -69
  145. package/test/outbound_bounce_rfc3464.js +235 -165
  146. package/test/plugins/auth/auth_base.js +420 -279
  147. package/test/plugins/auth/auth_vpopmaild.js +38 -39
  148. package/test/plugins/queue/smtp_forward.js +126 -104
  149. package/test/plugins/rcpt_to.host_list_base.js +85 -67
  150. package/test/plugins/rcpt_to.in_host_list.js +159 -112
  151. package/test/plugins/status.js +71 -64
  152. package/test/plugins/tls.js +37 -34
  153. package/test/plugins.js +97 -92
  154. package/test/rfc1869.js +19 -26
  155. package/test/server.js +293 -272
  156. package/test/smtp_client.js +180 -176
  157. package/test/tls_socket.js +62 -66
  158. package/test/transaction.js +159 -160
  159. package/tls_socket.js +331 -333
  160. package/transaction.js +129 -137
@@ -0,0 +1,4 @@
1
+ docs/*.md
2
+ Changes.md
3
+ CONTRIBUTORS.md
4
+ Plugins.md
package/CONTRIBUTORS.md CHANGED
@@ -1,12 +1,12 @@
1
1
  # Contributors
2
2
 
3
- This handcrafted artisinal software is brought to you by:
3
+ This handcrafted artisanal software is brought to you by:
4
4
 
5
- | <img height="80" src="https://avatars.githubusercontent.com/u/261635?v=4"><br><a href="https://github.com/msimerson">msimerson</a> (<a href="https://github.com/haraka/Haraka/commits?author=msimerson">1633</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/662371?v=4"><br><a href="https://github.com/baudehlo">baudehlo</a> (<a href="https://github.com/haraka/Haraka/commits?author=baudehlo">969</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/550490?v=4"><br><a href="https://github.com/smfreegard">smfreegard</a> (<a href="https://github.com/haraka/Haraka/commits?author=smfreegard">794</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/959600?v=4"><br><a href="https://github.com/godsflaw">godsflaw</a> (<a href="https://github.com/haraka/Haraka/commits?author=godsflaw">171</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/934254?v=4"><br><a href="https://github.com/analogic">analogic</a> (<a href="https://github.com/haraka/Haraka/commits?author=analogic">42</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/1674289?v=4"><br><a href="https://github.com/Dexus">Dexus</a> (<a href="https://github.com/haraka/Haraka/commits?author=Dexus">42</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/82041?v=4"><br><a href="https://github.com/gramakri">gramakri</a> (<a href="https://github.com/haraka/Haraka/commits?author=gramakri">37</a>)|
5
+ | <img height="80" src="https://avatars.githubusercontent.com/u/261635?v=4"><br><a href="https://github.com/msimerson">msimerson</a> (<a href="https://github.com/haraka/Haraka/commits?author=msimerson">1643</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/662371?v=4"><br><a href="https://github.com/baudehlo">baudehlo</a> (<a href="https://github.com/haraka/Haraka/commits?author=baudehlo">969</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/550490?v=4"><br><a href="https://github.com/smfreegard">smfreegard</a> (<a href="https://github.com/haraka/Haraka/commits?author=smfreegard">794</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/959600?v=4"><br><a href="https://github.com/godsflaw">godsflaw</a> (<a href="https://github.com/haraka/Haraka/commits?author=godsflaw">171</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/934254?v=4"><br><a href="https://github.com/analogic">analogic</a> (<a href="https://github.com/haraka/Haraka/commits?author=analogic">42</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/1674289?v=4"><br><a href="https://github.com/Dexus">Dexus</a> (<a href="https://github.com/haraka/Haraka/commits?author=Dexus">42</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/82041?v=4"><br><a href="https://github.com/gramakri">gramakri</a> (<a href="https://github.com/haraka/Haraka/commits?author=gramakri">40</a>)|
6
6
  | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
7
- | <img height="80" src="https://avatars.githubusercontent.com/u/203240?v=4"><br><a href="https://github.com/lnedry">lnedry</a> (<a href="https://github.com/haraka/Haraka/commits?author=lnedry">26</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/748075?v=4"><br><a href="https://github.com/celesteking">celesteking</a> (<a href="https://github.com/haraka/Haraka/commits?author=celesteking">21</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/791972?v=4"><br><a href="https://github.com/lpatters">lpatters</a> (<a href="https://github.com/haraka/Haraka/commits?author=lpatters">20</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/366268?v=4"><br><a href="https://github.com/chazomaticus">chazomaticus</a> (<a href="https://github.com/haraka/Haraka/commits?author=chazomaticus">19</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/271024?v=4"><br><a href="https://github.com/hayesgm">hayesgm</a> (<a href="https://github.com/haraka/Haraka/commits?author=hayesgm">16</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/123708?v=4"><br><a href="https://github.com/arlolra">arlolra</a> (<a href="https://github.com/haraka/Haraka/commits?author=arlolra">16</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/1573133?v=4"><br><a href="https://github.com/gauravaror">gauravaror</a> (<a href="https://github.com/haraka/Haraka/commits?author=gauravaror">14</a>)|
8
- | <img height="80" src="https://avatars.githubusercontent.com/u/260607?v=4"><br><a href="https://github.com/typingArtist">typingArtist</a> (<a href="https://github.com/haraka/Haraka/commits?author=typingArtist">14</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/158380?v=4"><br><a href="https://github.com/darkpixel">darkpixel</a> (<a href="https://github.com/haraka/Haraka/commits?author=darkpixel">12</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/11343494?v=4"><br><a href="https://github.com/superman20">superman20</a> (<a href="https://github.com/haraka/Haraka/commits?author=superman20">12</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/9887966?v=4"><br><a href="https://github.com/KingNoosh">KingNoosh</a> (<a href="https://github.com/haraka/Haraka/commits?author=KingNoosh">11</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/5229495?v=4"><br><a href="https://github.com/tstonis">tstonis</a> (<a href="https://github.com/haraka/Haraka/commits?author=tstonis">10</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/1746394?v=4"><br><a href="https://github.com/wltsmrz">wltsmrz</a> (<a href="https://github.com/haraka/Haraka/commits?author=wltsmrz">9</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/81561?v=4"><br><a href="https://github.com/Synchro">Synchro</a> (<a href="https://github.com/haraka/Haraka/commits?author=Synchro">8</a>)|
9
- | <img height="80" src="https://avatars.githubusercontent.com/u/2176651?v=4"><br><a href="https://github.com/fatalbanana">fatalbanana</a> (<a href="https://github.com/haraka/Haraka/commits?author=fatalbanana">8</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/231081?v=4"><br><a href="https://github.com/EyePulp">EyePulp</a> (<a href="https://github.com/haraka/Haraka/commits?author=EyePulp">8</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/3957811?v=4"><br><a href="https://github.com/gene-hightower">gene-hightower</a> (<a href="https://github.com/haraka/Haraka/commits?author=gene-hightower">7</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/8224508?v=4"><br><a href="https://github.com/DarkSorrow">DarkSorrow</a> (<a href="https://github.com/haraka/Haraka/commits?author=DarkSorrow">6</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/103802?v=4"><br><a href="https://github.com/joshuathayer">joshuathayer</a> (<a href="https://github.com/haraka/Haraka/commits?author=joshuathayer">6</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/1521113?v=4"><br><a href="https://github.com/hontas">hontas</a> (<a href="https://github.com/haraka/Haraka/commits?author=hontas">5</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/1263856?v=4"><br><a href="https://github.com/ricardopolo">ricardopolo</a> (<a href="https://github.com/haraka/Haraka/commits?author=ricardopolo">5</a>)|
7
+ | <img height="80" src="https://avatars.githubusercontent.com/u/203240?v=4"><br><a href="https://github.com/lnedry">lnedry</a> (<a href="https://github.com/haraka/Haraka/commits?author=lnedry">26</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/748075?v=4"><br><a href="https://github.com/celesteking">celesteking</a> (<a href="https://github.com/haraka/Haraka/commits?author=celesteking">21</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/791972?v=4"><br><a href="https://github.com/lpatters">lpatters</a> (<a href="https://github.com/haraka/Haraka/commits?author=lpatters">20</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/366268?v=4"><br><a href="https://github.com/chazomaticus">chazomaticus</a> (<a href="https://github.com/haraka/Haraka/commits?author=chazomaticus">19</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/123708?v=4"><br><a href="https://github.com/arlolra">arlolra</a> (<a href="https://github.com/haraka/Haraka/commits?author=arlolra">16</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/271024?v=4"><br><a href="https://github.com/hayesgm">hayesgm</a> (<a href="https://github.com/haraka/Haraka/commits?author=hayesgm">16</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/1573133?v=4"><br><a href="https://github.com/gauravaror">gauravaror</a> (<a href="https://github.com/haraka/Haraka/commits?author=gauravaror">14</a>)|
8
+ | <img height="80" src="https://avatars.githubusercontent.com/u/260607?v=4"><br><a href="https://github.com/typingArtist">typingArtist</a> (<a href="https://github.com/haraka/Haraka/commits?author=typingArtist">14</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/11343494?v=4"><br><a href="https://github.com/superman20">superman20</a> (<a href="https://github.com/haraka/Haraka/commits?author=superman20">13</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/158380?v=4"><br><a href="https://github.com/darkpixel">darkpixel</a> (<a href="https://github.com/haraka/Haraka/commits?author=darkpixel">12</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/9887966?v=4"><br><a href="https://github.com/KingNoosh">KingNoosh</a> (<a href="https://github.com/haraka/Haraka/commits?author=KingNoosh">11</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/5229495?v=4"><br><a href="https://github.com/tstonis">tstonis</a> (<a href="https://github.com/haraka/Haraka/commits?author=tstonis">10</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/1746394?v=4"><br><a href="https://github.com/wltsmrz">wltsmrz</a> (<a href="https://github.com/haraka/Haraka/commits?author=wltsmrz">9</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/218741413?v=4"><br><a href="https://github.com/SamuelGrave">SamuelGrave</a> (<a href="https://github.com/haraka/Haraka/commits?author=SamuelGrave">9</a>)|
9
+ | <img height="80" src="https://avatars.githubusercontent.com/u/2176651?v=4"><br><a href="https://github.com/fatalbanana">fatalbanana</a> (<a href="https://github.com/haraka/Haraka/commits?author=fatalbanana">9</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/231081?v=4"><br><a href="https://github.com/EyePulp">EyePulp</a> (<a href="https://github.com/haraka/Haraka/commits?author=EyePulp">8</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/81561?v=4"><br><a href="https://github.com/Synchro">Synchro</a> (<a href="https://github.com/haraka/Haraka/commits?author=Synchro">8</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/3957811?v=4"><br><a href="https://github.com/gene-hightower">gene-hightower</a> (<a href="https://github.com/haraka/Haraka/commits?author=gene-hightower">7</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/8224508?v=4"><br><a href="https://github.com/DarkSorrow">DarkSorrow</a> (<a href="https://github.com/haraka/Haraka/commits?author=DarkSorrow">6</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/103802?v=4"><br><a href="https://github.com/joshuathayer">joshuathayer</a> (<a href="https://github.com/haraka/Haraka/commits?author=joshuathayer">6</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/298453?v=4"><br><a href="https://github.com/zllovesuki">zllovesuki</a> (<a href="https://github.com/haraka/Haraka/commits?author=zllovesuki">5</a>)|
10
10
 
11
11
  <sub>this file is generated by [.release](https://github.com/msimerson/.release).
12
12
  Contribute to this project to get your GitHub profile included here.</sub>
package/Changes.md CHANGED
@@ -4,6 +4,30 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
4
4
 
5
5
  ### Unreleased
6
6
 
7
+ ### [3.1.2] - 2026-01-02
8
+
9
+ - smtp_forward: [domain selector] : user + domain #3501
10
+ - rspamd: revert to older plugin version #3493
11
+ - feat: push to a 'release' branch with package-lock.json #3474
12
+ - change: finish renaming dot_stuffing to dot_stuffed #3473
13
+ - deps: require node 20+
14
+ - deps: bump all deps to latest
15
+ - deps: bump message-stream to 1.3.0, add some missing ^ chars
16
+ - dep(tmp): deleted, only used in attachment plugin
17
+ - feat(outbound): configurable outbound IPv4/IPv6 preference using `inet_prefer`
18
+ - feat(outbound): deferred hook is now passed the failed recips and mx #3505
19
+ - feat(rabbitmq_amqplib): configurable optional exchange arguments #3472
20
+ - feat(rabbitmq_amqplib): configurable message priority #3472
21
+ - fix: auth_proxy TLS upgrade works again #3514
22
+ - doc(Plugins): add save-sent #3497
23
+ - doc(README): update DKIM plugin link, #3490
24
+ - style: run prettier in repo #3504
25
+
26
+ ### [3.1.1] - 2025-05-19
27
+
28
+ - Fix: install connection.ini with base configuration on install #3458
29
+ - fix(outbound): in outbound, fix a crash when socket connection errors #3456
30
+
7
31
  ### [3.1.0] - 2025-01-30
8
32
 
9
33
  #### Changes
@@ -12,23 +36,23 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
12
36
 
13
37
  `connection.ini` replaces the following config files:
14
38
 
15
- | old file | connection.ini setting |
16
- | ------ | ------ |
17
- | haproxy_hosts | [haproxy] hosts |
18
- | smtpgreeting | [message] greeting |
19
- | ehlo_hello_message | [message] helo |
20
- | connection_close_message | [message] close |
21
- | banner_includes_uuid | [uuid] banner_chars |
22
- | deny_includes_uuid | [uuid] deny_chars |
23
- | databytes | [max] bytes |
24
- | max_mime_parts | [max] mime_parts |
25
- | max_line_length | [max] line_length |
26
- | max_data_line_length | [max] data_line_length |
27
-
28
- AND
39
+ | old file | connection.ini setting |
40
+ | ------------------------ | ---------------------- |
41
+ | haproxy_hosts | [haproxy] hosts |
42
+ | smtpgreeting | [message] greeting |
43
+ | ehlo_hello_message | [message] helo |
44
+ | connection_close_message | [message] close |
45
+ | banner_includes_uuid | [uuid] banner_chars |
46
+ | deny_includes_uuid | [uuid] deny_chars |
47
+ | databytes | [max] bytes |
48
+ | max_mime_parts | [max] mime_parts |
49
+ | max_line_length | [max] line_length |
50
+ | max_data_line_length | [max] data_line_length |
51
+
52
+ AND
29
53
 
30
54
  - moves the following settings from smtp.ini to connection.ini:
31
- - headers.*
55
+ - headers.\*
32
56
  - main.smtp_utf8
33
57
  - main.strict_rfc1869
34
58
  - early_talker.pause, removed support, use earlytalker.ini
@@ -84,7 +108,6 @@ config files.
84
108
  - plugin-elastisearch: 8.0.3
85
109
  - test-fixtures: 1.3.8
86
110
 
87
-
88
111
  ### [3.0.4] - 2024-08-21
89
112
 
90
113
  #### Added
@@ -95,7 +118,7 @@ config files.
95
118
  #### Changed
96
119
 
97
120
  - prefix node libs with 'node:' #3359
98
- - .gitignore: add config/me and config/*.pem
121
+ - .gitignore: add config/me and config/\*.pem
99
122
  - auth_base: enable disabling constrain_sender at runtime #3298
100
123
  - auth_base: skip constrain_sender when auth user has no domain #3319
101
124
  - avg: repackaged as NPM module #3347
@@ -103,7 +126,7 @@ config files.
103
126
  - clamd: repackaged plugin as NPM module
104
127
  - config/plugins: consistent formatting #3359
105
128
  - connection: check remote is connected before queue #3338
106
- - improve log message for queue* hooks, fixes #2998
129
+ - improve log message for queue\* hooks, fixes #2998
107
130
  - support IPv6 when setting remote.is_private #3295
108
131
  - in setTLS, replace forEach with for...of
109
132
  - NOTE: remove a handful of 3.0 sunset property names #3315
@@ -154,7 +177,7 @@ config files.
154
177
  - doc(Outbound.md): improve GHFM formatting
155
178
  - remove last vestiges of header_hide_version (long ago renamed)
156
179
  - server.js: use the local logger methods
157
- - es6(async): _graceful, get_smtp_server, setup_smtp_listeners
180
+ - es6(async): \_graceful, get_smtp_server, setup_smtp_listeners
158
181
  - replace async.eachLimit with Promise.all batches
159
182
  - status: replace async.map with Promise.allSettled
160
183
  - get Haraka version from utils.getVersion (which includes git id if running from repo)
@@ -287,7 +310,7 @@ config files.
287
310
  - dep(haraka-plugin-redis)!: 1.0 -> 2.0 #3038
288
311
  - dep(redis)!: 3.1 -> 4.1 #3058
289
312
  - dep(generic-pool): remove pooling from outbound #3115
290
- - smtp_client: remove smtp_\* pooling support in #3113
313
+ - smtp_client: remove smtp\_\* pooling support in #3113
291
314
  - dep: bump plugin versions #3063
292
315
  - dep: bump haraka-plugin-asn from 1.0.9 to 2.0.0 #3062
293
316
  - dep(redis): 3.1 -> 4.1 #3058
@@ -476,7 +499,7 @@ config files.
476
499
  - smtp_client: pass pool_timeout to new SMTPClient #2574
477
500
  - server: default to nodes=1 (was undefined) #2573
478
501
  - test/server: use IPv4 127.0.0.1 instead of localhost #2584
479
- - queue/smtp_*: add v3 upgrade notice and config setting #2585
502
+ - queue/smtp\_\*: add v3 upgrade notice and config setting #2585
480
503
  - spf: use the skip config for helo/ehlo checks #2587
481
504
  - spf: avoid 2nd EHLO evaluation if EHLO host is identical #2592
482
505
  - queue.js refactoring #2593
@@ -569,7 +592,7 @@ config files.
569
592
 
570
593
  #### Fixes
571
594
 
572
- - data_headers: check defined-ness of hdr_address _after_ try/catch #2458
595
+ - data_headers: check defined-ness of hdr_address *after* try/catch #2458
573
596
  - tls: remove tls.ini loading from plugins/tls #2459
574
597
  - tls: remove invalid opt from load_tls_ini #2456
575
598
  - outbound: escape values in HTML bounce correctly #2446
@@ -765,18 +788,18 @@ config files.
765
788
 
766
789
  #### Changes
767
790
 
768
- - additional tests get var -> const/let medicine #2122
769
- - move connection states into haraka-constants #2121
770
- - lint: remove useless escapes #2117
771
- - lint: switch no-var to error #2109
772
- - rspamd: repackaged as NPM module #2106
773
- - dsn: repackaged as NPM module haraka-dsn #2105
774
- - outbound: add results when queueing #2103
775
- - spamassassin: skip adding headers when value is empty #2102
776
- - Replace console.log with stdout #2100
777
- - update js-yaml to version 3.10.0 #2097
778
- - repackage p0f plugin to NPM #2076
779
- - ES6: replace var with const or let #2073
791
+ - additional tests get var -> const/let medicine #2122
792
+ - move connection states into haraka-constants #2121
793
+ - lint: remove useless escapes #2117
794
+ - lint: switch no-var to error #2109
795
+ - rspamd: repackaged as NPM module #2106
796
+ - dsn: repackaged as NPM module haraka-dsn #2105
797
+ - outbound: add results when queueing #2103
798
+ - spamassassin: skip adding headers when value is empty #2102
799
+ - Replace console.log with stdout #2100
800
+ - update js-yaml to version 3.10.0 #2097
801
+ - repackage p0f plugin to NPM #2076
802
+ - ES6: replace var with const or let #2073
780
803
 
781
804
  #### New Features
782
805
 
@@ -1005,7 +1028,7 @@ config files.
1005
1028
  - bring port 465 SMTPS TLS config support on par with STARTTLS #1667
1006
1029
  - use tls.connect instead of createSecurePair #1678
1007
1030
  - redis: improve error handling in tests #
1008
- - replace / path seperators with path.* for cross platform compat #1713
1031
+ - replace / path seperators with path.\* for cross platform compat #1713
1009
1032
 
1010
1033
  #### Fixes
1011
1034
 
@@ -1189,7 +1212,7 @@ config files.
1189
1212
  #### New Features
1190
1213
 
1191
1214
  - Added bin/haraka --qunstick <domain> to flush all mails
1192
- for that domain (#1460)
1215
+ for that domain (#1460)
1193
1216
 
1194
1217
  #### Improvements
1195
1218
 
@@ -1211,8 +1234,8 @@ config files.
1211
1234
  - remove spameatingmonkey from tests (#1421)
1212
1235
  - replace ./constants.js with haraka-constants (#1353)
1213
1236
  - Document HMail and TODO items (#1343)
1214
- - Copy only a minimal config/* by default (#1341).
1215
- - cfreader/* removed to haraka/haraka-config (#1350)
1237
+ - Copy only a minimal config/\* by default (#1341).
1238
+ - cfreader/\* removed to haraka/haraka-config (#1350)
1216
1239
  - outbound and smtp_client honor tls.ini settings (#1350)
1217
1240
  - outbound TLS defaults to enabled
1218
1241
  - lint: remove all unused variables (#1358)
@@ -1234,7 +1257,7 @@ config files.
1234
1257
  - removed TLD stuff to haraka/haraka-tld (#1301)
1235
1258
  - removed unused 'require('redis') in plugins/karma (#1348)
1236
1259
  - improved MIME header support per rfc2231 (#1344)
1237
- - tls options can be defined for outbound and smtp_* (#1357)
1260
+ - tls options can be defined for outbound and smtp\_\* (#1357)
1238
1261
  - explicitly disable SSLv2 (#1395)
1239
1262
  - cache STUN results
1240
1263
  - xclient plugin improvements (#1405)
@@ -1421,7 +1444,7 @@ config files.
1421
1444
  - dkim_verify: fixed timeout issue
1422
1445
  - smtp\_[proxy|forward]: correct authentication example
1423
1446
  - Fork child workers after init_master hook
1424
- - connection: return 450/550 for plugin DENY* (was 452/552)
1447
+ - connection: return 450/550 for plugin DENY\* (was 452/552)
1425
1448
  - spamassassin: don't call next() when transaction gone
1426
1449
  - outbound: fix crash when sending bounce mail
1427
1450
  - auth_base: fix bad protocol in auth_base.js #1121 (@Dexus)
@@ -1554,13 +1577,13 @@ config files.
1554
1577
  - karma: added whitelist award, pass through temp (DENYSOFT) errors, made
1555
1578
  tarpit variable, configurable reject hooks, doc rewrite, ASN awards, fix penalty days calculation, new DSL for karma awards,
1556
1579
  - bannering fixes
1557
- - added log* stubs to test/fixtures/[plugin|connection]
1580
+ - added log\* stubs to test/fixtures/[plugin|connection]
1558
1581
  - tests/fixtures/stub_plugin: set name property
1559
1582
  - config: corrected handling of config.arg gets, fix caching bug, fix boolean
1560
1583
  handling, added missing 'type' handling.
1561
1584
  - Adding the option of using CIDR ranges in the haproxy_hosts file
1562
1585
  - tarpit: added config option hooks_to_delay, added docs
1563
- - contrib/haraka.bsd.rc: startup file for *BSD
1586
+ - contrib/haraka.bsd.rc: startup file for \*BSD
1564
1587
  - Store attachment headers on stream
1565
1588
  - Record accepted domains at hook_rcpt and improve queue/lmtp
1566
1589
  - return after next() in the whitelist checks
@@ -1605,7 +1628,7 @@ config files.
1605
1628
  - Fix underscores in documentation so web version doesn't look so weird
1606
1629
  - 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
1607
1630
  - In lookup_rdns.strict, check whitelist before looking up IP
1608
- - Big rewrite of the SpamAssassin plugin for simplicity and mainly to pass through X-Spam-* headers provided
1631
+ - Big rewrite of the SpamAssassin plugin for simplicity and mainly to pass through X-Spam-\* headers provided
1609
1632
  - Added delay_deny plugin allowing more flexibility on when to reject mail
1610
1633
  - Improvements to ini file parsing allowing floats and negative integers, and specifying boolean keys
1611
1634
  - Fix issue causing a CRIT/crash with lost transaction/connection while sending inbound to ongoing SMTP server
@@ -1628,7 +1651,6 @@ config files.
1628
1651
  - Throw exception with set_banner as it is now non-functional. Will be returned in a future version.
1629
1652
  - Small fixes to data.uribl
1630
1653
 
1631
-
1632
1654
  [3.0.0]: https://github.com/haraka/Haraka/releases/tag/3.0.0
1633
1655
  [3.0.1]: https://github.com/haraka/Haraka/releases/tag/v3.0.1
1634
1656
  [3.0.2]: https://github.com/haraka/Haraka/releases/tag/v3.0.2
@@ -1636,7 +1658,6 @@ config files.
1636
1658
  [3.0.4]: https://github.com/haraka/Haraka/releases/tag/3.0.4
1637
1659
  [3.0.5]: https://github.com/haraka/Haraka/releases/tag/v3.0.5
1638
1660
  [3.0.6]: https://github.com/haraka/Haraka/releases/tag/v3.0.6
1639
-
1640
1661
  [2.8.0]: https://github.com/haraka/Haraka/releases/tag/v2.8.0
1641
1662
  [2.8.1]: https://github.com/haraka/Haraka/releases/tag/v2.8.1
1642
1663
  [2.8.3]: https://github.com/haraka/Haraka/releases/tag/v2.8.3
@@ -1664,12 +1685,10 @@ config files.
1664
1685
  [2.8.26]: https://github.com/haraka/Haraka/releases/tag/2.8.26
1665
1686
  [2.8.27]: https://github.com/haraka/Haraka/releases/tag/2.8.27
1666
1687
  [2.8.28]: https://github.com/haraka/Haraka/releases/tag/2.8.28
1667
-
1668
1688
  [2.7.3]: https://github.com/haraka/Haraka/releases/tag/v2.7.3
1669
1689
  [2.7.2]: https://github.com/haraka/Haraka/releases/tag/v2.7.2
1670
1690
  [2.7.1]: https://github.com/haraka/Haraka/releases/tag/v2.7.1
1671
1691
  [2.7.0]: https://github.com/haraka/Haraka/releases/tag/v2.7.0
1672
-
1673
1692
  [2.6.0]: https://github.com/haraka/Haraka/releases/tag/v2.6.0
1674
1693
  [2.6.1]: https://github.com/haraka/Haraka/releases/tag/v2.6.1
1675
1694
  [2.5.0]: https://github.com/haraka/Haraka/releases/tag/v2.5.0
@@ -1692,12 +1711,10 @@ config files.
1692
1711
  [2.1.4]: https://github.com/haraka/Haraka/releases/tag/v2.1.4
1693
1712
  [2.1.5]: https://github.com/haraka/Haraka/releases/tag/v2.1.5
1694
1713
  [2.1.6]: https://github.com/haraka/Haraka/releases/tag/v2.1.6
1695
-
1696
1714
  [2.0.0]: https://github.com/haraka/Haraka/releases/tag/v2.0.0
1697
1715
  [2.0.3]: https://github.com/haraka/Haraka/releases/tag/v2.0.3
1698
1716
  [2.0.4]: https://github.com/haraka/Haraka/releases/tag/v2.0.4
1699
1717
  [2.0.5]: https://github.com/haraka/Haraka/releases/tag/v2.0.5
1700
-
1701
1718
  [1.0.1]: https://github.com/haraka/Haraka/releases/tag/v1.0.1
1702
1719
  [1.0.2]: https://github.com/haraka/Haraka/releases/tag/v1.0.2
1703
1720
  [1.1.0]: https://github.com/haraka/Haraka/releases/tag/v1.1.0
@@ -1708,7 +1725,6 @@ config files.
1708
1725
  [1.3.2]: https://github.com/haraka/Haraka/releases/tag/v1.3.2
1709
1726
  [1.3.3]: https://github.com/haraka/Haraka/releases/tag/v1.3.3
1710
1727
  [1.4.0]: https://github.com/haraka/Haraka/releases/tag/v1.4.0
1711
-
1712
1728
  [0.9.0]: https://github.com/haraka/Haraka/releases/tag/v0.9.0
1713
1729
  [0.8.0]: https://github.com/haraka/Haraka/releases/tag/v0.8.0
1714
1730
  [0.7.2]: https://github.com/haraka/Haraka/releases/tag/v0.7.2
@@ -1730,3 +1746,6 @@ config files.
1730
1746
  [0.4]: https://github.com/haraka/Haraka/releases/tag/v0.4
1731
1747
  [0.3]: https://github.com/haraka/Haraka/releases/tag/v0.3
1732
1748
  [0.2]: https://github.com/haraka/Haraka/releases/tag/v0.2
1749
+ [3.1.1]: https://github.com/haraka/Haraka/releases/tag/v3.1.1
1750
+ [3.1.0]: https://github.com/haraka/Haraka/releases/tag/v3.1.0
1751
+ [3.1.2]: https://github.com/haraka/Haraka/releases/tag/v3.1.2
package/Plugins.md CHANGED
@@ -4,7 +4,7 @@ To create your own plugin, see [Write a Plugin][write-plugin].
4
4
 
5
5
  ## Installing NPM packaged plugins
6
6
 
7
- Plugins can be installed in the directory where Haraka was installed (where depends on your OS platform and whether you specified `-g`) or the Haraka install directory (haraka -i this\_path). This example installs _my-great-plugin_ in the Haraka install directory:
7
+ Plugins can be installed in the directory where Haraka was installed (where depends on your OS platform and whether you specified `-g`) or the Haraka install directory (haraka -i this_path). This example installs _my-great-plugin_ in the Haraka install directory:
8
8
 
9
9
  ```
10
10
  cd /etc/haraka
@@ -118,6 +118,7 @@ A comprehensive list of known plugins. Create a PR to add yours to these lists.
118
118
  | [watch][url-watch] | Watch live SMTP traffic in a web interface |
119
119
  | [wildduck][url-wildduck] | provides recipient checks against Wild Duck |
120
120
  | [xclient][url-xclient] | Implements XCLIENT |
121
+ | [save-sent][url-save-sent] | Save sent emails on the serverside to a mailbox of the sender |
121
122
 
122
123
  <!-- URLs tucked safely out of the way -->
123
124
 
@@ -206,3 +207,4 @@ A comprehensive list of known plugins. Create a PR to add yours to these lists.
206
207
  [url-outbound-logger]: https://github.com/mr-karan/haraka-plugin-outbound-logger
207
208
  [url-kafka]: https://github.com/benjamonnguyen/haraka-plugin-queue-kafka
208
209
  [url-mailauth]: https://www.npmjs.com/package/haraka-plugin-mailauth
210
+ [url-save-sent]: https://github.com/AprilGrimoire/haraka-plugin-save-sent
package/README.md CHANGED
@@ -129,7 +129,7 @@ SpamAssassin and a hacker on [Qpsmtpd][13].
129
129
  [3]: http://en.wikipedia.org/wiki/Message_transfer_agent
130
130
  [4]: https://github.com/haraka/Haraka/blob/master/Plugins.md
131
131
  [5]: http://en.wikipedia.org/wiki/Mail_submission_agent
132
- [6]: https://github.com/haraka/Haraka/blob/master/docs/plugins/dkim_sign.md
132
+ [6]: https://github.com/haraka/haraka-plugin-dkim
133
133
  [7]: https://en.wikipedia.org/wiki/Mail_delivery_agent
134
134
  [8]: mailto:haraka-sub@harakamail.com
135
135
  [9]: https://haraka.github.io/plugins/spamassassin