- Return net.listen() value
- Added new server option
needsUpgrade
to upgrade sockets to TLS immediately after connection is established. Works with secure: true
- Reverted license back to MIT
- Expose
secure
state 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
connect
method
- Added new method
connect
to 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
tlsOptions
property
- Fixed remoteHostname resolving bug
- Added new option
disableReverseLookup
to skip reverse resolving client hostname on connection
- Added new property for session:
session.transmissionType
that 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
lmtp
option totrue
in order to use it
- Added options
hidePIPELINING
,hide8BITMIME
andhideSMTPUTF8
- Check that
connection._parser
exists 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
useXClient
option - 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
useProxy
option
- Added support for RFC1870 SIZE extension
- Added integration tests for CRAM-MD5 authentication
- Exposed SNI support with
sniOptions
optional 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 withcloseTimeout
option
- 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
hideSTARTTLS
option that hides STARTTLS while still allowing to use it (useful for integration test scenarios but not for production use) - Changed
logger
option behavior - if the value isfalse
then no logging is used. If the value is missing, then output is logged to console - Fixed broken examples in the README