3.15.0 (2025-10-09)
- bumped deps (c499a3c)
3.14.0 (2025-06-27)
3.13.8 (2025-06-04)
- added resolver option, if server closing do not permit commands (fixes #177, fixes #181) (#222) (e79cac9)
3.13.7 (2025-05-20)
3.13.6 (2024-10-21)
3.13.5 (2024-09-08)
- Replaced punycode with punycode.js (4ccbcf2)
3.13.4 (2024-04-12)
- deps: Bumped deps (e096b12)
3.13.3 (2024-02-29)
- deps: Bumped deps (0a2d601)
3.13.2 (2024-02-02)
- release: fixed Git URL on package.json (5876626)
3.13.1 (2024-02-02)
- new event handler
onSecure - specified license identifier in package.json (from
MITtoMIT-0)
- new option
authRequiredMessage - Bumped deps
- Added github workflow for tests
- Removed Travis
- Fixed compatibility for Node v18
- Bumped deps
- Add missing space suffix to an empty 334 response
- Bumped dependencies
- Bumped dependencies
- Added extra log entries for 'close' events
- Bump dependencies to latest
- Access to challenge and challengeResponse (CRAM-MD5)
- Bump dependencies to latest
- Add remote address to any errors
- Bump dependencies to latest
- Fix reverse resolving invalid hostname error where greeting was sent twice
- Bump Nodemailer version to v5.0.0
- Expose connection id in 'connect' event
- Enclose punycode calls in try..catch
- handle missing address in listener handler
- Added new property
securedto indicate an TLS server where TLS is handled upstream - Allow handling TLS after PROXY header
- Do not choke on overly long reverse DNS call
- Added new method updateSecureContext({key, cert}) to update TLS options live
- Return net.listen() value
- Added new server option
needsUpgradeto upgrade sockets to TLS immediately after connection is established. Works with secure: true
- Reverted license back to MIT
- Expose
securestate in session
- Fixad a bug where
server.onConnect(err)did not close the connection
- Fixad a bug where
server.on('connect', data)had missingdata
- Changed license from MIT to EUPL-v1.1
- Rewrite to use ES6, this means at least Node.js v6.0.0 is required to use smtp-server
- Allowed rewriting
connectmethod
- Added new method
connectto pass already established sockets to the server
- Added new connection property
remotePort - Emit 'connect' event when all handshakes (including PROXY) have been completed
- Fix issue with invalidly resolved IPv4 addresses on IPv6 interface
- Ignore connection errors outside transaction
- Expose connection TLS cipher in the
tlsOptionsproperty
- Fixed remoteHostname resolving bug
- Added new option
disableReverseLookupto skip reverse resolving client hostname on connection
- Added new property for session:
session.transmissionTypethat identifies the current transmission (SMTP, ESMTP, ESMTPA etc.)
- Do not strip last linebreak
- this.server.options bug fix #58 (xpepermint)
- Added support for LMTP protocol. Set
lmtpoption totruein order to use it
- Added options
hidePIPELINING,hide8BITMIMEandhideSMTPUTF8
- Check that
connection._parserexists before trying to use it in the DATA handler
- Added new connection method
onClose - Preserve session object, do not re-create it for every transaction
- Added new server option
allowInsecureAuth
- Fixed a bug with XCLIENT ADDR validation
- Added support for XFORWARD command
- Expose XCLIENT and XFORWARD data for the session object (session.xClient, session.xForward - both are Map objects where uppercase argument name is the key, eg. session.xClient.get('ADDR') to see the IP address of XCLIENT)
- Fixed an issue with empty NAME for XCLIENT
- Added support for XCLIENT with
useXClientoption - Fixed an issue with an empty space after EHLO (67acb1534 by AtlasDev)
- Added dummy handlers for KILL, WIZ, SHELL
- Catch errors thrown by dns.reverse on invalid remoteAddress values
- Added onConnect handler to block unwanted connections (66784aea by jleal52)
- Fixed regression with node v0.12 where STARTTLS connections were kept hanging around after close
- Fixed an issue where STARTTLS threw an error
- Fixed an issue where using unknown auth schemes threw an error (a13f0bc8 by farmdog)
- Added support for PROXY protocol with
useProxyoption
- Added support for RFC1870 SIZE extension
- Added integration tests for CRAM-MD5 authentication
- Exposed SNI support with
sniOptionsoptional server option - Define used protocol for NPN as 'smtp'
- Added CRAM-MD5 authentication support
- Do not allow HTTP requests. If the client tries to send a command that looks like a HTTP request, then disconnect
- Close connection after 10 unrecognized commands
- Close connection after 10 unauthenticated commands
- Close all pending connections after
server.close()has been called. Default delay to wait is 30 sec. Can be changed withcloseTimeoutoption
- Fixed an issue with parsing MAIL FROM and RCPT TO commands, if there was a space before or after the first colon
- Added support for
hideSTARTTLSoption that hides STARTTLS while still allowing to use it (useful for integration test scenarios but not for production use) - Changed
loggeroption behavior - if the value isfalsethen no logging is used. If the value is missing, then output is logged to console - Fixed broken examples in the README