mirror of
https://github.com/dawidd6/action-send-mail.git
synced 2025-09-15 17:24:09 +07:00
node_modules: update
This commit is contained in:
51
node_modules/nodemailer/lib/mime-node/index.js
generated
vendored
51
node_modules/nodemailer/lib/mime-node/index.js
generated
vendored
@ -16,6 +16,9 @@ const addressparser = require('../addressparser');
|
||||
const fetch = require('../fetch');
|
||||
const LastNewline = require('./last-newline');
|
||||
|
||||
const LeWindows = require('./le-windows');
|
||||
const LeUnix = require('./le-unix');
|
||||
|
||||
/**
|
||||
* Creates a new mime tree node. Assumes 'multipart/*' as the content type
|
||||
* if it is a branch, anything else counts as leaf. If rootNode is missing from
|
||||
@ -92,6 +95,11 @@ class MimeNode {
|
||||
*/
|
||||
this.hostname = options.hostname;
|
||||
|
||||
/**
|
||||
* If set to 'win' then uses \r\n, if 'linux' then \n. If not set (or `raw` is used) then newlines are kept as is.
|
||||
*/
|
||||
this.newline = options.newline;
|
||||
|
||||
/**
|
||||
* An array for possible child nodes
|
||||
*/
|
||||
@ -626,6 +634,15 @@ class MimeNode {
|
||||
outputStream = transform(outputStream);
|
||||
}
|
||||
|
||||
if (this.newline) {
|
||||
const winbreak = ['win', 'windows', 'dos', '\r\n'].includes(this.newline.toString().toLowerCase());
|
||||
const newlineTransform = winbreak ? new LeWindows() : new LeUnix();
|
||||
|
||||
const stream = outputStream.pipe(newlineTransform);
|
||||
outputStream.on('error', err => stream.emit('error', err));
|
||||
return stream;
|
||||
}
|
||||
|
||||
return outputStream;
|
||||
}
|
||||
|
||||
@ -1130,9 +1147,9 @@ class MimeNode {
|
||||
address.address = this._normalizeAddress(address.address);
|
||||
|
||||
if (!address.name) {
|
||||
values.push(address.address);
|
||||
values.push(address.address.indexOf(' ') >= 0 ? `<${address.address}>` : `${address.address}`);
|
||||
} else if (address.name) {
|
||||
values.push(this._encodeAddressName(address.name) + ' <' + address.address + '>');
|
||||
values.push(`${this._encodeAddressName(address.name)} <${address.address}>`);
|
||||
}
|
||||
|
||||
if (address.address) {
|
||||
@ -1141,9 +1158,8 @@ class MimeNode {
|
||||
}
|
||||
}
|
||||
} else if (address.group) {
|
||||
values.push(
|
||||
this._encodeAddressName(address.name) + ':' + (address.group.length ? this._convertAddresses(address.group, uniqueList) : '').trim() + ';'
|
||||
);
|
||||
let groupListAddresses = (address.group.length ? this._convertAddresses(address.group, uniqueList) : '').trim();
|
||||
values.push(`${this._encodeAddressName(address.name)}:${groupListAddresses};`);
|
||||
}
|
||||
});
|
||||
|
||||
@ -1157,13 +1173,17 @@ class MimeNode {
|
||||
* @return {String} address string
|
||||
*/
|
||||
_normalizeAddress(address) {
|
||||
address = (address || '').toString().trim();
|
||||
address = (address || '')
|
||||
.toString()
|
||||
.replace(/[\x00-\x1F<>]+/g, ' ') // remove unallowed characters
|
||||
.trim();
|
||||
|
||||
let lastAt = address.lastIndexOf('@');
|
||||
if (lastAt < 0) {
|
||||
// Bare username
|
||||
return address;
|
||||
}
|
||||
|
||||
let user = address.substr(0, lastAt);
|
||||
let domain = address.substr(lastAt + 1);
|
||||
|
||||
@ -1172,7 +1192,24 @@ class MimeNode {
|
||||
// 'jõgeva.ee' will be converted to 'xn--jgeva-dua.ee'
|
||||
// non-unicode domains are left as is
|
||||
|
||||
return user + '@' + punycode.toASCII(domain.toLowerCase());
|
||||
let encodedDomain;
|
||||
|
||||
try {
|
||||
encodedDomain = punycode.toASCII(domain.toLowerCase());
|
||||
} catch (err) {
|
||||
// keep as is?
|
||||
}
|
||||
|
||||
if (user.indexOf(' ') >= 0) {
|
||||
if (user.charAt(0) !== '"') {
|
||||
user = '"' + user;
|
||||
}
|
||||
if (user.substr(-1) !== '"') {
|
||||
user = user + '"';
|
||||
}
|
||||
}
|
||||
|
||||
return `${user}@${encodedDomain}`;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user