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 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("qlist option requires config path");
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("qlist option requires config path");
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("order option requires config path");
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 record of res) {
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.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" : "^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",
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" : "1.1.3",
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"
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" : "^1.1.5",
51
- "haraka-plugin-aliases" : "^1.0.1",
52
- "haraka-plugin-asn" : "^2.0.1",
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" : "^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",
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" : "^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"
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" : "^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"
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();