Haraka 3.0.5 → 3.1.0

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 (53) hide show
  1. package/CONTRIBUTORS.md +6 -5
  2. package/Changes.md +172 -27
  3. package/LICENSE +1 -1
  4. package/Plugins.md +3 -3
  5. package/bin/haraka +2 -1
  6. package/config/connection.ini +63 -0
  7. package/config/smtp.ini +0 -18
  8. package/connection.js +53 -63
  9. package/docs/CoreConfig.md +17 -78
  10. package/docs/HAProxy.md +10 -28
  11. package/docs/Outbound.md +8 -9
  12. package/docs/plugins/aliases.md +4 -6
  13. package/docs/plugins/block_me.md +2 -4
  14. package/docs/plugins/data.signatures.md +2 -4
  15. package/docs/plugins/max_unrecognized_commands.md +2 -4
  16. package/docs/plugins/prevent_credential_leaks.md +2 -5
  17. package/docs/plugins/process_title.md +1 -2
  18. package/docs/plugins/queue/test.md +9 -0
  19. package/docs/plugins/rcpt_to.in_host_list.md +1 -2
  20. package/docs/plugins/rcpt_to.max_count.md +2 -10
  21. package/docs/plugins/record_envelope_addresses.md +3 -6
  22. package/docs/plugins/relay.md +1 -155
  23. package/docs/plugins/reseed_rng.md +1 -2
  24. package/docs/plugins/tarpit.md +7 -10
  25. package/docs/plugins/toobusy.md +2 -4
  26. package/docs/plugins/xclient.md +1 -2
  27. package/eslint.config.mjs +27 -0
  28. package/logger.js +1 -8
  29. package/outbound/hmail.js +8 -1
  30. package/package.json +56 -53
  31. package/plugins/auth/auth_base.js +0 -1
  32. package/plugins/queue/test.js +5 -3
  33. package/server.js +0 -14
  34. package/test/connection.js +18 -7
  35. package/.eslintrc.yaml +0 -11
  36. package/config/connection_close_message +0 -1
  37. package/config/databytes +0 -1
  38. package/config/dhparams.pem +0 -8
  39. package/config/early_talker.ini +0 -11
  40. package/config/mail_from.is_resolvable.ini +0 -6
  41. package/config/max_unrecognized_commands +0 -1
  42. package/config/smtp.json +0 -17
  43. package/docs/plugins/early_talker.md +0 -22
  44. package/docs/plugins/mail_from.is_resolvable.md +0 -29
  45. package/plugins/early_talker.js +0 -155
  46. package/plugins/mail_from.is_resolvable.js +0 -132
  47. package/plugins/relay.js +0 -207
  48. package/test/plugins/early_talker.js +0 -104
  49. package/test/plugins/mail_from.is_resolvable.js +0 -35
  50. package/test/plugins/relay.js +0 -303
  51. /package/docs/{plugins → deprecated}/access.md +0 -0
  52. /package/docs/{plugins → deprecated}/backscatterer.md +0 -0
  53. /package/docs/{plugins → deprecated}/data.headers.md +0 -0
package/CONTRIBUTORS.md CHANGED
@@ -2,10 +2,11 @@
2
2
 
3
3
  This handcrafted artisinal 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">1623</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">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>)|
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">25</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/2176651?v=4"><br><a href="https://github.com/fatalbanana">fatalbanana</a> (<a href="https://github.com/haraka/Haraka/commits?author=fatalbanana">8</a>)|
9
- | <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/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/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/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/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>)|
10
10
 
