nodemailer 6.9.12 → 6.9.14
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/.ncurc.js +4 -1
- package/CHANGELOG.md +17 -0
- package/lib/nodemailer.js +13 -6
- package/lib/smtp-connection/index.js +13 -0
- package/lib/well-known/services.json +14 -3
- package/package.json +5 -5
package/.ncurc.js
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
|
+
## [6.9.14](https://github.com/nodemailer/nodemailer/compare/v6.9.13...v6.9.14) (2024-06-19)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* **api:** Added support for Ethereal authentication ([56b2205](https://github.com/nodemailer/nodemailer/commit/56b22052a98de9e363f6c4d26d1512925349c3f3))
|
|
9
|
+
* **services.json:** Add Email Services Provider Feishu Mail (CN) ([#1648](https://github.com/nodemailer/nodemailer/issues/1648)) ([e9e9ecc](https://github.com/nodemailer/nodemailer/commit/e9e9ecc99b352948a912868c7912b280a05178c6))
|
|
10
|
+
* **services.json:** update Mailtrap host and port in well known ([#1652](https://github.com/nodemailer/nodemailer/issues/1652)) ([fc2c9ea](https://github.com/nodemailer/nodemailer/commit/fc2c9ea0b4c4f4e514143d2a138c9a23095fc827))
|
|
11
|
+
* **well-known-services:** Add Loopia in well known services ([#1655](https://github.com/nodemailer/nodemailer/issues/1655)) ([21a28a1](https://github.com/nodemailer/nodemailer/commit/21a28a18fc9fdf8e0e86ddd846e54641395b2cb6))
|
|
12
|
+
|
|
13
|
+
## [6.9.13](https://github.com/nodemailer/nodemailer/compare/v6.9.12...v6.9.13) (2024-03-20)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
* **tls:** Ensure servername for SMTP ([d66fdd3](https://github.com/nodemailer/nodemailer/commit/d66fdd3dccacc4bc79d697fe9009204cc8d4bde0))
|
|
19
|
+
|
|
3
20
|
## [6.9.12](https://github.com/nodemailer/nodemailer/compare/v6.9.11...v6.9.12) (2024-03-08)
|
|
4
21
|
|
|
5
22
|
|
package/lib/nodemailer.js
CHANGED
|
@@ -13,6 +13,7 @@ const packageData = require('../package.json');
|
|
|
13
13
|
|
|
14
14
|
const ETHEREAL_API = (process.env.ETHEREAL_API || 'https://api.nodemailer.com').replace(/\/+$/, '');
|
|
15
15
|
const ETHEREAL_WEB = (process.env.ETHEREAL_WEB || 'https://ethereal.email').replace(/\/+$/, '');
|
|
16
|
+
const ETHEREAL_API_KEY = (process.env.ETHEREAL_API_KEY || '').replace(/\s*/g, '') || null;
|
|
16
17
|
const ETHEREAL_CACHE = ['true', 'yes', 'y', '1'].includes((process.env.ETHEREAL_CACHE || 'yes').toString().trim().toLowerCase());
|
|
17
18
|
|
|
18
19
|
let testAccount = false;
|
|
@@ -79,15 +80,21 @@ module.exports.createTestAccount = function (apiUrl, callback) {
|
|
|
79
80
|
let chunks = [];
|
|
80
81
|
let chunklen = 0;
|
|
81
82
|
|
|
83
|
+
let requestHeaders = {};
|
|
84
|
+
let requestBody = {
|
|
85
|
+
requestor: packageData.name,
|
|
86
|
+
version: packageData.version
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
if (ETHEREAL_API_KEY) {
|
|
90
|
+
requestHeaders.Authorization = 'Bearer ' + ETHEREAL_API_KEY;
|
|
91
|
+
}
|
|
92
|
+
|
|
82
93
|
let req = nmfetch(apiUrl + '/user', {
|
|
83
94
|
contentType: 'application/json',
|
|
84
95
|
method: 'POST',
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
requestor: packageData.name,
|
|
88
|
-
version: packageData.version
|
|
89
|
-
})
|
|
90
|
-
)
|
|
96
|
+
headers: requestHeaders,
|
|
97
|
+
body: Buffer.from(JSON.stringify(requestBody))
|
|
91
98
|
});
|
|
92
99
|
|
|
93
100
|
req.on('readable', () => {
|
|
@@ -58,6 +58,8 @@ class SMTPConnection extends EventEmitter {
|
|
|
58
58
|
this.port = Number(this.options.port) || (this.secureConnection ? 465 : 587);
|
|
59
59
|
this.host = this.options.host || 'localhost';
|
|
60
60
|
|
|
61
|
+
this.servername = this.options.servername ? this.options.servername : !net.isIP(this.host) ? this.host : false;
|
|
62
|
+
|
|
61
63
|
this.allowInternalNetworkInterfaces = this.options.allowInternalNetworkInterfaces || false;
|
|
62
64
|
|
|
63
65
|
if (typeof this.options.secure === 'undefined' && this.port === 465) {
|
|
@@ -296,6 +298,12 @@ class SMTPConnection extends EventEmitter {
|
|
|
296
298
|
opts[key] = this.options.tls[key];
|
|
297
299
|
});
|
|
298
300
|
}
|
|
301
|
+
|
|
302
|
+
// ensure servername for SNI
|
|
303
|
+
if (this.servername && !opts.servername) {
|
|
304
|
+
opts.servername = this.servername;
|
|
305
|
+
}
|
|
306
|
+
|
|
299
307
|
return shared.resolveHostname(opts, (err, resolved) => {
|
|
300
308
|
if (err) {
|
|
301
309
|
return setImmediate(() => this._onError(err, 'EDNS', false, 'CONN'));
|
|
@@ -904,6 +912,11 @@ class SMTPConnection extends EventEmitter {
|
|
|
904
912
|
opts[key] = this.options.tls[key];
|
|
905
913
|
});
|
|
906
914
|
|
|
915
|
+
// ensure servername for SNI
|
|
916
|
+
if (this.servername && !opts.servername) {
|
|
917
|
+
opts.servername = this.servername;
|
|
918
|
+
}
|
|
919
|
+
|
|
907
920
|
this.upgrading = true;
|
|
908
921
|
// tls.connect is not an asynchronous function however it may still throw errors and requires to be wrapped with try/catch
|
|
909
922
|
try {
|
|
@@ -57,6 +57,14 @@
|
|
|
57
57
|
"secure": true
|
|
58
58
|
},
|
|
59
59
|
|
|
60
|
+
"Feishu Mail": {
|
|
61
|
+
"aliases": ["Feishu", "FeishuMail"],
|
|
62
|
+
"domains": ["www.feishu.cn"],
|
|
63
|
+
"host": "smtp.feishu.cn",
|
|
64
|
+
"port": 465,
|
|
65
|
+
"secure": true
|
|
66
|
+
},
|
|
67
|
+
|
|
60
68
|
"GandiMail": {
|
|
61
69
|
"aliases": ["Gandi", "Gandi Mail"],
|
|
62
70
|
"host": "mail.gandi.net",
|
|
@@ -109,7 +117,10 @@
|
|
|
109
117
|
"domains": ["ik.me", "ikmail.com", "etik.com"],
|
|
110
118
|
"port": 587
|
|
111
119
|
},
|
|
112
|
-
|
|
120
|
+
"Loopia": {
|
|
121
|
+
"host": "mailcluster.loopia.se",
|
|
122
|
+
"port": 465
|
|
123
|
+
},
|
|
113
124
|
"mail.ee": {
|
|
114
125
|
"host": "smtp.mail.ee"
|
|
115
126
|
},
|
|
@@ -147,8 +158,8 @@
|
|
|
147
158
|
},
|
|
148
159
|
|
|
149
160
|
"Mailtrap": {
|
|
150
|
-
"host": "smtp.mailtrap.io",
|
|
151
|
-
"port":
|
|
161
|
+
"host": "live.smtp.mailtrap.io",
|
|
162
|
+
"port": 587
|
|
152
163
|
},
|
|
153
164
|
|
|
154
165
|
"Mandrill": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nodemailer",
|
|
3
|
-
"version": "6.9.
|
|
3
|
+
"version": "6.9.14",
|
|
4
4
|
"description": "Easy as cake e-mail sending from your Node.js applications",
|
|
5
5
|
"main": "lib/nodemailer.js",
|
|
6
6
|
"scripts": {
|
|
@@ -23,19 +23,19 @@
|
|
|
23
23
|
},
|
|
24
24
|
"homepage": "https://nodemailer.com/",
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@aws-sdk/client-ses": "3.
|
|
26
|
+
"@aws-sdk/client-ses": "3.600.0",
|
|
27
27
|
"bunyan": "1.8.15",
|
|
28
|
-
"c8": "
|
|
28
|
+
"c8": "10.1.2",
|
|
29
29
|
"eslint": "8.57.0",
|
|
30
30
|
"eslint-config-nodemailer": "1.2.0",
|
|
31
31
|
"eslint-config-prettier": "9.1.0",
|
|
32
32
|
"libbase64": "1.3.0",
|
|
33
|
-
"libmime": "5.3.
|
|
33
|
+
"libmime": "5.3.5",
|
|
34
34
|
"libqp": "2.1.0",
|
|
35
35
|
"nodemailer-ntlm-auth": "1.0.4",
|
|
36
36
|
"proxy": "1.0.2",
|
|
37
37
|
"proxy-test-server": "1.0.0",
|
|
38
|
-
"smtp-server": "3.13.
|
|
38
|
+
"smtp-server": "3.13.4"
|
|
39
39
|
},
|
|
40
40
|
"engines": {
|
|
41
41
|
"node": ">=6.0.0"
|