diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index 81a3415f..3ec5c39c 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -112,9 +112,9 @@ } }, "node_modules/nodemailer": { - "version": "6.4.17", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.4.17.tgz", - "integrity": "sha512-89ps+SBGpo0D4Bi5ZrxcrCiRFaMmkCt+gItMXQGzEtZVR3uAD3QAQIDoxTWnx3ky0Dwwy/dhFrQ+6NNGXpw/qQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.5.0.tgz", + "integrity": "sha512-Tm4RPrrIZbnqDKAvX+/4M+zovEReiKlEXWDzG4iwtpL9X34MJY+D5LnQPH/+eghe8DLlAVshHAJZAZWBGhkguw==", "engines": { "node": ">=6.0.0" } diff --git a/node_modules/nodemailer/CHANGELOG.md b/node_modules/nodemailer/CHANGELOG.md index b303782b..71491aa5 100644 --- a/node_modules/nodemailer/CHANGELOG.md +++ b/node_modules/nodemailer/CHANGELOG.md @@ -1,5 +1,15 @@ # CHANGELOG +## 6.5.0 2021-02-26 + +- Pass through textEncoding to subnodes +- Added support for AWS SES v3 SDK +- Fixed tests + +## 6.4.18 2021-02-11 + +- Updated README + ## 6.4.17 2020-12-11 - Allow mixing attachments with caendar alternatives diff --git a/node_modules/nodemailer/README.md b/node_modules/nodemailer/README.md index db6047fa..a34c6412 100644 --- a/node_modules/nodemailer/README.md +++ b/node_modules/nodemailer/README.md @@ -2,6 +2,8 @@ [![Nodemailer](https://raw.githubusercontent.com/nodemailer/nodemailer/master/assets/nm_logo_200x136.png)](https://nodemailer.com/about/) +> Sponsored by [Forward Email](https://forwardemail.net/?ref=nodemailer) – free email forwarding + custom domains + 100% open-source! + Send e-mails from Node.js – easy as cake! 🍰✉️ [![NPM](https://nodei.co/npm/nodemailer.png?downloads=true&downloadRank=true&stars=true)](https://nodemailer.com/about/) diff --git a/node_modules/nodemailer/lib/mail-composer/index.js b/node_modules/nodemailer/lib/mail-composer/index.js index e47c40c2..5c7d4353 100644 --- a/node_modules/nodemailer/lib/mail-composer/index.js +++ b/node_modules/nodemailer/lib/mail-composer/index.js @@ -475,6 +475,7 @@ class MailComposer { } else { node = parentNode.createChild(element.contentType, { filename: element.filename, + textEncoding: this.mail.textEncoding, disableUrlAccess: this.mail.disableUrlAccess, disableFileAccess: this.mail.disableFileAccess, normalizeHeaderKey: this.mail.normalizeHeaderKey diff --git a/node_modules/nodemailer/lib/mime-node/index.js b/node_modules/nodemailer/lib/mime-node/index.js index f5af4746..f7e40721 100644 --- a/node_modules/nodemailer/lib/mime-node/index.js +++ b/node_modules/nodemailer/lib/mime-node/index.js @@ -451,7 +451,7 @@ class MimeNode { transferEncoding = this._getTextEncoding(this.content) === 'Q' ? 'quoted-printable' : 'base64'; } else { // we can not check content for a stream, so either use preferred encoding or fallback to QP - transferEncoding = this.transferEncoding === 'B' ? 'base64' : 'quoted-printable'; + transferEncoding = this.textEncoding === 'B' ? 'base64' : 'quoted-printable'; } } else if (!/^(multipart|message)\//i.test(contentType)) { transferEncoding = transferEncoding || 'base64'; diff --git a/node_modules/nodemailer/lib/ses-transport/index.js b/node_modules/nodemailer/lib/ses-transport/index.js index 21efe3c0..6c26c38d 100644 --- a/node_modules/nodemailer/lib/ses-transport/index.js +++ b/node_modules/nodemailer/lib/ses-transport/index.js @@ -239,36 +239,64 @@ class SESTransport extends EventEmitter { sesMessage[key] = mail.data.ses[key]; }); - this.ses.sendRawEmail(sesMessage, (err, data) => { - if (err) { - this.logger.error( - { - err, - tnx: 'send' - }, - 'Send error for %s: %s', - messageId, - err.message - ); - statObject.pending = false; - return callback(err); + let ses = (this.ses.aws ? this.ses.ses : this.ses) || {}; + let aws = this.ses.aws || {}; + + let getRegion = cb => { + if (ses.config && typeof ses.config.region === 'function') { + // promise + return ses.config + .region() + .then(region => cb(null, region)) + .catch(err => cb(err)); + } + return cb(null, (ses.config && ses.config.region) || 'us-east-1'); + }; + + getRegion((err, region) => { + if (err || !region) { + region = 'us-east-1'; } - let region = (this.ses.config && this.ses.config.region) || 'us-east-1'; - if (region === 'us-east-1') { - region = 'email'; + let sendPromise; + if (typeof ses.send === 'function' && aws.SendRawEmailCommand) { + // v3 API + sendPromise = ses.send(new aws.SendRawEmailCommand(sesMessage)); + } else { + // v2 API + sendPromise = ses.sendRawEmail(sesMessage).promise(); } - statObject.pending = false; - callback(null, { - envelope: { - from: envelope.from, - to: envelope.to - }, - messageId: '<' + data.MessageId + (!/@/.test(data.MessageId) ? '@' + region + '.amazonses.com' : '') + '>', - response: data.MessageId, - raw - }); + sendPromise + .then(data => { + if (region === 'us-east-1') { + region = 'email'; + } + + statObject.pending = false; + callback(null, { + envelope: { + from: envelope.from, + to: envelope.to + }, + messageId: '<' + data.MessageId + (!/@/.test(data.MessageId) ? '@' + region + '.amazonses.com' : '') + '>', + response: data.MessageId, + raw + }); + }) + .catch(err => { + this.logger.error( + { + err, + tnx: 'send' + }, + 'Send error for %s: %s', + messageId, + err.message + ); + statObject.pending = false; + callback(err); + }); }); }) ); diff --git a/node_modules/nodemailer/lib/well-known/services.json b/node_modules/nodemailer/lib/well-known/services.json index 93423676..a6ebdec8 100644 --- a/node_modules/nodemailer/lib/well-known/services.json +++ b/node_modules/nodemailer/lib/well-known/services.json @@ -148,6 +148,12 @@ "secure": false }, + "OhMySMTP": { + "host": "smtp.ohmysmtp.com", + "port": 587, + "secure": false + }, + "Postmark": { "aliases": ["PostmarkApp"], "host": "smtp.postmarkapp.com", diff --git a/node_modules/nodemailer/package.json b/node_modules/nodemailer/package.json index d5a69bed..e809588a 100644 --- a/node_modules/nodemailer/package.json +++ b/node_modules/nodemailer/package.json @@ -1,6 +1,6 @@ { "name": "nodemailer", - "version": "6.4.17", + "version": "6.5.0", "description": "Easy as cake e-mail sending from your Node.js applications", "main": "lib/nodemailer.js", "scripts": { @@ -20,10 +20,10 @@ }, "homepage": "https://nodemailer.com/", "devDependencies": { - "bunyan": "1.8.14", - "chai": "4.2.0", + "bunyan": "1.8.15", + "chai": "4.3.0", "eslint-config-nodemailer": "1.2.0", - "eslint-config-prettier": "7.0.0", + "eslint-config-prettier": "8.1.0", "grunt": "1.3.0", "grunt-cli": "1.3.2", "grunt-eslint": "23.0.0", @@ -31,15 +31,14 @@ "libbase64": "1.2.1", "libmime": "5.0.0", "libqp": "1.1.0", - "mocha": "8.2.1", + "mocha": "8.3.0", "nodemailer-ntlm-auth": "1.0.1", "proxy": "1.0.2", "proxy-test-server": "1.0.0", - "sinon": "9.2.1", + "sinon": "9.2.4", "smtp-server": "3.8.0" }, "engines": { "node": ">=6.0.0" - }, - "dependencies": {} + } } diff --git a/package-lock.json b/package-lock.json index 7d6922f1..f843425d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -121,9 +121,9 @@ } }, "node_modules/nodemailer": { - "version": "6.4.17", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.4.17.tgz", - "integrity": "sha512-89ps+SBGpo0D4Bi5ZrxcrCiRFaMmkCt+gItMXQGzEtZVR3uAD3QAQIDoxTWnx3ky0Dwwy/dhFrQ+6NNGXpw/qQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.5.0.tgz", + "integrity": "sha512-Tm4RPrrIZbnqDKAvX+/4M+zovEReiKlEXWDzG4iwtpL9X34MJY+D5LnQPH/+eghe8DLlAVshHAJZAZWBGhkguw==", "engines": { "node": ">=6.0.0" } @@ -358,9 +358,9 @@ } }, "nodemailer": { - "version": "6.4.17", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.4.17.tgz", - "integrity": "sha512-89ps+SBGpo0D4Bi5ZrxcrCiRFaMmkCt+gItMXQGzEtZVR3uAD3QAQIDoxTWnx3ky0Dwwy/dhFrQ+6NNGXpw/qQ==" + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.5.0.tgz", + "integrity": "sha512-Tm4RPrrIZbnqDKAvX+/4M+zovEReiKlEXWDzG4iwtpL9X34MJY+D5LnQPH/+eghe8DLlAVshHAJZAZWBGhkguw==" }, "p-limit": { "version": "2.3.0",