nodemailer 8.0.0 → 8.0.2
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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
|
+
## [8.0.2](https://github.com/nodemailer/nodemailer/compare/v8.0.1...v8.0.2) (2026-03-09)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* merge fragmented display names with unquoted commas in addressparser ([fe27f7f](https://github.com/nodemailer/nodemailer/commit/fe27f7fd57f7587d897274438da2f628ad0ad7d9))
|
|
9
|
+
|
|
10
|
+
## [8.0.1](https://github.com/nodemailer/nodemailer/compare/v8.0.0...v8.0.1) (2026-02-07)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* absorb TLS errors during socket teardown ([7f8dde4](https://github.com/nodemailer/nodemailer/commit/7f8dde41438c66b8311e888fa5f8c518fcaba6f1))
|
|
16
|
+
* absorb TLS errors during socket teardown ([381f628](https://github.com/nodemailer/nodemailer/commit/381f628d55e62bb3131bd2a452fa1ce00bc48aea))
|
|
17
|
+
* Add Gmail Workspace service configuration ([#1787](https://github.com/nodemailer/nodemailer/issues/1787)) ([dc97ede](https://github.com/nodemailer/nodemailer/commit/dc97ede417b3030b311771541b1f17f5ca76bcbf))
|
|
18
|
+
|
|
3
19
|
## [8.0.0](https://github.com/nodemailer/nodemailer/compare/v7.0.13...v8.0.0) (2026-02-04)
|
|
4
20
|
|
|
5
21
|
|
|
@@ -361,6 +361,20 @@ function addressparser(str, options) {
|
|
|
361
361
|
}
|
|
362
362
|
});
|
|
363
363
|
|
|
364
|
+
// Merge fragments from unquoted display names containing commas/semicolons.
|
|
365
|
+
// When "Joe Foo, PhD <joe@example.com>" is split on the comma, it produces
|
|
366
|
+
// [{name:"Joe Foo", address:""}, {name:"PhD", address:"joe@example.com"}].
|
|
367
|
+
// Detect this pattern and recombine: a name-only entry followed by an entry
|
|
368
|
+
// that has both a name and an address (from angle-bracket notation).
|
|
369
|
+
for (let i = parsedAddresses.length - 2; i >= 0; i--) {
|
|
370
|
+
let current = parsedAddresses[i];
|
|
371
|
+
let next = parsedAddresses[i + 1];
|
|
372
|
+
if (current.address === '' && current.name && !current.group && next.address && next.name && !next.group) {
|
|
373
|
+
next.name = current.name + ', ' + next.name;
|
|
374
|
+
parsedAddresses.splice(i, 1);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
|
|
364
378
|
if (options.flatten) {
|
|
365
379
|
let addresses = [];
|
|
366
380
|
let walkAddressList = list => {
|
|
@@ -15,6 +15,7 @@ const CONNECTION_TIMEOUT = 2 * 60 * 1000; // how much to wait for the connection
|
|
|
15
15
|
const SOCKET_TIMEOUT = 10 * 60 * 1000; // how much to wait for socket inactivity before disconnecting the client
|
|
16
16
|
const GREETING_TIMEOUT = 30 * 1000; // how much to wait after connection is established but SMTP greeting is not receieved
|
|
17
17
|
const DNS_TIMEOUT = 30 * 1000; // how much to wait for resolveHostname
|
|
18
|
+
const TEARDOWN_NOOP = () => {}; // reusable no-op handler for absorbing errors during socket teardown
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
21
|
* Generates a SMTP connection object
|
|
@@ -505,6 +506,9 @@ class SMTPConnection extends EventEmitter {
|
|
|
505
506
|
socket.removeListener('end', this._onSocketEnd);
|
|
506
507
|
socket.removeListener('error', this._onSocketError);
|
|
507
508
|
socket.removeListener('error', this._onConnectionSocketError);
|
|
509
|
+
// Absorb errors that may fire during socket teardown (e.g. server
|
|
510
|
+
// sending cleartext after TLS shutdown triggers ERR_SSL_BAD_RECORD_TYPE)
|
|
511
|
+
socket.on('error', TEARDOWN_NOOP);
|
|
508
512
|
socket[closeMethod]();
|
|
509
513
|
} catch (_E) {
|
|
510
514
|
// just ignore
|
|
@@ -147,6 +147,14 @@
|
|
|
147
147
|
"secure": true
|
|
148
148
|
},
|
|
149
149
|
|
|
150
|
+
"GmailWorkspace": {
|
|
151
|
+
"description": "Gmail Workspace",
|
|
152
|
+
"aliases": ["Google Workspace Mail"],
|
|
153
|
+
"host": "smtp-relay.gmail.com",
|
|
154
|
+
"port": 465,
|
|
155
|
+
"secure": true
|
|
156
|
+
},
|
|
157
|
+
|
|
150
158
|
"GMX": {
|
|
151
159
|
"description": "GMX Mail",
|
|
152
160
|
"domains": ["gmx.com", "gmx.net", "gmx.de"],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nodemailer",
|
|
3
|
-
"version": "8.0.
|
|
3
|
+
"version": "8.0.2",
|
|
4
4
|
"description": "Easy as cake e-mail sending from your Node.js applications",
|
|
5
5
|
"main": "lib/nodemailer.js",
|
|
6
6
|
"scripts": {
|
|
@@ -26,12 +26,12 @@
|
|
|
26
26
|
},
|
|
27
27
|
"homepage": "https://nodemailer.com/",
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@aws-sdk/client-sesv2": "3.
|
|
29
|
+
"@aws-sdk/client-sesv2": "3.1004.0",
|
|
30
30
|
"bunyan": "1.8.15",
|
|
31
|
-
"c8": "
|
|
32
|
-
"eslint": "
|
|
31
|
+
"c8": "11.0.0",
|
|
32
|
+
"eslint": "10.0.3",
|
|
33
33
|
"eslint-config-prettier": "10.1.8",
|
|
34
|
-
"globals": "17.
|
|
34
|
+
"globals": "17.4.0",
|
|
35
35
|
"libbase64": "1.3.0",
|
|
36
36
|
"libmime": "5.3.7",
|
|
37
37
|
"libqp": "2.1.1",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"prettier": "3.8.1",
|
|
40
40
|
"proxy": "1.0.2",
|
|
41
41
|
"proxy-test-server": "1.0.0",
|
|
42
|
-
"smtp-server": "3.18.
|
|
42
|
+
"smtp-server": "3.18.1"
|
|
43
43
|
},
|
|
44
44
|
"engines": {
|
|
45
45
|
"node": ">=6.0.0"
|