- Disabled postinstall script
- Fix normalizeHeaderKey method for single node messages
- Better handling of attachment filenames that include quote symbols
- Includes all information from the oath2 error response in the error message (Normal Gaussian) [1787f227]
- Fixed escape sequence handling in address parsing
- Fixed RFC822 output for MailComposer when using invalid content-type value. Mostly relevant if message attachments have stragne content-type values set.
- Always set charset=utf-8 for Content-Type headers
- Catch error whn using invalid crypto.sign input
- fix:
requeueAttempts=n
should requeuen
times (Patrick Malouin) [a27ed2f7]
- Add
options.forceAuth
for SMTP (Patrick Malouin) [a27ed2f7]
- Added an option to specify max number of requeues when connection closes unexpectedly (Igor Sechyn) [8a927f5a]
- Fixed bug where array item was used with a potentially empty array
- Fix processing server output with unterminated responses
- Do not use auth if server does not advertise AUTH support [f419b09d]
- add dns.CONNREFUSED (Hiroyuki Okada) [5c4c8ca8]
- Ignore "end" events because it might be "error" after it (dex4er) [72bade9]
- Set username and password on the connection proxy object correctly (UsamaAshraf) [250b1a8]
- Support more DNS errors (madarche) [2391aa4]
- Added new option to pass a set of httpHeaders to be sent when fetching attachments. See PR #1034
- No changes. It is the same as 6.2.0 that was accidentally published as 6.2.1 to npm
- Added new option for addressparser:
flatten
. If true then ignores group names and returns a single list of all addresses
- Fixed regression bug with missing smtp
authMethod
property
- Added new message property
amp
for providing AMP4EMAIL content
- SMTPConnection: use removeListener instead of removeAllListeners (xr0master) [ddc4af15] Using removeListener should fix memory leak with Node.js streams
- Added missing option argument for custom auth
- Official support for custom authentication methods and examples (examples/custom-auth-async.js and examples/custom-auth-cb.js)
- Fixed regression error to support Node versions lower than 6.11
- Added expiremental custom authentication support
- Start using dns.resolve() instead of dns.lookup() for resolving SMTP hostnames. Might be breaking change on some environments so upgrade with care
- Show more logs for renewing OAuth2 tokens, previously it was not possible to see what actually failed
- Cleaned up List-* header generation
- Fixed 'full' return option for DSN (klaronix) [23b93a3b]
- Support promises
for mailcomposer.build()
- Use first IP address from DNS resolution when using a proxy (Limbozz) [d4ca847c]
- Return raw email from SES transport (gabegorelick) [3aa08967]
- Added option
skipEncoding
to JSONTransport
- Fixes mime encoded-word compatibility issue with invalid clients like Zimbra
- Fixed broken DKIM stream in Node.js v10
- Updated error messages for SMTP responses to not include a newline
- Readded logo author link to README that was accidentally removed a while ago
- Removed unneeded dependency
- When redirecting URL calls then do not include original POST content
- Fixed Smtp connection freezing, when trying to send after close / quit (twawszczak) [73d3911c]
- Support socks module v2 in addition to v1 [e228bcb2]
- Fixed invalid promise return value when using createTestAccount [5524e627]
- Allow using local addresses [8f6fa35f]
- Added new message transport option
normalizeHeaderKey(key)=>normalizedKey
for custom header formatting
- Added sponsors section to README
- enclose encodeURIComponent in try..catch to handle invalid urls
- Better handling of unexpectedly dropping connections
- 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)
- Fixed a confict with Electron.js where timers do not have unref method
- Added new mail object method
mail.normalize(cb)
that should make creating HTTP API based transports much easier
- Expose streamed messages size and timers in info response
- Allow generating preview links without calling createTestAccount first
- No actual changes. Needed to push updated README to npmjs
- Fixed JSONTransport attachment handling
- Added new methods
createTestAccount
andgetTestMessageUrl
to use autogenerated email accounts from https://Ethereal.email
- Fixed issue with LMTP and STARTTLS
- License changed from EUPLv1.1 to MIT
- Fixed invalid List-* header generation
- Emit an error if STARTTLS ends with connection being closed
- Expose last server response for smtpConnection
- Fixed SES transport, added missing
response
value
- Fixed DKIM calculation for empty body
- Ensure linebreak after message content. This fixes DKIM signatures for non-multipart messages where input did not end with a newline
- Fixed missing
transport.verify()
methods for SES transport
- Added missing error handlers for Sendmail, SES and Stream transports. If a messages contained an invalid URL as attachment then these transports threw an uncatched error
- Fixed missing
transport.on('idle')
andtransport.isIdle()
methods for SES transports
- Added built-in transport for AWS SES. Docs
- Updated stream transport to allow building JSON strings. Docs
- Added new method mail.resolveAll that fetches all attachments and such to be able to more easily build API-based transports
- Fixed a bug with OAuth2 login where error callback was fired twice if getToken was not available.
- Fixed a bug where Nodemailer threw an exception if
disableFileAccess
option was used - Added FLOSS exception declaration
- Initial version of Nodemailer 3
This update brings a lot of breaking changes:
- License changed from MIT to EUPL-1.1. This was possible as the new version of Nodemailer is a major rewrite. The features I don't have ownership for, were removed or reimplemented. If there's still some snippets in the code that have vague ownership then notify mailto:[email protected] about the conflicting code and I'll fix it.
- Requires Node.js v6+
- All templating is gone. It was too confusing to use and to be really universal a huge list of different renderers would be required. Nodemailer is about email, not about parsing different template syntaxes
- No NTLM authentication. It was too difficult to re-implement. If you still need it then it would be possible to introduce a pluggable SASL interface where you could load the NTLM module in your own code and pass it to Nodemailer. Currently this is not possible.
- OAuth2 authentication is built in and has a different configuration. You can use both user (3LO) and service (2LO) accounts to generate access tokens from Nodemailer. Additionally there's a new feature to authenticate differently for every message – useful if your application sends on behalf of different users instead of a single sender.
- Improved Calendaring. Provide an ical file to Nodemailer to send out calendar events.
And also some non-breaking changes:
- All dependencies were dropped. There is exactly 0 dependencies needed to use Nodemailer. This brings the installation time of Nodemailer from NPM down to less than 2 seconds
- Delivery status notifications added to Nodemailer
- Improved and built-in DKIM signing of messages. Previously you needed an external module for this and it did quite a lousy job with larger messages
- Stream transport to return a RFC822 formatted message as a stream. Useful if you want to use Nodemailer as a preprocessor and not for actual delivery.
- Sendmail transport built-in, no need for external transport plugin
See Nodemailer.com for full documentation
- Bumped mailcomposer that generates encoded-words differently which might break some tests
- Added new options disableFileAccess and disableUrlAccess
- Fixed envelope handling where cc/bcc fields were ignored in the envelope object
- Removed shrinkwrap file. Seemed to cause more trouble than help
- Fixed outdated shrinkwrap file
- Bumped mailcomposer module to allow using
false
as attachment filename (suppresses filename usage) - Added NTLM authentication support
- Bumped smtp transport modules to get newest smtp-connection that fixes SMTPUTF8 support for internationalized email addresses
- Bumped mailcomposer to have better support for message/822 attachments
- Fixed a bug with attachment filename that contains mixed unicode and dashes
- Added built-in support for proxies by providing a new SMTP option
proxy
that takes a proxy configuration url as its value - Added option
transport
to dynamically load transport plugins - Do not require globally installed grunt-cli
- Fixed a bug in SMTP requireTLS option that was broken
- Removed the need to use
clone
dependency - Added new method
verify
to check SMTP configuration - Direct transport uses STARTTLS by default, fallbacks to plaintext if STARTTLS fails
- Added new message option
list
for setting List-* headers - Add simple proxy support with
getSocket
method - Added new message option
textEncoding
. IftextEncoding
is not set then detect best encoding automatically - Added new message option
icalEvent
to embed iCalendar events. Example here - Added new attachment option
raw
to use prepared MIME contents instead of generating a new one. This might be useful when you want to handcraft some parts of the message yourself, for example if you want to inject a PGP encrypted message as the contents of a MIME node - Added new message option
raw
to use an existing MIME message instead of generating a new one
Republishing 2.1.0-rc.1 as stable. To recap, here's the notable changes between v2.0 and v2.1:
- Implemented templating support. You can either use a simple built-in renderer or some external advanced renderer, eg. node-email-templates. Templating docs.
- Updated smtp-pool to emit 'idle' events in order to handle message queue more effectively
- Updated custom header handling, works everywhere the same now, no differences between adding custom headers to the message or to an attachment
Sneaked in some new features even though it is already rc
- If a SMTP pool is closed while there are still messages in a queue, the message callbacks are invoked with an error
- In case of SMTP pool the transporter emits 'idle' when there is a free connection slot available
- Added method
isIdle()
that checks if a pool has still some free connection slots available
- Bumped dependency versions
- Added support for node-email-templates templating in addition to the built-in renderer
- Implemented simple templating feature
- Allow using prepared header values that are not folded or encoded by Nodemailer
- Use the same header custom structure for message root, attachments and alternatives
- Ensure that Message-Id exists when accessing message
- Allow using array values for custom headers (inserts every value in its own row)
- Released rc.2 as stable
- Locked dependencies
- Updated documentation to reflect changes with SMTP handling
- Use beta versions for smtp/pool/direct transports
- Updated logging
- Use bunyan compatible logger instead of the emit('log') style
- Outsourced some reusable methods to nodemailer-shared
- Support setting direct/smtp/pool with the default configuration
- Stream errors are not silently swallowed
- Do not use format=flowed
- Use nodemailer-fetch to fetch URL streams
- jshint replaced by eslint
Allow connection url based SMTP configurations
Added defaults
argument for createTransport
to predefine commonn values (eg. from
address)
Returns a Promise for sendMail
if callback is not defined
Added priority option (high, normal, low) for setting Importance header
Replaced hyperquest with needle. Fixes issues with compressed data and redirects
Maintenance release. Bumped dependencies to get support for unicode filenames for QQ webmail and to support emoji in filenames
Use mailcomposer instead of built in solution to generate message sources. Bumped libmime gives better quoted-printable handling.
Added new message option watchHtml
to specify Apple Watch specific HTML part of the message. See this post for details
Maintenance release, bumped buildmail version to get fixed format=flowed handling
Maintenance release, bumped dependencies
Maintenance release, upgraded dependencies. Replaced simplesmtp based tests with smtp-server based ones.
Maintenance release, upgrades buildmail and libmime. Allows using functions as transform plugins and fixes issue with unicode filenames in Gmail.
Proper handling of data uris as attachments. Attachment path
property can also be defined as a data uri, not just regular url or file path.
Bumped libmime and mailbuild versions to properly handle filenames with spaces (short ascii only filenames with spaces were left unquoted).
Allow using encoded strings as attachments. Added new property encoding
which defines the encoding used for a content
string. If encoding is set, the content value is converted to a Buffer value using the defined encoding before usage. Useful for including binary attachemnts in JSON formatted email objects.
Return deprecatin error for v0.x style configuration
Bumped nodemailer-direct-transport dependency. Updated version includes a bugfix for Stream nodes handling. Important only if use direct-transport with Streams (not file paths or urls) as attachment content.
Added new method resolveContent()
to get the html/text/attachment content as a String or Buffer.
Bugfix release. HTML node was instered twice if the message consisted of a HTML content (but no text content) + at least one attachment with CID + at least one attachment without CID. In this case the HTML node was inserted both to the root level multipart/mixed section and to the multipart/related sub section
Fixed a bug where Nodemailer crashed if the message content type was multipart/related
Upgraded nodemailer-smtp-transport to 0.1.11. The docs state that for SSL you should use 'secure' option but the underlying smtp-connection module used 'secureConnection' for this purpose. Fixed smpt-connection to match the docs.
Implemented missing #close method that is passed to the underlying transport object. Required by the smtp pool.
Total rewrite. See migration guide here: http://www.andrisreinman.com/nodemailer-v1-0/#migrationguide
- Upgraded aws-sdk to 2.0.5
- Bumped version to v0.7.0
- Fix AWS-SES usage [5b6bc144]
- Replace current SES with new SES using AWS-SDK (Elanorr) [c79d797a]
- Updated README.md about Node Email Templates (niftylettuce) [e52bef81]
- Bumped version to v0.6.5
- Use tildes instead of carets for dependency listing [5296ce41]
- Allow clients to set a custom identityString (venables) [5373287d]
- bugfix (adding "-i" to sendmail command line for each new mail) by copying this.args (vrodic) [05a8a9a3]
- update copyright (gdi2290) [3a6cba3a]
- Bumped version to v0.6.4
- added npmignore, bumped dependencies [21bddcd9]
- Add AOL to well-known services (msouce) [da7dd3b7]
- Bumped version to v0.6.3
- Upgraded simplesmtp dependency [dd367f59]
- Bumped version to v0.6.2
- Added error option to Stub transport [c423acad]
- Use SVG npm badge (t3chnoboy) [677117b7]
- add SendCloud to well known services (haio) [43c358e0]
- High-res build-passing and NPM module badges (sahat) [9fdc37cd]
- Bumped version to v0.6.1
- Do not throw on multiple errors from sendmail command [c6e2cd12]
- Do not require callback for pickup, fixes #238 [93eb3214]
- Added AWSSecurityToken information to README, fixes #235 [58e921d1]
- Added Nodemailer logo [06b7d1a8]
- Bumped version to v0.6.0
- Allow defining custom transport methods [ec5b48ce]
- Return messageId with responseObject for all built in transport methods [74445cec]
- Bumped dependency versions for mailcomposer and readable-stream [9a034c34]
- Changed pickup argument name to 'directory' [01c3ea53]
- Added support for IIS pickup directory with PICKUP transport (philipproplesch) [36940b59..360a2878]
- Applied common styles [9e93a409]
- Updated readme [c78075e7]
- bumped version to v0.5.15
- Updated README, added global options info for setting uo transports [554bb0e5]
- Resolve public hostname, if resolveHostname property for a transport object is set to
true
[9023a6e1..4c66b819]
- bumped version to v0.5.14
- Expose status for direct messages [f0312df6]
- Allow to skip the X-Mailer header if xMailer value is set to 'false' [f2c20a68]
- bumped version to v0.5.13
- Use the name property from the transport object to use for the domain part of message-id values (1598eee9)
- bumped version to v0.5.12
- Expose transport method and transport module version if available [a495106e]
- Added 'he' module instead of using custom html entity decoding [c197d102]
- Added xMailer property for transport configuration object to override X-Mailer value [e8733a61]
- Updated README, added description for 'mail' method [e1f5f3a6]
- bumped version to v0.5.11
- Updated mailcomposer version. Replaces ent with he [6a45b790e]
- bumped version to v0.5.10
- added shorthand function mail() for direct transport type [88129bd7]
- minor tweaks and typo fixes [f797409e..ceac0ca4]
- bumped version to v0.5.9
- Update for 'direct' handling [77b84e2f]
- do not require callback to be provided for 'direct' type [ec51c79f]
- bumped version to v0.5.8
- Added support for 'direct' transport [826f226d..0dbbcbbc]
- bumped version to v0.5.7
- Replace \r\n by \n in Sendmail transport (rolftimmermans) [fed2089e..616ec90c] A lot of sendmail implementations choke on \r\n newlines and require \n This commit addresses this by transforming all \r\n sequences passed to the sendmail command with \n
- bumped version to v0.5.6
- Upgraded mailcomposer dependency to 0.2.4 [e5ff9c40]
- Removed noCR option [e810d1b8]
- Update wellknown.js, added FastMail (k-j-kleist) [cf930f6d]
- bumped version to v0.5.5
- Updated mailcomposer dependnecy version to 0.2.3
- Remove legacy code - node v0.4 is not supported anymore anyway
- Use hostname (autodetected or from the options.name property) for Message-Id instead of "Nodemailer" (helps a bit when messages are identified as spam)
- Added maxMessages info to README
- bumped version to v0.5.4
- added "use strict" statements
- Added DSN info to README
- add support for QQ enterprise email (coderhaoxin)
- Add a Bitdeli Badge to README
- DSN options Passthrought into simplesmtp. (irvinzz)
- bumped version v0.5.3
- Using a stub transport to prevent sendmail from being called during a test. (jsdevel)
- closes #78: sendmail transport does not work correctly on Unix machines. (jsdevel)
- Updated PaaS Support list to include Modulus. (fiveisprime)
- Translate self closing break tags to newline (kosmasgiannis)
- fix typos (aeosynth)
- bumped version v0.5.2
- Merge pull request #177 from MrSwitch/master Fixing Amazon SES, fatal error caused by bad connection