Skip to content
This repository was archived by the owner on Dec 12, 2024. It is now read-only.

Commit edb6072

Browse files
committed
fix: locked version to v3.x due to dns get_txt bug
1 parent 12d7ed5 commit edb6072

File tree

4 files changed

+44
-67
lines changed

4 files changed

+44
-67
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ You'll also need the following dependencies installed:
226226
* Ubuntu:
227227

228228
```sh
229-
sudo apt-get -y install spamassassin spamc python
229+
sudo apt-get -y install spamassassin spamc python3
230230
```
231231

232232
> If you are using a `jessie` based version of Debian (e.g. Ubuntu 16.04+):

index.js

+3-20
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ const util = require('util');
77

88
const DKIM = require('nodemailer/lib/dkim');
99
const Limiter = require('ratelimiter');
10-
const NodeDKIM = require('dkim');
1110
const Promise = require('bluebird');
1211
const Redis = require('@ladjs/redis');
1312
const _ = require('lodash');
@@ -43,7 +42,6 @@ const {
4342
logger
4443
} = require('./helpers');
4544

46-
const verifyDKIM = util.promisify(NodeDKIM.verify);
4745
const lookupAsync = util.promisify(dns.lookup);
4846
const resolveTxtAsync = util.promisify(dns.resolveTxt);
4947
const resolveMxAsync = util.promisify(dns.resolveMx);
@@ -559,6 +557,7 @@ class ForwardEmail {
559557
headers.getFirst('dkim-signature') === ''
560558
? true
561559
: await this.validateDKIM(originalRaw);
560+
562561
if (!dkim)
563562
throw new CustomError(
564563
'Your email contained an invalid DKIM signature. For more information visit https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail. You can also reach out to us for help analyzing this issue.'
@@ -936,26 +935,10 @@ class ForwardEmail {
936935
async validateDKIM(raw) {
937936
try {
938937
const pass = await dkimVerify(raw);
939-
if (pass) return true;
940-
// attempt to use fallback node DKIM library
941-
const results = await verifyDKIM(raw);
942-
if (
943-
!Array.isArray(results) ||
944-
(Array.isArray(results) && results.length === 0) ||
945-
(Array.isArray(results) &&
946-
results.length > 0 &&
947-
results.every(
948-
result =>
949-
result.verified ||
950-
[NodeDKIM.NONE, NodeDKIM.OK].includes(result.status)
951-
))
952-
)
953-
return true;
954-
return false;
938+
return pass;
955939
} catch (err) {
956940
logger.error(err);
957-
err.message =
958-
'Your email contained an invalid DKIM signature. For more information visit https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail. You can also reach out to us for help analyzing this issue.';
941+
err.message = `Your email contained an invalid DKIM signature. For more information visit https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail. You can also reach out to us for help analyzing this issue. Original error message: ${err.message}`;
959942
err.responseCode = 421;
960943
throw err;
961944
}

package.json

+3-4
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
"cabin": "^5.0.13",
3737
"common-tags": "^1.8.0",
3838
"disposable-email-domains": "^1.0.50",
39-
"dkim": "^0.7.1",
4039
"dmarc-parse": "^1.0.2",
4140
"dnsbl": "^3.2.0",
4241
"get-fqdn": "^0.0.4",
@@ -45,14 +44,14 @@
4544
"is-string-and-not-blank": "^0.0.2",
4645
"lodash": "^4.17.15",
4746
"mailin": "^3.0.4",
48-
"mailsplit": "4.4",
47+
"mailsplit": "^4.6.3",
4948
"ms": "^2.1.2",
5049
"nodemailer": "^6.4.2",
5150
"parse-domain": "^2.3.4",
5251
"pino": "^5.14.0",
5352
"punycode": "^2.1.1",
54-
"python-dkim-verify": "^0.0.3",
55-
"python-spfcheck2": "^0.0.8",
53+
"python-dkim-verify": "^1.0.1",
54+
"python-spfcheck2": "^1.0.0",
5655
"ratelimiter": "^3.4.0",
5756
"signale": "^1.4.0",
5857
"smtp-server": "3.5.0",

yarn.lock

+37-42
Original file line numberDiff line numberDiff line change
@@ -2570,24 +2570,6 @@ disposable-email-domains@^1.0.50:
25702570
resolved "https://registry.yarnpkg.com/disposable-email-domains/-/disposable-email-domains-1.0.50.tgz#2134170aa98394101972610e5a7b69cdf79de015"
25712571
integrity sha512-ScWM11YB4PWkPmMtW+Jqx2f5DbXWQpcjJB0TjuEFaoTag0wosZHDG1IdJGeA7Kyc/c+Wnpoh9D9cFf191lx2Bw==
25722572

2573-
dkim-key@^1.3.0:
2574-
version "1.3.0"
2575-
resolved "https://registry.yarnpkg.com/dkim-key/-/dkim-key-1.3.0.tgz#8d47fb44bc9f831e4c15135b3ef860a31f9c85d3"
2576-
integrity sha512-19+M28U4pucj6R5OfOBpWjNwUNouQUJBEN/w20MIwOVodF17kDMr03rQxvk0m8V+JRrx3x3DGyexvXgubjo5dw==
2577-
2578-
dkim-signature@^1.3.0:
2579-
version "1.3.0"
2580-
resolved "https://registry.yarnpkg.com/dkim-signature/-/dkim-signature-1.3.0.tgz#aee5d45a8fcf8f79faa3a3a239e711eacd4de099"
2581-
integrity sha512-/NPCgG9L+k1+QhCWkGO6QlTavFg1AuhutYE197O/TsQb8OrJk52UJMMBL8eHzZ8Ei8SaUVCeoluJJunQrvz5Vg==
2582-
2583-
dkim@^0.7.1:
2584-
version "0.7.1"
2585-
resolved "https://registry.yarnpkg.com/dkim/-/dkim-0.7.1.tgz#b0c8418788d2726086567ab8bd54e816eccd943d"
2586-
integrity sha512-jemASJq7bh9EzV62uS7UEg6wreuEn3Sl9A/7QWM2wOpPaOPaLDutNar8gpmRQ0g7M3NdtGq+fvpxn7vvBtZ4KQ==
2587-
dependencies:
2588-
dkim-key "^1.3.0"
2589-
dkim-signature "^1.3.0"
2590-
25912573
dmarc-parse@^1.0.2:
25922574
version "1.0.2"
25932575
resolved "https://registry.yarnpkg.com/dmarc-parse/-/dmarc-parse-1.0.2.tgz#77528fcdf78b888c48722856afac7e413b773b7b"
@@ -2726,6 +2708,11 @@ encodeurl@~1.0.2:
27262708
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
27272709
integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
27282710

2711+
2712+
version "1.0.30"
2713+
resolved "https://registry.yarnpkg.com/encoding-japanese/-/encoding-japanese-1.0.30.tgz#537c4d62881767925d601acb4c79fb14db81703a"
2714+
integrity sha512-bd/DFLAoJetvv7ar/KIpE3CNO8wEuyrt9Xuw6nSMiZ+Vrz/Q21BPsMHvARL2Wz6IKHKXgb+DWZqtRg1vql9cBg==
2715+
27292716
encoding@^0.1.11, encoding@~0.1.7:
27302717
version "0.1.12"
27312718
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
@@ -4205,6 +4192,13 @@ [email protected], iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13:
42054192
dependencies:
42064193
safer-buffer ">= 2.1.2 < 3"
42074194

4195+
4196+
version "0.5.0"
4197+
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.5.0.tgz#59cdde0a2a297cc2aeb0c6445a195ee89f127550"
4198+
integrity sha512-NnEhI9hIEKHOzJ4f697DMz9IQEXr/MMJ5w64vN2/4Ai+wRnvV7SBrL0KLoRlwaKVghOc7LQ5YkPLuX146b6Ydw==
4199+
dependencies:
4200+
safer-buffer ">= 2.1.2 < 3"
4201+
42084202
ignore-by-default@^1.0.0:
42094203
version "1.0.1"
42104204
resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09"
@@ -5541,18 +5535,19 @@ levn@^0.3.0, levn@~0.3.0:
55415535
prelude-ls "~1.1.2"
55425536
type-check "~0.3.2"
55435537

5544-
libbase64@1.0.3:
5545-
version "1.0.3"
5546-
resolved "https://registry.yarnpkg.com/libbase64/-/libbase64-1.0.3.tgz#de3023234abeefeb9d49378804c8a94404f5c98c"
5547-
integrity sha512-ULQZAATVGTAgVNwP61R+MbbSGNBy1tVzWupB9kbE6p+VccWd+J+ICXgOwQic5Yqagzpu+oPZ8sI7yXdWJnPPkA==
5538+
libbase64@1.2.1:
5539+
version "1.2.1"
5540+
resolved "https://registry.yarnpkg.com/libbase64/-/libbase64-1.2.1.tgz#fb93bf4cb6d730f29b92155b6408d1bd2176a8c8"
5541+
integrity sha512-l+nePcPbIG1fNlqMzrh68MLkX/gTxk/+vdvAb388Ssi7UuUN31MI44w4Yf33mM3Cm4xDfw48mdf3rkdHszLNew==
55485542

5549-
libmime@4.1.1:
5550-
version "4.1.1"
5551-
resolved "https://registry.yarnpkg.com/libmime/-/libmime-4.1.1.tgz#eb7a60c775ba78c3715ddaec5cd52596a047f8d1"
5552-
integrity sha512-HkOfBSj+l7pBOOucEgiI6PdbgHa8ljv+1rARzW743HQ51UP8gabMlcA2wAF3Dg1aeuMjHZ+LzAPYxM52IZsyGA==
5543+
libmime@4.2.1:
5544+
version "4.2.1"
5545+
resolved "https://registry.yarnpkg.com/libmime/-/libmime-4.2.1.tgz#d21aa5db88b131af18bf5a3caa1013da2c21a9dd"
5546+
integrity sha512-09y7zjSc5im1aNsq815zgo4/G3DnIzym3aDOHsGq4Ee5vrX4PdgQRybAsztz9Rv0NhO+J5C0llEUloa3sUmjmA==
55535547
dependencies:
5554-
iconv-lite "0.4.24"
5555-
libbase64 "1.0.3"
5548+
encoding-japanese "1.0.30"
5549+
iconv-lite "0.5.0"
5550+
libbase64 "1.2.1"
55565551
libqp "1.1.0"
55575552

55585553
@@ -5935,13 +5930,13 @@ mailparser@^0.5.1:
59355930
mimelib "^0.2.19"
59365931
uue "^3.0.0"
59375932

5938-
mailsplit@4.4:
5939-
version "4.4.1"
5940-
resolved "https://registry.yarnpkg.com/mailsplit/-/mailsplit-4.4.1.tgz#838603af3c1561e27aedd8599cec2a59c097faa6"
5941-
integrity sha512-AmWLEHQAg/zbNb1MdrPQS9VOzysHaU9IuoQV9kGU5fgjM5RCbgqVkZzp0+DhPep8sj8iHfbWkl16Nb1PbNlTYg==
5933+
mailsplit@^4.6.3:
5934+
version "4.6.3"
5935+
resolved "https://registry.yarnpkg.com/mailsplit/-/mailsplit-4.6.3.tgz#a037429047f7ede52b35ec6360e2ce1578a63d86"
5936+
integrity sha512-PEywoXeIJOtruNRobHw7/z8bgy1B9JNar5MkgGto0YOMqSo50jQV5SuZoz/7ZwFLd3KY/D3yEhY2UknX0KNHjQ==
59425937
dependencies:
5943-
libbase64 "1.0.3"
5944-
libmime "4.1.1"
5938+
libbase64 "1.2.1"
5939+
libmime "4.2.1"
59455940
libqp "1.1.0"
59465941

59475942
make-dir@^1.0.0:
@@ -7490,18 +7485,18 @@ punycode@^2.1.0, punycode@^2.1.1:
74907485
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
74917486
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
74927487

7493-
python-dkim-verify@^0.0.3:
7494-
version "0.0.3"
7495-
resolved "https://registry.yarnpkg.com/python-dkim-verify/-/python-dkim-verify-0.0.3.tgz#f4be4838e37ca68f57c85916eabbcc30e408ca8e"
7496-
integrity sha512-CO7wHtQ4tztZ9qfR40NyRUqGwlHbyV4Pj9iYVKTeHz32zijZQDp3ZmM5f+Xx9KO8nv6qTEcP81kBqU1VoH3d6w==
7488+
python-dkim-verify@^1.0.1:
7489+
version "1.0.1"
7490+
resolved "https://registry.yarnpkg.com/python-dkim-verify/-/python-dkim-verify-1.0.1.tgz#c06ba0eed4bc0a11357913152fcf8598d78d5f58"
7491+
integrity sha512-jbiodhBo34fccRnmrNRhfTCw1qO4AbndbX9Fdi+rTF/IGfcbTetHIjvlh869K2MZ3DxnGUUFY63Z0ud4KNnfWA==
74977492
dependencies:
74987493
semver "^6.3.0"
74997494
shelljs "^0.8.3"
75007495

7501-
python-spfcheck2@^0.0.8:
7502-
version "0.0.8"
7503-
resolved "https://registry.yarnpkg.com/python-spfcheck2/-/python-spfcheck2-0.0.8.tgz#c3fe7e0f5d41e758dc9fba2eedd6c5462f16af1a"
7504-
integrity sha512-yDHaEj2G0Cd7i1jqx031nIqfKtMU4JqmY8HWLKLqi8EEtf5Wt23lRHwaMjaHHkxSvc1WCr7dbgDNe1Zv9ZI63Q==
7496+
python-spfcheck2@^1.0.0:
7497+
version "1.0.0"
7498+
resolved "https://registry.yarnpkg.com/python-spfcheck2/-/python-spfcheck2-1.0.0.tgz#c0b8058545339644034b29ac9e36b675bcc1b55e"
7499+
integrity sha512-3ZL74Nltn6sTAHD26hQoBma5ew+ahdEeSvnCbeYROl6B7qhszi5hO0z6qvZnnPKXoGBwBp/tz+7HJuUZOHDO4Q==
75057500
dependencies:
75067501
semver "^6.3.0"
75077502
shelljs "^0.8.3"

0 commit comments

Comments
 (0)