# CHANGELOG ## v4.0.1 2017-04-13 - Fixed issue with LMTP and STARTTLS ## v4.0.0 2017-04-06 - License changed from EUPLv1.1 to MIT ## v3.1.8 2017-03-21 - Fixed invalid List-* header generation ## v3.1.7 2017-03-14 - Emit an error if STARTTLS ends with connection being closed ## v3.1.6 2017-03-14 - Expose last server response for smtpConnection ## v3.1.5 2017-03-08 - Fixed SES transport, added missing `response` value ## v3.1.4 2017-02-26 - 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 ## v3.1.3 2017-02-17 - Fixed missing `transport.verify()` methods for SES transport ## v3.1.2 2017-02-17 - 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 ## v3.1.1 2017-02-13 - Fixed missing `transport.on('idle')` and `transport.isIdle()` methods for SES transports ## v3.1.0 2017-02-13 - Added built-in transport for AWS SES. [Docs](http://localhost:1313/transports/ses/) - Updated stream transport to allow building JSON strings. [Docs](http://localhost:1313/transports/stream/#json-transport) - Added new method _mail.resolveAll_ that fetches all attachments and such to be able to more easily build API-based transports ## v3.0.2 2017-02-04 - Fixed a bug with OAuth2 login where error callback was fired twice if getToken was not available. ## v3.0.1 2017-02-03 - Fixed a bug where Nodemailer threw an exception if `disableFileAccess` option was used - Added FLOSS [exception declaration](FLOSS_EXCEPTIONS.md) ## v3.0.0 2017-01-31 - 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 <andris@kreata.ee> 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](https://nodemailer.com/smtp/oauth2/). 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](https://nodemailer.com/message/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](https://nodemailer.com/) for full documentation ## 2.7.0 2016-12-08 - Bumped mailcomposer that generates encoded-words differently which might break some tests ## 2.6.0 2016-09-05 - Added new options disableFileAccess and disableUrlAccess - Fixed envelope handling where cc/bcc fields were ignored in the envelope object ## 2.4.2 2016-05-25 - Removed shrinkwrap file. Seemed to cause more trouble than help ## 2.4.1 2016-05-12 - Fixed outdated shrinkwrap file ## 2.4.0 2016-05-11 - Bumped mailcomposer module to allow using `false` as attachment filename (suppresses filename usage) - Added NTLM authentication support ## 2.3.2 2016-04-11 - Bumped smtp transport modules to get newest smtp-connection that fixes SMTPUTF8 support for internationalized email addresses ## 2.3.1 2016-04-08 - Bumped mailcomposer to have better support for message/822 attachments ## 2.3.0 2016-03-03 - 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 ## 2.2.1 2016-02-20 - Fixed a bug in SMTP requireTLS option that was broken ## 2.2.0 2016-02-18 - 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`. If `textEncoding` is not set then detect best encoding automatically - Added new message option `icalEvent` to embed iCalendar events. Example [here](examples/ical-event.js) - 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 ## 2.1.0 2016-02-01 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](https://github.com/niftylettuce/node-email-templates). Templating [docs](http://nodemailer.com/2-0-0-beta/templating/). - 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 ## 2.1.0-rc.1 2016-01-25 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 ## 2.1.0-rc.0 2016-01-20 - Bumped dependency versions ## 2.1.0-beta.3 2016-01-20 - Added support for node-email-templates templating in addition to the built-in renderer ## 2.1.0-beta.2 2016-01-20 - Implemented simple templating feature ## 2.1.0-beta.1 2016-01-20 - Allow using prepared header values that are not folded or encoded by Nodemailer ## 2.1.0-beta.0 2016-01-20 - 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) ## 2.0.0 2016-01-11 - Released rc.2 as stable ## 2.0.0-rc.2 2016-01-04 - Locked dependencies ## 2.0.0-beta.2 2016-01-04 - Updated documentation to reflect changes with SMTP handling - Use beta versions for smtp/pool/direct transports - Updated logging ## 2.0.0-beta.1 2016-01-03 - 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 ## 2.0.0-beta.0 2015-12-31 - Stream errors are not silently swallowed - Do not use format=flowed - Use nodemailer-fetch to fetch URL streams - jshint replaced by eslint ## v1.11.0 2015-12-28 Allow connection url based SMTP configurations ## v1.10.0 2015-11-13 Added `defaults` argument for `createTransport` to predefine commonn values (eg. `from` address) ## v1.9.0 2015-11-09 Returns a Promise for `sendMail` if callback is not defined ## v1.8.0 2015-10-08 Added priority option (high, normal, low) for setting Importance header ## v1.7.0 2015-10-06 Replaced hyperquest with needle. Fixes issues with compressed data and redirects ## v1.6.0 2015-10-05 Maintenance release. Bumped dependencies to get support for unicode filenames for QQ webmail and to support emoji in filenames ## v1.5.0 2015-09-24 Use mailcomposer instead of built in solution to generate message sources. Bumped libmime gives better quoted-printable handling. ## v1.4.0 2015-06-27 Added new message option `watchHtml` to specify Apple Watch specific HTML part of the message. See [this post](https://litmus.com/blog/how-to-send-hidden-version-email-apple-watch) for details ## v1.3.4 2015-04-25 Maintenance release, bumped buildmail version to get fixed format=flowed handling ## v1.3.3 2015-04-25 Maintenance release, bumped dependencies ## v1.3.2 2015-03-09 Maintenance release, upgraded dependencies. Replaced simplesmtp based tests with smtp-server based ones. ## v1.3.0 2014-09-12 Maintenance release, upgrades buildmail and libmime. Allows using functions as transform plugins and fixes issue with unicode filenames in Gmail. ## v1.2.2 2014-09-05 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. ## v1.2.1 2014-08-21 Bumped libmime and mailbuild versions to properly handle filenames with spaces (short ascii only filenames with spaces were left unquoted). ## v1.2.0 2014-08-18 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. ## v1.1.2 2014-08-18 Return deprecatin error for v0.x style configuration ## v1.1.1 2014-07-30 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. ## v1.1.0 2014-07-29 Added new method `resolveContent()` to get the html/text/attachment content as a String or Buffer. ## v1.0.4 2014-07-23 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 ## v1.0.3 2014-07-16 Fixed a bug where Nodemailer crashed if the message content type was multipart/related ## v1.0.2 2014-07-16 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. ## v1.0.1 2014-07-15 Implemented missing #close method that is passed to the underlying transport object. Required by the smtp pool. ## v1.0.0 2014-07-15 Total rewrite. See migration guide here: <http://www.andrisreinman.com/nodemailer-v1-0/#migrationguide> ## v0.7.1 2014-07-09 - Upgraded aws-sdk to 2.0.5 ## v0.7.0 2014-06-17 - 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] ## v0.6.5 2014-05-15 - 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] ## v0.6.4 2014-05-13 - Bumped version to v0.6.4 - added npmignore, bumped dependencies [21bddcd9] - Add AOL to well-known services (msouce) [da7dd3b7] ## v0.6.3 2014-04-16 - Bumped version to v0.6.3 - Upgraded simplesmtp dependency [dd367f59] ## v0.6.2 2014-04-09 - 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] ## v0.6.1 2014-01-26 - 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] ## v0.6.0 2013-12-30 - 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] ## v0.5.15 2013-12-13 - 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] ## v0.5.14 2013-12-05 - 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] ## v0.5.13 2013-12-03 - 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) ## v0.5.12 2013-12-02 - 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] ## v0.5.11 2013-11-28 - bumped version to v0.5.11 - Updated mailcomposer version. Replaces ent with he [6a45b790e] ## v0.5.10 2013-11-26 - bumped version to v0.5.10 - added shorthand function mail() for direct transport type [88129bd7] - minor tweaks and typo fixes [f797409e..ceac0ca4] ## v0.5.9 2013-11-25 - bumped version to v0.5.9 - Update for 'direct' handling [77b84e2f] - do not require callback to be provided for 'direct' type [ec51c79f] ## v0.5.8 2013-11-22 - bumped version to v0.5.8 - Added support for 'direct' transport [826f226d..0dbbcbbc] ## v0.5.7 2013-11-18 - 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 ## v0.5.6 2013-11-15 - 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] ## v0.5.5 2013-10-30 - 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 ## v0.5.4 2013-10-29 - 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) ## v0.5.3 2013-10-03 - 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) ## v0.5.2 2013-07-25 - bumped version v0.5.2 - Merge pull request #177 from MrSwitch/master Fixing Amazon SES, fatal error caused by bad connection