Haraka 3.0.0 → 3.0.1
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/Changes.md +16 -0
- package/Plugins.md +2 -0
- package/bin/haraka +5 -4
- package/dkim.js +2 -1
- package/package.json +52 -52
- package/smtp_client.js +1 -1
package/Changes.md
CHANGED
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
|
|
2
2
|
### Unreleased
|
|
3
3
|
|
|
4
|
+
|
|
5
|
+
### [3.0.1] - 2023-01-19
|
|
6
|
+
|
|
7
|
+
#### Fixed
|
|
8
|
+
|
|
9
|
+
- fix(bin/haraka): set server.cfg and pass to conn, fixes #3143
|
|
10
|
+
- fix(bin/haraka): correct error messages for help options #3142
|
|
11
|
+
- fix: dkim_verify fails to find record #3149
|
|
12
|
+
|
|
13
|
+
#### Changed
|
|
14
|
+
|
|
15
|
+
- plugins: Add haraka-plugin-outbound-logger to registry #3146
|
|
16
|
+
- dep(pi-spf): bump version 1.1.3 to 1.2.0
|
|
17
|
+
|
|
18
|
+
|
|
4
19
|
### [3.0.0] - 2022-12-17
|
|
5
20
|
|
|
6
21
|
#### Added
|
|
@@ -1329,3 +1344,4 @@
|
|
|
1329
1344
|
|
|
1330
1345
|
|
|
1331
1346
|
[3.0.0]: https://github.com/haraka/Haraka/releases/tag/3.0.0
|
|
1347
|
+
[3.0.1]: https://github.com/haraka/Haraka/releases/tag/3.0.1
|
package/Plugins.md
CHANGED
|
@@ -69,6 +69,7 @@ Create a PR adding yours to this list.
|
|
|
69
69
|
| [messagesniffer][url-msgsniff] | Anti-spam via [MessageSniffer][url-ms] |
|
|
70
70
|
| [milter][url-milter] | milter support |
|
|
71
71
|
| [mongodb][mongo-url] | Queue emails to MongoDB |
|
|
72
|
+
| [outbound-logger][url-outbound-logger] | JSON logging of outbound email traffic. Logs useful metadata about delivered/bounced emails |
|
|
72
73
|
| [prevent_credential_leaks][url-creds] | Prevent users from emailing their credentials |
|
|
73
74
|
| [process_title][url-proctitle] | Populate `ps` output with activity counters |
|
|
74
75
|
| queue/[discard][url-qdisc] | queues messages to /dev/null |
|
|
@@ -190,4 +191,5 @@ Create a PR adding yours to this list.
|
|
|
190
191
|
[url-wildduck]: https://github.com/nodemailer/haraka-plugin-wildduck
|
|
191
192
|
[url-xclient]: https://github.com/haraka/Haraka/blob/master/docs/plugins/xclient.md
|
|
192
193
|
[mongo-url]: https://github.com/Helpmonks/haraka-plugin-mongodb
|
|
194
|
+
[url-outbound-logger]: https://github.com/mr-karan/haraka-plugin-outbound-logger
|
|
193
195
|
|
package/bin/haraka
CHANGED
|
@@ -383,7 +383,7 @@ else if (parsed.qlist) {
|
|
|
383
383
|
}
|
|
384
384
|
else if (parsed.qstat) {
|
|
385
385
|
if (!parsed.configs) {
|
|
386
|
-
fail("
|
|
386
|
+
fail("qstat option requires config path");
|
|
387
387
|
}
|
|
388
388
|
process.env.HARAKA = parsed.configs;
|
|
389
389
|
logger = require(path.join(base, "logger"));
|
|
@@ -435,7 +435,7 @@ else if (parsed.graceful) {
|
|
|
435
435
|
}
|
|
436
436
|
else if (parsed.qempty) {
|
|
437
437
|
if (!parsed.configs) {
|
|
438
|
-
fail("
|
|
438
|
+
fail("qempty option requires config path");
|
|
439
439
|
}
|
|
440
440
|
fail("qempty is unimplemented");
|
|
441
441
|
}
|
|
@@ -476,7 +476,7 @@ else if (parsed.order) {
|
|
|
476
476
|
}
|
|
477
477
|
else if (parsed.test) {
|
|
478
478
|
if (!parsed.configs) {
|
|
479
|
-
fail("
|
|
479
|
+
fail("test option requires config path");
|
|
480
480
|
}
|
|
481
481
|
process.env.HARAKA = parsed.configs;
|
|
482
482
|
try {
|
|
@@ -528,9 +528,10 @@ else if (parsed.test) {
|
|
|
528
528
|
address () {
|
|
529
529
|
return { port: 25, family: 'ipv4', address: '127.0.0.1' };
|
|
530
530
|
},
|
|
531
|
+
cfg : require('haraka-config').get('smtp.ini'),
|
|
531
532
|
notes: new Notes(),
|
|
532
533
|
}
|
|
533
|
-
const connection = Connection.createConnection(client, server);
|
|
534
|
+
const connection = Connection.createConnection(client, server, server.cfg);
|
|
534
535
|
if (parsed['set-relay']) connection.relaying = true;
|
|
535
536
|
|
|
536
537
|
const run_next_hook = function () {
|
package/dkim.js
CHANGED
|
@@ -302,7 +302,8 @@ class DKIMObject {
|
|
|
302
302
|
}
|
|
303
303
|
}
|
|
304
304
|
if (!res) return this.result('no key for signature', 'invalid');
|
|
305
|
-
for (const
|
|
305
|
+
for (const recordSegments of res) {
|
|
306
|
+
const record = recordSegments.join('');
|
|
306
307
|
if (!record.includes('p=')) {
|
|
307
308
|
this.debug(`${this.identity}: ignoring TXT record: ${record}`);
|
|
308
309
|
continue;
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"server",
|
|
10
10
|
"email"
|
|
11
11
|
],
|
|
12
|
-
"version": "3.0.
|
|
12
|
+
"version": "3.0.1",
|
|
13
13
|
"homepage": "http://haraka.github.io",
|
|
14
14
|
"repository": {
|
|
15
15
|
"type": "git",
|
|
@@ -20,65 +20,65 @@
|
|
|
20
20
|
"node": ">=16"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"address-rfc2821"
|
|
24
|
-
"address-rfc2822"
|
|
25
|
-
"async"
|
|
26
|
-
"daemon"
|
|
27
|
-
"ipaddr.js"
|
|
28
|
-
"node-gyp"
|
|
29
|
-
"nopt"
|
|
30
|
-
"npid"
|
|
31
|
-
"semver"
|
|
32
|
-
"sprintf-js"
|
|
33
|
-
"haraka-config"
|
|
34
|
-
"haraka-constants"
|
|
35
|
-
"haraka-dsn"
|
|
36
|
-
"haraka-email-message"
|
|
37
|
-
"haraka-message-stream"
|
|
38
|
-
"haraka-net-utils"
|
|
39
|
-
"haraka-notes"
|
|
23
|
+
"address-rfc2821": "^2.0.1",
|
|
24
|
+
"address-rfc2822": "^2.1.0",
|
|
25
|
+
"async": "^3.2.4",
|
|
26
|
+
"daemon": "~1.1.0",
|
|
27
|
+
"ipaddr.js": "~2.0.1",
|
|
28
|
+
"node-gyp": "^9.3.1",
|
|
29
|
+
"nopt": "~7.0.0",
|
|
30
|
+
"npid": "~0.4.0",
|
|
31
|
+
"semver": "~7.3.8",
|
|
32
|
+
"sprintf-js": "~1.1.2",
|
|
33
|
+
"haraka-config": "^1.1.0",
|
|
34
|
+
"haraka-constants": "^1.0.6",
|
|
35
|
+
"haraka-dsn": "^1.0.4",
|
|
36
|
+
"haraka-email-message": "^1.2.0",
|
|
37
|
+
"haraka-message-stream": "^1.2.0",
|
|
38
|
+
"haraka-net-utils": "^1.5.0",
|
|
39
|
+
"haraka-notes": "^1.0.6",
|
|
40
40
|
"haraka-plugin-attachment": "^1.0.7",
|
|
41
|
-
"haraka-plugin-spf"
|
|
42
|
-
"haraka-plugin-redis"
|
|
43
|
-
"haraka-results"
|
|
44
|
-
"haraka-tld"
|
|
45
|
-
"haraka-utils"
|
|
46
|
-
"openssl-wrapper"
|
|
47
|
-
"sockaddr"
|
|
41
|
+
"haraka-plugin-spf": "1.2.0",
|
|
42
|
+
"haraka-plugin-redis": "^2.0.5",
|
|
43
|
+
"haraka-results": "^2.2.2",
|
|
44
|
+
"haraka-tld": "^1.1.0",
|
|
45
|
+
"haraka-utils": "^1.0.3",
|
|
46
|
+
"openssl-wrapper": "^0.3.4",
|
|
47
|
+
"sockaddr": "^1.0.1"
|
|
48
48
|
},
|
|
49
49
|
"optionalDependencies": {
|
|
50
|
-
"haraka-plugin-access"
|
|
51
|
-
"haraka-plugin-aliases"
|
|
52
|
-
"haraka-plugin-asn"
|
|
50
|
+
"haraka-plugin-access": "^1.1.5",
|
|
51
|
+
"haraka-plugin-aliases": "^1.0.1",
|
|
52
|
+
"haraka-plugin-asn": "^2.0.1",
|
|
53
53
|
"haraka-plugin-auth-ldap": "^1.0.2",
|
|
54
|
-
"haraka-plugin-dcc"
|
|
55
|
-
"haraka-plugin-elasticsearch"
|
|
56
|
-
"haraka-plugin-fcrdns"
|
|
57
|
-
"haraka-plugin-graph"
|
|
58
|
-
"haraka-plugin-geoip"
|
|
59
|
-
"haraka-plugin-headers"
|
|
60
|
-
"haraka-plugin-karma"
|
|
61
|
-
"haraka-plugin-limit"
|
|
62
|
-
"haraka-plugin-p0f"
|
|
63
|
-
"haraka-plugin-qmail-deliverable"
|
|
54
|
+
"haraka-plugin-dcc": "^1.0.1",
|
|
55
|
+
"haraka-plugin-elasticsearch": "^1.0.6",
|
|
56
|
+
"haraka-plugin-fcrdns": "^1.1.0",
|
|
57
|
+
"haraka-plugin-graph": "^1.0.5",
|
|
58
|
+
"haraka-plugin-geoip": "^1.0.17",
|
|
59
|
+
"haraka-plugin-headers": "^1.0.3",
|
|
60
|
+
"haraka-plugin-karma": "^2.1.0",
|
|
61
|
+
"haraka-plugin-limit": "^1.1.0",
|
|
62
|
+
"haraka-plugin-p0f": "^1.0.9",
|
|
63
|
+
"haraka-plugin-qmail-deliverable": "^1.1.1",
|
|
64
64
|
"haraka-plugin-known-senders": "^1.0.8",
|
|
65
65
|
"haraka-plugin-rcpt-ldap": "^1.0.0",
|
|
66
|
-
"haraka-plugin-recipient-routes"
|
|
67
|
-
"haraka-plugin-rspamd"
|
|
68
|
-
"haraka-plugin-syslog"
|
|
69
|
-
"haraka-plugin-uribl"
|
|
70
|
-
"haraka-plugin-watch"
|
|
71
|
-
"ocsp"
|
|
72
|
-
"redis"
|
|
73
|
-
"tmp"
|
|
66
|
+
"haraka-plugin-recipient-routes": "^1.0.4",
|
|
67
|
+
"haraka-plugin-rspamd": "^1.2.0",
|
|
68
|
+
"haraka-plugin-syslog": "^1.0.3",
|
|
69
|
+
"haraka-plugin-uribl": "^1.0.6",
|
|
70
|
+
"haraka-plugin-watch": "^2.0.2",
|
|
71
|
+
"ocsp": "~1.2.0",
|
|
72
|
+
"redis": "~4.5.1",
|
|
73
|
+
"tmp": "~0.2.1"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
|
-
"nodeunit-x"
|
|
77
|
-
"haraka-test-fixtures"
|
|
78
|
-
"mock-require"
|
|
79
|
-
"eslint"
|
|
80
|
-
"eslint-plugin-haraka"
|
|
81
|
-
"nodemailer"
|
|
76
|
+
"nodeunit-x": "^0.15.0",
|
|
77
|
+
"haraka-test-fixtures": "^1.2.1",
|
|
78
|
+
"mock-require": "^3.0.3",
|
|
79
|
+
"eslint": "^8.27.0",
|
|
80
|
+
"eslint-plugin-haraka": "^1.0.15",
|
|
81
|
+
"nodemailer": "^6.7.7"
|
|
82
82
|
},
|
|
83
83
|
"bugs": {
|
|
84
84
|
"mail": "haraka.mail@gmail.com",
|
package/smtp_client.js
CHANGED
|
@@ -168,10 +168,10 @@ class SMTPClient extends events.EventEmitter {
|
|
|
168
168
|
// error is e.g. "Error: connect ECONNREFUSED"
|
|
169
169
|
const errMsg = `${client.uuid}: [${client.host}:${client.port}] SMTP connection ${msg} ${error}`;
|
|
170
170
|
|
|
171
|
+
/* eslint-disable no-fallthrough */
|
|
171
172
|
switch (client.state) {
|
|
172
173
|
case STATE.ACTIVE:
|
|
173
174
|
client.emit('error', errMsg);
|
|
174
|
-
// eslint-disable no-fallthrough
|
|
175
175
|
case STATE.IDLE:
|
|
176
176
|
case STATE.RELEASED:
|
|
177
177
|
client.destroy();
|