10.4.0 (2026-11-07)
Summary
The pooled SMTP transport can now be closed with close({ force: true }), which also ends connections that are in the middle of delivering a message. A plain close() behaves as before.
Who should upgrade
No hurry for most users. Upgrade if you use pool: true and need to abandon a delivery that a server is stalling, for example one that trickles its replies so no socket timeout ever fires.
Highlights
transporter.close({ force: true })closes busy pooled connections as well as idle ones. The messages they were delivering fail at once with an error instead of being queued again, and messages still waiting in the queue fail as they do on a plainclose().close()without arguments is unchanged: idle connections close immediately and a connection in the middle of a delivery finishes it first.
Features
- let close({ force: true }) end pooled connections that are delivering a message (aba943c)