11
- <sub>this file is maintained by [.release](https://github.com/msimerson/.release)</sub>
11
+ <sub>this file is generated by [.release](https://github.com/msimerson/.release).
12
+ Contribute to this project to get your GitHub profile included here.</sub>
package/Changes.md CHANGED
@@ -4,6 +4,59 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
4
4
 
5
5
  ### Unreleased
6
6
 
7
+ ### [3.1.0] - 2025-01-30
8
+
9
+ #### Changes
10
+
11
+ ##### BREAKING CHANGE
12
+
13
+ `connection.ini` replaces the following config files:
14
+
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
29
+
30
+ - moves the following settings from smtp.ini to connection.ini:
31
+ - headers.*
32
+ - main.smtp_utf8
33
+ - main.strict_rfc1869
34
+ - early_talker.pause, removed support, use earlytalker.ini
35
+
36
+ To upgrade, apply any localized settings from the old config files to
37
+ the new `connection.ini` file. For tidiness, delete the deprecated
38
+ config files.
39
+
40
+ - feat(queue/test): Append UUID to E-Mails (avoid overwrite) #3449
41
+ - repackage p/early_talker as plugin #3443
42
+ - repackage p/mail_from.is_resolvable as plugin #3439
43
+ - repackage p/relay as haraka-plugin-relay #3432
44
+ - ci(cov): update codecov to v5
45
+ - deps(eslint): update to v9 #3433
46
+ - doc(plugins/\*.md): use \# to indicate heading levels
47
+ - deps(various): bump to latest versions
48
+ - doc(CoreConfig): removed incorrect early_talker.delay reference (hasn't worked in years).
49
+ - doc(LICENSE) fix copyright year #3424
50
+ - doc(access, backscatterer, & data.headers): deprecated plugin docs
51
+
52
+ #### Fixes
53
+
54
+ - fix(conn): always add connection.notes.tls properties #3450
55
+ - fix(conn): cumulative greeting message for custom greetings #3446
56
+ - fix(mail_from.is_resolvable): use correct config var path #3416
57
+ - fix(bin/haraka): fix for finding path to config/docs/Plugins.md #3414
58
+ - fix(outbound): in outbound, when mx.exchange contains an IP, use mx.from_dns #3413
59
+
7
60
  ### [3.0.5] - 2024-09-27
8
61
 
9
62
  #### Fixed
@@ -647,7 +700,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
647
700
  - plugins/auth/auth_ldap -> haraka-plugin-auth-ldap #2144
648
701
  - plugins/graph -> haraka-plugin-graph #2185
649
702
  - config: replace ./config.js with haraka-config #2119
650
- - Replace concatenated strings with template literals (#2129) in:
703
+ - Replace concatenated strings with template literals #2129 in:
651
704
  - attachment #2260
652
705
  - bin/spf #2129
653
706
  - bin/dkimverify #2278
@@ -683,7 +736,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
683
736
  - plugins/spf #2266
684
737
  - plugins/toobusy #2186
685
738
  - plugins/xclient #2159
686
- - rfc1869 #2159
739
+ - rfc1869 #2160
687
740
  - smtp_client #2129, #2208
688
741
  - tests/host_pool #2159
689
742
  - use es6 destructuring (#2075) in:
@@ -1022,11 +1075,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
1022
1075
 
1023
1076
  - The delay_deny plugin now has a whitelist mode (vs blacklist). #1564
1024
1077
  - Don't show the private key in logs for dkim_sign. #1565
1025
- - update geoip for compat with newer ES (#1622)
1026
- - drop node 0.10 testing / official support (#1621)
1027
- - watch plugin displays UUIDs as URL (#1624)
1078
+ - update geoip for compat with newer ES #1622
1079
+ - drop node 0.10 testing / official support #1621
1080
+ - watch plugin displays UUIDs as URL #1624
1028
1081
  - Catch errors on header decode in rfc2231 #1599
1029
- - Attachment plugin updates (#1606)
1082
+ - Attachment plugin updates #1606
1030
1083
  - add outbound.ini pool_timeout example setting #1584
1031
1084
 
1032
1085
  #### Fixes
@@ -1038,14 +1091,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
1038
1091
  - outbound issues #1615, #1603
1039
1092
  - Fixed adding/removing headers in rspamd plugin. #1562
1040
1093
  - Fixed process_title not shutting down. #1560
1041
- - fix a spurious error emitted by p0f (#1623)
1042
- - fix header version hiding (#1617)
1043
- - messagestream returns destination (#1610)
1044
- - plugins.getdenyfn now passed 3rd params arg (#1591)
1045
- - Fix scope of spf logdebug (#1598)
1046
- - fix rabbitmq deliveryMode bug (#1594)
1047
- - fix dkim_sign TypeError with null mail_from.host (#1592)
1048
- - fix dkim_sign attempting to lower an undefined (#1587)
1094
+ - fix a spurious error emitted by p0f #1623
1095
+ - fix header version hiding #1617
1096
+ - messagestream returns destination #1610
1097
+ - plugins.getdenyfn now passed 3rd params arg #1591
1098
+ - Fix scope of spf logdebug #1598
1099
+ - fix rabbitmq deliveryMode bug #1594
1100
+ - fix dkim_sign TypeError with null mail_from.host #1592
1101
+ - fix dkim_sign attempting to lower an undefined #1587
1049
1102
 
1050
1103
  ### 2.8.8 - Jul 20, 2016
1051
1104
 
@@ -1076,18 +1129,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
1076
1129
  #### Improvements
1077
1130
 
1078
1131
  - Allow alias plugin to explode to a list of aliases
1079
- - Support IPv6 literals in HELO tests (#1507 thanks @gramakri)
1080
- - Make ldap plugin use the modified address if a rcpt hook
1081
- changes it (#1501 thanks @darkpixel)
1132
+ - Support IPv6 literals in HELO tests #1507
1133
+ - Make ldap plugin use the modified address if a rcpt hook changes it #1501
1082
1134
 
1083
1135
  #### Fixes
1084
1136
 
1085
- - Fix loading plugins as npm modules (#1513)
1086
- - More DKIM fixes (#1506 thanks @zllovesuki)
1087
- - Fix the long failing host-pool-timer test (#1508)
1088
- - Fix clean shutdown of redis with new shutdown code
1089
- (#1504 and #1502 thanks @darkpixel)
1090
- - More fixes to clean shutdown (#1503)
1137
+ - Fix loading plugins as npm modules #1513
1138
+ - More DKIM fixes #1506
1139
+ - Fix the long failing host-pool-timer test #1508
1140
+ - Fix clean shutdown of redis with new shutdown code, #1504 and #1502
1141
+ - More fixes to clean shutdown #1503
1091
1142
 
1092
1143
  ### 2.8.6 - Jun 06, 2016
1093
1144
 
@@ -1113,9 +1164,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
1113
1164
 
1114
1165
  #### Fixes
1115
1166
 
1116
- - Bind maxmind version to ignore API change (#1492)
1117
- - Fix encodings when banners are used (#1477)
1118
- - Various DKIM fixes (#1495)
1167
+ - Bind maxmind version to ignore API change #1492
1168
+ - Fix encodings when banners are used #1477
1169
+ - Various DKIM fixes #1495
1119
1170
 
1120
1171
  ### 2.8.4 - May 24, 2016
1121
1172
 
@@ -1577,7 +1628,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
1577
1628
  - Throw exception with set_banner as it is now non-functional. Will be returned in a future version.
1578
1629
  - Small fixes to data.uribl
1579
1630
 
1580
- ### 1.4.0 -
1581
1631
 
1582
1632
  [3.0.0]: https://github.com/haraka/Haraka/releases/tag/3.0.0
1583
1633
  [3.0.1]: https://github.com/haraka/Haraka/releases/tag/v3.0.1
@@ -1585,3 +1635,98 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
1585
1635
  [3.0.3]: https://github.com/haraka/Haraka/releases/tag/v3.0.3
1586
1636
  [3.0.4]: https://github.com/haraka/Haraka/releases/tag/3.0.4
1587
1637
  [3.0.5]: https://github.com/haraka/Haraka/releases/tag/v3.0.5
1638
+ [3.0.6]: https://github.com/haraka/Haraka/releases/tag/v3.0.6
1639
+
1640
+ [2.8.0]: https://github.com/haraka/Haraka/releases/tag/v2.8.0
1641
+ [2.8.1]: https://github.com/haraka/Haraka/releases/tag/v2.8.1
1642
+ [2.8.3]: https://github.com/haraka/Haraka/releases/tag/v2.8.3
1643
+ [2.8.4]: https://github.com/haraka/Haraka/releases/tag/v2.8.4
1644
+ [2.8.5]: https://github.com/haraka/Haraka/releases/tag/v2.8.5
1645
+ [2.8.6]: https://github.com/haraka/Haraka/releases/tag/v2.8.6
1646
+ [2.8.7]: https://github.com/haraka/Haraka/releases/tag/v2.8.7
1647
+ [2.8.8]: https://github.com/haraka/Haraka/releases/tag/v2.8.8
1648
+ [2.8.9]: https://github.com/haraka/Haraka/releases/tag/v2.8.9
1649
+ [2.8.10]: https://github.com/haraka/Haraka/releases/tag/2.8.10
1650
+ [2.8.11]: https://github.com/haraka/Haraka/releases/tag/2.8.11
1651
+ [2.8.12]: https://github.com/haraka/Haraka/releases/tag/2.8.12
1652
+ [2.8.13]: https://github.com/haraka/Haraka/releases/tag/2.8.13
1653
+ [2.8.14]: https://github.com/haraka/Haraka/releases/tag/v2.8.14
1654
+ [2.8.15]: https://github.com/haraka/Haraka/releases/tag/2.8.15
1655
+ [2.8.16]: https://github.com/haraka/Haraka/releases/tag/2.8.16
1656
+ [2.8.17]: https://github.com/haraka/Haraka/releases/tag/2.8.17
1657
+ [2.8.18]: https://github.com/haraka/Haraka/releases/tag/2.8.18
1658
+ [2.8.19]: https://github.com/haraka/Haraka/releases/tag/v2.8.19
1659
+ [2.8.20]: https://github.com/haraka/Haraka/releases/tag/2.8.20
1660
+ [release-2.8.21]: https://github.com/haraka/Haraka/releases/tag/release-2.8.21
1661
+ [2.8.22]: https://github.com/haraka/Haraka/releases/tag/2.8.22
1662
+ [2.8.24]: https://github.com/haraka/Haraka/releases/tag/2.8.24
1663
+ [2.8.25]: https://github.com/haraka/Haraka/releases/tag/2.8.25
1664
+ [2.8.26]: https://github.com/haraka/Haraka/releases/tag/2.8.26
1665
+ [2.8.27]: https://github.com/haraka/Haraka/releases/tag/2.8.27
1666
+ [2.8.28]: https://github.com/haraka/Haraka/releases/tag/2.8.28
1667
+
1668
+ [2.7.3]: https://github.com/haraka/Haraka/releases/tag/v2.7.3
1669
+ [2.7.2]: https://github.com/haraka/Haraka/releases/tag/v2.7.2
1670
+ [2.7.1]: https://github.com/haraka/Haraka/releases/tag/v2.7.1
1671
+ [2.7.0]: https://github.com/haraka/Haraka/releases/tag/v2.7.0
1672
+
1673
+ [2.6.0]: https://github.com/haraka/Haraka/releases/tag/v2.6.0
1674
+ [2.6.1]: https://github.com/haraka/Haraka/releases/tag/v2.6.1
1675
+ [2.5.0]: https://github.com/haraka/Haraka/releases/tag/v2.5.0
1676
+ [2.4.0]: https://github.com/haraka/Haraka/releases/tag/v2.4.0
1677
+ [2.3.1]: https://github.com/haraka/Haraka/releases/tag/v2.3.1
1678
+ [2.3.0]: https://github.com/haraka/Haraka/releases/tag/v2.3.0
1679
+ [2.2.0]: https://github.com/haraka/Haraka/releases/tag/v2.2.0
1680
+ [2.2.1]: https://github.com/haraka/Haraka/releases/tag/v2.2.1
1681
+ [2.2.2]: https://github.com/haraka/Haraka/releases/tag/v2.2.2
1682
+ [2.2.3]: https://github.com/haraka/Haraka/releases/tag/v2.2.3
1683
+ [2.2.4]: https://github.com/haraka/Haraka/releases/tag/v2.2.4
1684
+ [2.2.5]: https://github.com/haraka/Haraka/releases/tag/v2.2.5
1685
+ [2.2.6]: https://github.com/haraka/Haraka/releases/tag/v2.2.6
1686
+ [2.2.7]: https://github.com/haraka/Haraka/releases/tag/v2.2.7
1687
+ [2.2.8]: https://github.com/haraka/Haraka/releases/tag/v2.2.8
1688
+ [2.1.0]: https://github.com/haraka/Haraka/releases/tag/v2.1.0
1689
+ [2.1.1]: https://github.com/haraka/Haraka/releases/tag/v2.1.1
1690
+ [2.1.2]: https://github.com/haraka/Haraka/releases/tag/v2.1.2
1691
+ [2.1.3]: https://github.com/haraka/Haraka/releases/tag/v2.1.3
1692
+ [2.1.4]: https://github.com/haraka/Haraka/releases/tag/v2.1.4
1693
+ [2.1.5]: https://github.com/haraka/Haraka/releases/tag/v2.1.5
1694
+ [2.1.6]: https://github.com/haraka/Haraka/releases/tag/v2.1.6
1695
+
1696
+ [2.0.0]: https://github.com/haraka/Haraka/releases/tag/v2.0.0
1697
+ [2.0.3]: https://github.com/haraka/Haraka/releases/tag/v2.0.3
1698
+ [2.0.4]: https://github.com/haraka/Haraka/releases/tag/v2.0.4
1699
+ [2.0.5]: https://github.com/haraka/Haraka/releases/tag/v2.0.5
1700
+
1701
+ [1.0.1]: https://github.com/haraka/Haraka/releases/tag/v1.0.1
1702
+ [1.0.2]: https://github.com/haraka/Haraka/releases/tag/v1.0.2
1703
+ [1.1.0]: https://github.com/haraka/Haraka/releases/tag/v1.1.0
1704
+ [1.2.0]: https://github.com/haraka/Haraka/releases/tag/v1.2.0
1705
+ [1.2.1]: https://github.com/haraka/Haraka/releases/tag/v1.2.1
1706
+ [1.3.0]: https://github.com/haraka/Haraka/releases/tag/v1.3.0
1707
+ [1.3.1]: https://github.com/haraka/Haraka/releases/tag/v1.3.1
1708
+ [1.3.2]: https://github.com/haraka/Haraka/releases/tag/v1.3.2
1709
+ [1.3.3]: https://github.com/haraka/Haraka/releases/tag/v1.3.3
1710
+ [1.4.0]: https://github.com/haraka/Haraka/releases/tag/v1.4.0
1711
+
1712
+ [0.9.0]: https://github.com/haraka/Haraka/releases/tag/v0.9.0
1713
+ [0.8.0]: https://github.com/haraka/Haraka/releases/tag/v0.8.0
1714
+ [0.7.2]: https://github.com/haraka/Haraka/releases/tag/v0.7.2
1715
+ [0.7.1]: https://github.com/haraka/Haraka/releases/tag/v0.7.1
1716
+ [0.7.0]: https://github.com/haraka/Haraka/releases/tag/v0.7.0
1717
+ [0.6.1]: https://github.com/haraka/Haraka/releases/tag/v0.6.1
1718
+ [0.6.0]: https://github.com/haraka/Haraka/releases/tag/v0.6.0
1719
+ [0.5.11]: https://github.com/haraka/Haraka/releases/tag/v0.5.11
1720
+ [0.5.10]: https://github.com/haraka/Haraka/releases/tag/v0.5.10
1721
+ [0.5.9]: https://github.com/haraka/Haraka/releases/tag/v0.5.9
1722
+ [0.5.8]: https://github.com/haraka/Haraka/releases/tag/v0.5.8
1723
+ [0.5.7]: https://github.com/haraka/Haraka/releases/tag/v0.5.7
1724
+ [0.5.6]: https://github.com/haraka/Haraka/releases/tag/v0.5.6
1725
+ [0.5.5]: https://github.com/haraka/Haraka/releases/tag/v0.5.5
1726
+ [0.5.4]: https://github.com/haraka/Haraka/releases/tag/v0.5.4
1727
+ [0.5.3]: https://github.com/haraka/Haraka/releases/tag/v0.5.3
1728
+ [0.5.2]: https://github.com/haraka/Haraka/releases/tag/v0.5.2
1729
+ [0.5]: https://github.com/haraka/Haraka/releases/tag/v0.5
1730
+ [0.4]: https://github.com/haraka/Haraka/releases/tag/v0.4
1731
+ [0.3]: https://github.com/haraka/Haraka/releases/tag/v0.3
1732
+ [0.2]: https://github.com/haraka/Haraka/releases/tag/v0.2
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2011 - 2018 Matt Sergeant
3
+ Copyright (c) 2011 - 2025 Matt Sergeant
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/Plugins.md CHANGED
@@ -92,7 +92,7 @@ A comprehensive list of known plugins. Create a PR to add yours to these lists.
92
92
  | [known-senders][url-known-senders] | Reward emails from those you send mail to |
93
93
  | [LDAP][url-ldap] | Aliases, Auth, and Recipient validation from LDAP |
94
94
  | [Limit][url-limit] | Apply many types of limits to SMTP connections |
95
- | [log.elasticsearch][url-elastic] | Store message metadata in Elasticsearch |
95
+ | [elasticsearch][url-elastic] | Store message metadata in Elasticsearch |
96
96
  | [log reader][url-logreader] | extract log entries from the haraka log file |
97
97
  | [syslog][url-syslog] | Log to syslog |
98
98
  | [mail_from.is_resolvable][url-mfres] | Verifies the MAIL FROM domain resolves to a MX |
@@ -167,7 +167,7 @@ A comprehensive list of known plugins. Create a PR to add yours to these lists.
167
167
  [url-limit]: https://github.com/haraka/haraka-plugin-limit
168
168
  [url-logreader]: https://github.com/haraka/haraka-plugin-log-reader
169
169
  [url-milter]: https://github.com/haraka/haraka-plugin-milter
170
- [url-mfres]: https://github.com/haraka/Haraka/blob/master/docs/plugins/mail_from.is_resolvable.md
170
+ [url-mfres]: https://github.com/haraka/haraka-plugin-mail_from.is_resolvable
171
171
  [url-msgsniff]: https://github.com/haraka/haraka-plugin-messagesniffer
172
172
  [url-ms]: http://www.armresearch.com/Products/
173
173
  [url-creds]: https://github.com/haraka/Haraka/blob/master/docs/plugins/prevent_credential_leaks.md
@@ -189,7 +189,7 @@ A comprehensive list of known plugins. Create a PR to add yours to these lists.
189
189
  [url-rqmd]: https://github.com/haraka/haraka-plugin-qmail-deliverable
190
190
  [url-rroutes]: https://github.com/haraka/haraka-plugin-recipient-routes
191
191
  [url-recordenv]: https://github.com/haraka/Haraka/blob/master/docs/plugins/record_envelope_addresses.md
192
- [url-relay]: https://github.com/haraka/Haraka/blob/master/docs/plugins/relay.md
192
+ [url-relay]: https://github.com/haraka/haraka-plugin-relay
193
193
  [url-rng]: https://github.com/haraka/Haraka/blob/master/docs/plugins/reseed_rng.md
194
194
  [url-rspamd]: https://github.com/haraka/haraka-plugin-rspamd
195
195
  [url-spamass]: https://github.com/haraka/haraka-plugin-spamassassin
package/bin/haraka CHANGED
@@ -228,7 +228,8 @@ const plugin_doc = [
228
228
 
229
229
 
230
230
  function getHooks () { // see haraka/Haraka#3306
231
- return fs.readFileSync('docs/Plugins.md').toString()
231
+ const pi_path = path.resolve(parsed.configs, 'docs', 'Plugins.md')
232
+ return fs.readFileSync(pi_path).toString()
232
233
  .split('## Available Hooks')[1] // discard everything before this string
233
234
  .split('### rcpt')[0] // discard everything after this string
234
235
  .match(/\*\s(\S+)/gm) // grab the first word of lines starting with '* '
@@ -0,0 +1,63 @@
1
+ ;
2
+ [main]
3
+
4
+ ; Require senders to conform to RFC 1869 and RFC 821 when sending the MAIL FROM and RCPT TO commands. In particular, the inclusion of spurious spaces or missing angle brackets will be rejected.
5
+ ; strict_rfc1869 = false
6
+
7
+ ; Advertise support for SMTPUTF8 (RFC-6531)
8
+ ; smtputf8=true
9
+
10
+
11
+ [haproxy]
12
+ ; Array: hosts or CIDRs that Haraka should enable the PROXY protocol from. See docs/HAProxy for format
13
+ hosts[] =
14
+ ; hosts[] = 192.0.2.4
15
+ ; hosts[] = 192.0.2.5
16
+ ; hosts[] = [2001:db8::1]
17
+ ; hosts[] = [2001:db8::2]
18
+
19
+
20
+ [headers]
21
+ ; add_received=true
22
+ ; clean_auth_results=true
23
+
24
+ ; show_version=true
25
+
26
+ max_lines=1000
27
+
28
+ max_received=100
29
+
30
+
31
+ [max]
32
+ ; Integer. The maximum SIZE of an email
33
+ bytes=26214400
34
+
35
+ ; Integer. Limit a potential denial of service in potentially hostile emails.
36
+ mime_parts=1000
37
+
38
+ ; Integer. The maximum length of lines in SMTP session commands (e.g. RCPT, HELO etc). Defaults to 512 (bytes) as mandated by RFC 5321 §4.5.3.1.4. Clients exceeding this limit will be immediately disconnected with a "521 Command line too long" error.
39
+ line_length=512
40
+
41
+ ; Integer. The maximum length of lines in the DATA section of emails. Defaults to 992 (bytes), the limit set by Sendmail. When this limit is exceeded the three bytes "\r\n " (0x0d 0x0a 0x20) are inserted into the stream to "fix" it. This has the potential to "break" some email, but makes it more likely to be accepted by upstream/downstream services, and is the same behaviour as Sendmail. Also when the data line length limit is exceeded `transaction.notes.data_line_length_exceeded` is set to `true`.
42
+ data_line_length=992
43
+
44
+
45
+ [message]
46
+ ; Array. The greeting used when a client connects.
47
+ ; greeting[]=My Custom
48
+ ; greeting[]=Greeting Message
49
+
50
+ helo=Haraka is at your service.
51
+
52
+ ; String. Override the default connection close message.
53
+ close=closing connection. Have a jolly good day.
54
+
55
+
56
+ [uuid]
57
+ ; integer, how many UUID chars to show.
58
+ ; 0 = none, 6 is enough to be unique per day, 40 will include the
59
+ ; full connection and transaction UUID
60
+ banner_chars=6
61
+
62
+ ; include N characters of the uuid (in brackets) at the start of each line of the deny message
63
+ deny_chars=0
package/config/smtp.ini CHANGED
@@ -44,21 +44,3 @@
44
44
  ; after this time it will hard close. 30s is usually long enough to
45
45
  ; wait for outbound connections to finish.
46
46
  ;force_shutdown_timeout=30
47
-
48
- ; SMTP service extensions: https://tools.ietf.org/html/rfc1869
49
- ; strict_rfc1869 = false
50
-
51
- ; Advertise support for SMTPUTF8 (RFC-6531)
52
- ;smtputf8=true
53
-
54
- [headers]
55
- ;add_received=true
56
- ;clean_auth_results=true
57
-
58
- ;show_version=true
59
-
60
- ; replace max_header_lines
61
- max_lines=1000
62
-
63
- ; replace max_received_count
64
- max_received=100