Repository navigation
v5.3.0: transport verify timeouts, reported outcome-write failures, Node 14 support - #67
Merged
Merged
Conversation
…hutdown regressions
…ly, lazy re-probe with backoff
…sing, migration notes
…; docs and test bound fixes
…wal in both modes; docs
…ear per claim; wording
…equire sendingTimeout in the lease; tests
…ar uncertain marker on first-write success
josk 6.5.0 lowers its engines floor to Node 14.21.3, so engine-strict installs now fail only on Node 14.19.3 to 14.21.2.
5.2.2 rejected unquoted @ [ ] \ ( ) in display names, which 5.2.1
accepted. Sending the raw string also let Nodemailer drop comments
from the To header, or the whole mailbox after an unbalanced "(",
while RCPT still went to the address. Quoting the name in the sent
header keeps 5.2.1 inputs working and makes the header show the
mailbox the policy checked. Stored mailOptions keep the original.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
verifyTimeout(default 30 s). A timeout no longer marks a transport unusable, late verdicts still apply, and quarantined transports recover through background re-probes with backoff (60 s doubling to 15 min).drain()resolves{ failedWrites }, andonErrorfires withdetails.phase'complete'or'checkpoint'. An outcome write lost after an uncertain claim renewal is retried once, then reported.sendingand was re-sent later with no error.engines.nodeis now>=14.19.3(was>=20.9.0). The packed tarball passes the runtime matrix on Node 14.19.3 through 24 and Bun."Doe, John" <user@example.com>. This includes the 5.2.2 changes from v5.2.2: accept quoted display names under recipient policies #64, which were not published separately.@ [ ] \ ( ), so every address 5.2.1 accepted still works. The sent header shows the name quoted ("John (Sales)" <x@y.com>) and always matches the envelope address. Before, Nodemailer dropped comments from the header, or the whole mailbox after an unbalanced(. WithoutrecipientPoliciesnothing changes.joskraised to^6.5.0. It declares Node>=14.21.3, so engine-strict installs fail on Node 14.19.3 to 14.21.2.Breaking effects to check: code relying on
drain()resolvingundefined, or on verify timeouts marking a transport down. Migration notes are in CHANGELOG.md.Verification
npm run test:jest: 540 passed, 19 suites, 97.32% statements.bun test ./test/jest: 540 passed, 19 files.index.cjsload, header rewrite, address parse): passed.npm run test:types: passed.npm run prepublishOnly: no diff in generated files.