Packages

nodemailer

10.2.1 · 22 Oct 2026MIT-023.7M / weekRepositoryHomepagenpmAtom feed

Upgrading nodemailer from 3.1.7 to 10.1.4

144 releases in betweennotes for 69

Other targets from 3.1.7Newest 3.x3.1.8Latest10.2.1
5+
changes to make
23
advisories fixed
23+
new
142+
fixes

Counted from 69 of 144 release notes. Advisories are counted from the advisory database, in full.

Before you upgrade

Tick each one off as you go
  • breaking10.0.0
  • breaking9.0.0
  • breaking8.0.0
  • breaking7.0.0
  • breaking5.0.0

Security

Fixes 23 advisories affecting 3.1.7

  • Two pending security advisories (jsonTransport access bypass, List-* CRLF injection)

    8.0.9
  • Sanitize CRLF in transport name option to prevent SMTP command injection (GHSA-vvjj-xcjg-gr5g)

    8.0.5
  • Sanitize envelope size to prevent SMTP command injection

    8.0.4

Release by release

  1. 10.1.4

    18 Oct 20269 fixes
    • fixed

      addressparser: apply the unexpected "<" rule outside quotes and comments

    • fixed

      addressparser: bound group nesting at ten levels

    • fixed

      addressparser: drop the obsolete route from an angle-addr

    • fixed

      addressparser: end a comment only at the ")" that closes the outermost one

  2. 10.1.3

    18 Oct 20261 fix
    • fixed

      Format References and strip URLs in linear time, release any number of streams

  3. 10.1.2

    16 Oct 20261 fix
    • fixed

      Bound the work a message can make the mailer do and keep per-message auth off the transport's token endpoint

  4. 10.1.1

    14 Oct 20261 fix
    • fixed

      fetch: strip credentials on any cross-origin redirect

  5. 10.1.0

    10 Oct 20262 new · 11 fixes
    • new

      Harden message streams, SMTP connections and the connection pool

    • new

      Encode base64 and quoted-printable without per-chunk delays

    • fixed

      Do not read the environment or the interface table on import

    • fixed

      End the SMTP session on any 421 reply and drive the envelope through one step

  6. 10.0.16

    7 Oct 20263 fixes
    • fixed

      addressparser: keep an escaped parenthesis inside a comment

    • fixed

      fetch: keep the case of cookie names

    • fixed

      fetch: read the cookie name-value pair by position

  7. 10.0.15

    5 Oct 20262 fixes
    • fixed

      errors: inherit NodemailerError code from ErrnoException (e99db61), closes #1884

    • fixed

      errors: keep NodemailerError compatible with @types/node 26 ErrnoException

  8. 10.0.14

    3 Oct 20266 fixes
    • fixed

      addressparser: keep a quoted display name that holds no "@" out of the address

    • fixed

      addressparser: keep the group recursion depth out of the options object

    • fixed

      addressparser: stop a "[" from hiding the operators after it

    • fixed

      dkim: trim a header field name in linear time

    • fixed

      mime-funcs: read and write header parameters per rfc2045 and rfc2231

    • fixed

      Search only the new bytes for the end of the proxy CONNECT response

11 other lines we could not sort, mostly version bumps
  • Include EHLO extensions in the send response

    6.9.0
  • Updated DNS resolving logic. If there are multiple responses for a A/AAAA record, then loop these randomly instead of only caching the first one

    6.7.0
  • Aws ses connection verification (Ognjen Jevremovic)

    6.6.0
  • Pass through textEncoding to subnodes

    6.5.0
  • No changes. It is the same as 6.2.0 that was accidentally published as 6.2.1 to npm

    6.2.1
  • SMTPConnection: Use removeListener instead of removeAllListeners (xr0master) [ddc4af15]

    6.0.0
  • Official support for custom authentication methods and examples (examples/custom-auth-async.js and examples/custom-auth-cb.js)

    5.1.0
  • Show more logs for renewing OAuth2 tokens, previously it was not possible to see what actually failed

    5.0.0
  • Cleaned up List-* header generation

    4.7.0
  • Changed default behavior for attachment option contentTransferEncoding. If it is unset then base64 encoding is used for the attachment. If it is set to false then previous default applies (base64 for most, 7bit for text)

    4.4.0

1 internal line (docs, tests, tooling) left out.