Haraka 3.0.4 → 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.
- package/CONTRIBUTORS.md +6 -5
- package/Changes.md +206 -28
- package/LICENSE +1 -1
- package/Plugins.md +3 -3
- package/bin/haraka +3 -1
- package/config/connection.ini +63 -0
- package/config/plugins +0 -2
- package/config/smtp.ini +1 -18
- package/config/tls.ini +2 -0
- package/connection.js +53 -63
- package/docs/CoreConfig.md +17 -78
- package/docs/HAProxy.md +10 -28
- package/docs/Outbound.md +8 -9
- package/docs/plugins/aliases.md +4 -6
- package/docs/plugins/block_me.md +2 -4
- package/docs/plugins/data.signatures.md +2 -4
- package/docs/plugins/max_unrecognized_commands.md +2 -4
- package/docs/plugins/prevent_credential_leaks.md +2 -5
- package/docs/plugins/process_title.md +1 -2
- package/docs/plugins/queue/test.md +9 -0
- package/docs/plugins/rcpt_to.in_host_list.md +1 -2
- package/docs/plugins/rcpt_to.max_count.md +2 -10
- package/docs/plugins/record_envelope_addresses.md +3 -6
- package/docs/plugins/relay.md +1 -155
- package/docs/plugins/reseed_rng.md +1 -2
- package/docs/plugins/tarpit.md +7 -10
- package/docs/plugins/tls.md +8 -0
- package/docs/plugins/toobusy.md +2 -4
- package/docs/plugins/xclient.md +1 -2
- package/eslint.config.mjs +27 -0
- package/http/html/index.html +6 -5
- package/logger.js +1 -8
- package/outbound/hmail.js +8 -1
- package/package.json +57 -56
- package/plugins/auth/auth_base.js +0 -1
- package/plugins/queue/lmtp.js +3 -1
- package/plugins/queue/test.js +5 -3
- package/server.js +0 -14
- package/test/config/smtp.ini +2 -0
- package/test/config/tls.ini +4 -2
- package/test/connection.js +20 -9
- package/test/outbound/index.js +1 -1
- package/test/tls_socket.js +5 -1
- package/.eslintrc.yaml +0 -12
- package/.prettierrc.yml +0 -1
- package/config/connection_close_message +0 -1
- package/config/databytes +0 -1
- package/config/dhparams.pem +0 -8
- package/config/early_talker.ini +0 -11
- package/config/mail_from.is_resolvable.ini +0 -6
- package/config/max_unrecognized_commands +0 -1
- package/config/smtp.json +0 -17
- package/docs/plugins/early_talker.md +0 -22
- package/docs/plugins/mail_from.is_resolvable.md +0 -29
- package/plugins/early_talker.js +0 -155
- package/plugins/mail_from.is_resolvable.js +0 -132
- package/plugins/relay.js +0 -207
- package/test/plugins/early_talker.js +0 -104
- package/test/plugins/mail_from.is_resolvable.js +0 -35
- package/test/plugins/relay.js +0 -303
- /package/docs/{plugins → deprecated}/access.md +0 -0
- /package/docs/{plugins → deprecated}/backscatterer.md +0 -0
- /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">
|
|
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">
|
|
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/
|
|
9
|
-
| <img height="80" src="https://avatars.githubusercontent.com/u/
|
|
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
|
|
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
|
@@ -1,5 +1,90 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
|
4
|
+
|
|
1
5
|
### Unreleased
|
|
2
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
|
+
|
|
60
|
+
### [3.0.5] - 2024-09-27
|
|
61
|
+
|
|
62
|
+
#### Fixed
|
|
63
|
+
|
|
64
|
+
- fix(q/lmtp): revert a refactoring error #3407
|
|
65
|
+
- fix: install Plugins.md when haraka -i #3406
|
|
66
|
+
- fix(haraka -h): add missing return for plugin list #3405
|
|
67
|
+
- fix `no_tls_hosts` related docs & tests #3404
|
|
68
|
+
- fix: install docs/Plugins.md when haraka -i installed
|
|
69
|
+
- fix(changes): spelling correction #3397
|
|
70
|
+
|
|
71
|
+
#### Changed
|
|
72
|
+
|
|
73
|
+
- lint: remove deprecated semi-style rule
|
|
74
|
+
- removed dependency on ldap plugins #3399
|
|
75
|
+
- doc(tls.md): add note for no_tls_hosts for outbound
|
|
76
|
+
- test(tls): add tests for no_tls_hosts for inbound & outbound
|
|
77
|
+
- dep version bumps:
|
|
78
|
+
- haraka-email-message: 1.2.4, #3408
|
|
79
|
+
- nodemailer: 6.9.15
|
|
80
|
+
- nopt: 8.0.0
|
|
81
|
+
- tld: 1.2.2
|
|
82
|
+
- plugin-dkim: 1.0.7
|
|
83
|
+
- plugin-dns-list: 1.2.1
|
|
84
|
+
- plugin-elastisearch: 8.0.3
|
|
85
|
+
- test-fixtures: 1.3.8
|
|
86
|
+
|
|
87
|
+
|
|
3
88
|
### [3.0.4] - 2024-08-21
|
|
4
89
|
|
|
5
90
|
#### Added
|
|
@@ -46,7 +131,7 @@
|
|
|
46
131
|
- client_pool.get_client & release_client: arity of 5 -> 2
|
|
47
132
|
- mx_lookup: make it async/await
|
|
48
133
|
- mx_lookup: deleted. Logic moved into net_utils #3322
|
|
49
|
-
- use net_utils.
|
|
134
|
+
- use net_utils.HarakaMx for get_mx parsing #3344
|
|
50
135
|
- emit log message when ignoring local MX #3285
|
|
51
136
|
- pass in config when initiating txn #3315
|
|
52
137
|
- minor es6 updates #3315, #3322
|
|
@@ -615,7 +700,7 @@
|
|
|
615
700
|
- plugins/auth/auth_ldap -> haraka-plugin-auth-ldap #2144
|
|
616
701
|
- plugins/graph -> haraka-plugin-graph #2185
|
|
617
702
|
- config: replace ./config.js with haraka-config #2119
|
|
618
|
-
- Replace concatenated strings with template literals
|
|
703
|
+
- Replace concatenated strings with template literals #2129 in:
|
|
619
704
|
- attachment #2260
|
|
620
705
|
- bin/spf #2129
|
|
621
706
|
- bin/dkimverify #2278
|
|
@@ -651,7 +736,7 @@
|
|
|
651
736
|
- plugins/spf #2266
|
|
652
737
|
- plugins/toobusy #2186
|
|
653
738
|
- plugins/xclient #2159
|
|
654
|
-
- rfc1869 #
|
|
739
|
+
- rfc1869 #2160
|
|
655
740
|
- smtp_client #2129, #2208
|
|
656
741
|
- tests/host_pool #2159
|
|
657
742
|
- use es6 destructuring (#2075) in:
|
|
@@ -990,11 +1075,11 @@
|
|
|
990
1075
|
|
|
991
1076
|
- The delay_deny plugin now has a whitelist mode (vs blacklist). #1564
|
|
992
1077
|
- Don't show the private key in logs for dkim_sign. #1565
|
|
993
|
-
- update geoip for compat with newer ES
|
|
994
|
-
- drop node 0.10 testing / official support
|
|
995
|
-
- watch plugin displays UUIDs as URL
|
|
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
|
|
996
1081
|
- Catch errors on header decode in rfc2231 #1599
|
|
997
|
-
- Attachment plugin updates
|
|
1082
|
+
- Attachment plugin updates #1606
|
|
998
1083
|
- add outbound.ini pool_timeout example setting #1584
|
|
999
1084
|
|
|
1000
1085
|
#### Fixes
|
|
@@ -1006,14 +1091,14 @@
|
|
|
1006
1091
|
- outbound issues #1615, #1603
|
|
1007
1092
|
- Fixed adding/removing headers in rspamd plugin. #1562
|
|
1008
1093
|
- Fixed process_title not shutting down. #1560
|
|
1009
|
-
- fix a spurious error emitted by p0f
|
|
1010
|
-
- fix header version hiding
|
|
1011
|
-
- messagestream returns destination
|
|
1012
|
-
- plugins.getdenyfn now passed 3rd params arg
|
|
1013
|
-
- Fix scope of spf logdebug
|
|
1014
|
-
- fix rabbitmq deliveryMode bug
|
|
1015
|
-
- fix dkim_sign TypeError with null mail_from.host
|
|
1016
|
-
- fix dkim_sign attempting to lower an undefined
|
|
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
|
|
1017
1102
|
|
|
1018
1103
|
### 2.8.8 - Jul 20, 2016
|
|
1019
1104
|
|
|
@@ -1044,18 +1129,16 @@
|
|
|
1044
1129
|
#### Improvements
|
|
1045
1130
|
|
|
1046
1131
|
- Allow alias plugin to explode to a list of aliases
|
|
1047
|
-
- Support IPv6 literals in HELO tests
|
|
1048
|
-
- Make ldap plugin use the modified address if a rcpt hook
|
|
1049
|
-
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
|
|
1050
1134
|
|
|
1051
1135
|
#### Fixes
|
|
1052
1136
|
|
|
1053
|
-
- Fix loading plugins as npm modules
|
|
1054
|
-
- More DKIM fixes
|
|
1055
|
-
- Fix the long failing host-pool-timer test
|
|
1056
|
-
- Fix clean shutdown of redis with new shutdown code
|
|
1057
|
-
|
|
1058
|
-
- 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
|
|
1059
1142
|
|
|
1060
1143
|
### 2.8.6 - Jun 06, 2016
|
|
1061
1144
|
|
|
@@ -1081,9 +1164,9 @@
|
|
|
1081
1164
|
|
|
1082
1165
|
#### Fixes
|
|
1083
1166
|
|
|
1084
|
-
- Bind maxmind version to ignore API change
|
|
1085
|
-
- Fix encodings when banners are used
|
|
1086
|
-
- Various DKIM fixes
|
|
1167
|
+
- Bind maxmind version to ignore API change #1492
|
|
1168
|
+
- Fix encodings when banners are used #1477
|
|
1169
|
+
- Various DKIM fixes #1495
|
|
1087
1170
|
|
|
1088
1171
|
### 2.8.4 - May 24, 2016
|
|
1089
1172
|
|
|
@@ -1545,10 +1628,105 @@
|
|
|
1545
1628
|
- Throw exception with set_banner as it is now non-functional. Will be returned in a future version.
|
|
1546
1629
|
- Small fixes to data.uribl
|
|
1547
1630
|
|
|
1548
|
-
### 1.4.0 -
|
|
1549
1631
|
|
|
1550
1632
|
[3.0.0]: https://github.com/haraka/Haraka/releases/tag/3.0.0
|
|
1551
1633
|
[3.0.1]: https://github.com/haraka/Haraka/releases/tag/v3.0.1
|
|
1552
1634
|
[3.0.2]: https://github.com/haraka/Haraka/releases/tag/v3.0.2
|
|
1553
1635
|
[3.0.3]: https://github.com/haraka/Haraka/releases/tag/v3.0.3
|
|
1554
1636
|
[3.0.4]: https://github.com/haraka/Haraka/releases/tag/3.0.4
|
|
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
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
|
-
| [
|
|
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/
|
|
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/
|
|
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
|
-
|
|
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 '* '
|
|
@@ -554,6 +555,7 @@ else if (parsed.install) {
|
|
|
554
555
|
for (const d of ['plugins', 'docs', 'config']) {
|
|
555
556
|
utils.mkDir(path.join(pa, d));
|
|
556
557
|
}
|
|
558
|
+
utils.copyFile(path.join(base, 'docs', 'Plugins.md'), path.join(pa, 'docs', 'Plugins.md'));
|
|
557
559
|
utils.createFile(path.join(pa, 'README'), readme, {}, parsed.force);
|
|
558
560
|
utils.createFile(path.join(pa, 'package.json'), packageJson, {}, parsed.force);
|
|
559
561
|
const bytes = require('crypto').randomBytes(32);
|
|
@@ -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/plugins
CHANGED
|
@@ -38,7 +38,6 @@
|
|
|
38
38
|
# ----------
|
|
39
39
|
# auth/flat_file
|
|
40
40
|
# auth/auth_proxy
|
|
41
|
-
# auth/auth_ldap
|
|
42
41
|
|
|
43
42
|
# MAIL FROM
|
|
44
43
|
# ----------
|
|
@@ -50,7 +49,6 @@ mail_from.is_resolvable
|
|
|
50
49
|
# At least one rcpt_to plugin is REQUIRED for inbound email.
|
|
51
50
|
rcpt_to.in_host_list
|
|
52
51
|
# qmail-deliverable
|
|
53
|
-
# rcpt_to.ldap
|
|
54
52
|
# rcpt_to.routes
|
|
55
53
|
|
|
56
54
|
# DATA
|
package/config/smtp.ini
CHANGED
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
;ignore_bad_plugins=0
|
|
23
23
|
|
|
24
24
|
; Run using cluster to fork multiple backend processes
|
|
25
|
+
; Ref: https://github.com/haraka/Haraka/wiki/Performance-Tuning
|
|
25
26
|
;nodes=cpus
|
|
26
27
|
|
|
27
28
|
; Daemonize
|
|
@@ -43,21 +44,3 @@
|
|
|
43
44
|
; after this time it will hard close. 30s is usually long enough to
|
|
44
45
|
; wait for outbound connections to finish.
|
|
45
46
|
;force_shutdown_timeout=30
|
|
46
|
-
|
|
47
|
-
; SMTP service extensions: https://tools.ietf.org/html/rfc1869
|
|
48
|
-
; strict_rfc1869 = false
|
|
49
|
-
|
|
50
|
-
; Advertise support for SMTPUTF8 (RFC-6531)
|
|
51
|
-
;smtputf8=true
|
|
52
|
-
|
|
53
|
-
[headers]
|
|
54
|
-
;add_received=true
|
|
55
|
-
;clean_auth_results=true
|
|
56
|
-
|
|
57
|
-
;show_version=true
|
|
58
|
-
|
|
59
|
-
; replace max_header_lines
|
|
60
|
-
max_lines=1000
|
|
61
|
-
|
|
62
|
-
; replace max_received_count
|
|
63
|
-
max_received=100
|