diff --git a/rollup/email.mjs b/email.js similarity index 99% rename from rollup/email.mjs rename to email.js index 3d661e6..4b66b24 100644 --- a/rollup/email.mjs +++ b/email.js @@ -276,7 +276,7 @@ const RANGES = [ [0x0a], [0x0d], [0x20, 0x3c], - [0x3e, 0x7e], + [0x3e, 0x7e], // >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} ]; const LOOKUP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); const MAX_CHUNK_LENGTH = 16383; // must be multiple of 3 @@ -883,7 +883,8 @@ class MessageStream extends Stream { const outputData = (attachment, callback) => { var _a, _b; outputBase64(attachment.encoded - ? (_a = attachment.data) !== null && _a !== void 0 ? _a : '' : Buffer.from((_b = attachment.data) !== null && _b !== void 0 ? _b : '').toString('base64'), callback); + ? (_a = attachment.data) !== null && _a !== void 0 ? _a : '' + : Buffer.from((_b = attachment.data) !== null && _b !== void 0 ? _b : '').toString('base64'), callback); }; /** * @param {Message} message the message to output @@ -1852,8 +1853,9 @@ class SMTPClient { } /** * @public - * @param {Message} msg the message to send - * @param {MessageCallback} callback . + * @template {Message | MessageHeaders} T + * @param {T} msg the message to send + * @param {MessageCallback} callback receiver for the error (if any) as well as the passed-in message / headers * @returns {void} */ send(msg, callback) { @@ -1881,8 +1883,9 @@ class SMTPClient { } /** * @public - * @param {Message} msg the message to send - * @returns {Promise} a promise that resolves to the fully processed message + * @template {Message | MessageHeaders} T + * @param {T} msg the message to send + * @returns {Promise} a promise that resolves to the passed-in message / headers */ sendAsync(msg) { return new Promise((resolve, reject) => { @@ -2119,4 +2122,4 @@ class SMTPClient { } export { AUTH_METHODS, BUFFERSIZE, DEFAULT_TIMEOUT, MIME64CHUNK, MIMECHUNK, Message, SMTPClient, SMTPConnection, SMTPError, SMTPErrorStates, SMTPResponseMonitor, SMTPState, addressparser, getRFC2822Date, getRFC2822DateUTC, isRFC2822Date, mimeEncode, mimeWordEncode }; -//# sourceMappingURL=email.mjs.map +//# sourceMappingURL=email.js.map diff --git a/email.js.map b/email.js.map new file mode 100644 index 0000000..be58e71 --- /dev/null +++ b/email.js.map @@ -0,0 +1 @@ +{"version":3,"file":"email.js","sources":["smtp/address.ts","smtp/date.ts","smtp/mime.ts","smtp/message.ts","smtp/error.ts","smtp/response.ts","smtp/connection.ts","smtp/client.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["CRLF","readFile","closeFileSync","closeFile","openFile","close"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index aa3aed9..ff43d71 100644 --- a/package.json +++ b/package.json @@ -50,15 +50,13 @@ "node": ">=12" }, "files": [ + "email.js", "email.ts", - "smtp", - "rollup" + "smtp" ], - "main": "./rollup/email.cjs", "types": "./email.ts", "exports": { - "import": "./rollup/email.mjs", - "require": "./rollup/email.cjs" + "default": "./email.js" }, "scripts": { "build": "rollup -c rollup.config.ts", diff --git a/rollup.config.ts b/rollup.config.ts index 45f92fc..d4bb0d8 100644 --- a/rollup.config.ts +++ b/rollup.config.ts @@ -3,18 +3,11 @@ import typescript from '@rollup/plugin-typescript'; export default { input: 'email.ts', - output: [ - { - file: 'rollup/email.cjs', - format: 'cjs', - sourcemap: true, - }, - { - file: 'rollup/email.mjs', - format: 'es', - sourcemap: true, - }, - ], + output: { + file: 'email.js', + format: 'es', + sourcemap: true, + }, external: builtinModules, plugins: [ typescript({ removeComments: false, include: ['email.ts', 'smtp/*'] }), diff --git a/rollup/email.cjs b/rollup/email.cjs deleted file mode 100644 index 77ec614..0000000 --- a/rollup/email.cjs +++ /dev/null @@ -1,2143 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { value: true }); - -var fs = require('fs'); -var os = require('os'); -var stream = require('stream'); -var util = require('util'); -var crypto = require('crypto'); -var events = require('events'); -var net = require('net'); -var tls = require('tls'); - -/* - * Operator tokens and which tokens are expected to end the sequence - */ -const OPERATORS = new Map([ - ['"', '"'], - ['(', ')'], - ['<', '>'], - [',', ''], - // Groups are ended by semicolons - [':', ';'], - // Semicolons are not a legal delimiter per the RFC2822 grammar other - // than for terminating a group, but they are also not valid for any - // other use in this context. Given that some mail clients have - // historically allowed the semicolon as a delimiter equivalent to the - // comma in their UI, it makes sense to treat them the same as a comma - // when used outside of a group. - [';', ''], -]); -/** - * Tokenizes the original input string - * - * @param {string | string[] | undefined} address string(s) to tokenize - * @return {AddressToken[]} An array of operator|text tokens - */ -function tokenizeAddress(address = '') { - var _a, _b; - const tokens = []; - let token = undefined; - let operator = undefined; - for (const character of address.toString()) { - if (((_a = operator === null || operator === void 0 ? void 0 : operator.length) !== null && _a !== void 0 ? _a : 0) > 0 && character === operator) { - tokens.push({ type: 'operator', value: character }); - token = undefined; - operator = undefined; - } - else if (((_b = operator === null || operator === void 0 ? void 0 : operator.length) !== null && _b !== void 0 ? _b : 0) === 0 && OPERATORS.has(character)) { - tokens.push({ type: 'operator', value: character }); - token = undefined; - operator = OPERATORS.get(character); - } - else { - if (token == null) { - token = { type: 'text', value: character }; - tokens.push(token); - } - else { - token.value += character; - } - } - } - return tokens - .map((x) => { - x.value = x.value.trim(); - return x; - }) - .filter((x) => x.value.length > 0); -} -/** - * Converts tokens for a single address into an address object - * - * @param {AddressToken[]} tokens Tokens object - * @return {AddressObject[]} addresses object array - */ -function convertAddressTokens(tokens) { - const addressObjects = []; - const groups = []; - let addresses = []; - let comments = []; - let texts = []; - let state = 'text'; - let isGroup = false; - function handleToken(token) { - if (token.type === 'operator') { - switch (token.value) { - case '<': - state = 'address'; - break; - case '(': - state = 'comment'; - break; - case ':': - state = 'group'; - isGroup = true; - break; - default: - state = 'text'; - break; - } - } - else if (token.value.length > 0) { - switch (state) { - case 'address': - addresses.push(token.value); - break; - case 'comment': - comments.push(token.value); - break; - case 'group': - groups.push(token.value); - break; - default: - texts.push(token.value); - break; - } - } - } - // Filter out , (comments) and regular text - for (const token of tokens) { - handleToken(token); - } - // If there is no text but a comment, replace the two - if (texts.length === 0 && comments.length > 0) { - texts = [...comments]; - comments = []; - } - // http://tools.ietf.org/html/rfc2822#appendix-A.1.3 - if (isGroup) { - addressObjects.push({ - name: texts.length === 0 ? undefined : texts.join(' '), - group: groups.length > 0 ? addressparser(groups.join(',')) : [], - }); - } - else { - // If no address was found, try to detect one from regular text - if (addresses.length === 0 && texts.length > 0) { - for (let i = texts.length - 1; i >= 0; i--) { - if (texts[i].match(/^[^@\s]+@[^@\s]+$/)) { - addresses = texts.splice(i, 1); - break; - } - } - // still no address - if (addresses.length === 0) { - for (let i = texts.length - 1; i >= 0; i--) { - texts[i] = texts[i] - .replace(/\s*\b[^@\s]+@[^@\s]+\b\s*/, (address) => { - if (addresses.length === 0) { - addresses = [address.trim()]; - return ' '; - } - else { - return address; - } - }) - .trim(); - if (addresses.length > 0) { - break; - } - } - } - } - // If there's still is no text but a comment exixts, replace the two - if (texts.length === 0 && comments.length > 0) { - texts = [...comments]; - comments = []; - } - // Keep only the first address occurence, push others to regular text - if (addresses.length > 1) { - texts = [...texts, ...addresses.splice(1)]; - } - if (addresses.length === 0 && isGroup) { - return []; - } - else { - // Join values with spaces - let address = addresses.join(' '); - let name = texts.length === 0 ? address : texts.join(' '); - if (address === name) { - if (address.match(/@/)) { - name = ''; - } - else { - address = ''; - } - } - addressObjects.push({ address, name }); - } - } - return addressObjects; -} -/** - * Parses structured e-mail addresses from an address field - * - * Example: - * - * "Name " - * - * will be converted to - * - * [{name: "Name", address: "address@domain"}] - * - * @param {string | string[] | undefined} address Address field - * @return {AddressObject[]} An array of address objects - */ -function addressparser(address) { - const addresses = []; - let tokens = []; - for (const token of tokenizeAddress(address)) { - if (token.type === 'operator' && - (token.value === ',' || token.value === ';')) { - if (tokens.length > 0) { - addresses.push(...convertAddressTokens(tokens)); - } - tokens = []; - } - else { - tokens.push(token); - } - } - if (tokens.length > 0) { - addresses.push(...convertAddressTokens(tokens)); - } - return addresses; -} - -/** - * @param {Date} [date] an optional date to convert to RFC2822 format - * @param {boolean} [useUtc] whether to parse the date as UTC (default: false) - * @returns {string} the converted date - */ -function getRFC2822Date(date = new Date(), useUtc = false) { - if (useUtc) { - return getRFC2822DateUTC(date); - } - const dates = date - .toString() - .replace('GMT', '') - .replace(/\s\(.*\)$/, '') - .split(' '); - dates[0] = dates[0] + ','; - const day = dates[1]; - dates[1] = dates[2]; - dates[2] = day; - return dates.join(' '); -} -/** - * @param {Date} [date] an optional date to convert to RFC2822 format (UTC) - * @returns {string} the converted date - */ -function getRFC2822DateUTC(date = new Date()) { - const dates = date.toUTCString().split(' '); - dates.pop(); // remove timezone - dates.push('+0000'); - return dates.join(' '); -} -/** - * RFC 2822 regex - * @see https://tools.ietf.org/html/rfc2822#section-3.3 - * @see https://github.com/moment/moment/blob/a831fc7e2694281ce31e4f090bbcf90a690f0277/src/lib/create/from-string.js#L101 - */ -const rfc2822re = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/; -/** - * @param {string} [date] a string to check for conformance to the [rfc2822](https://tools.ietf.org/html/rfc2822#section-3.3) standard - * @returns {boolean} the result of the conformance check - */ -function isRFC2822Date(date) { - return rfc2822re.test(date); -} - -// adapted from https://github.com/emailjs/emailjs-mime-codec/blob/6909c706b9f09bc0e5c3faf48f723cca53e5b352/src/mimecodec.js -const encoder = new util.TextEncoder(); -/** - * @see https://tools.ietf.org/html/rfc2045#section-6.7 - */ -const RANGES = [ - [0x09], - [0x0a], - [0x0d], - [0x20, 0x3c], - [0x3e, 0x7e], -]; -const LOOKUP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); -const MAX_CHUNK_LENGTH = 16383; // must be multiple of 3 -const MAX_MIME_WORD_LENGTH = 52; -const MAX_B64_MIME_WORD_BYTE_LENGTH = 39; -function tripletToBase64(num) { - return (LOOKUP[(num >> 18) & 0x3f] + - LOOKUP[(num >> 12) & 0x3f] + - LOOKUP[(num >> 6) & 0x3f] + - LOOKUP[num & 0x3f]); -} -function encodeChunk(uint8, start, end) { - let output = ''; - for (let i = start; i < end; i += 3) { - output += tripletToBase64((uint8[i] << 16) + (uint8[i + 1] << 8) + uint8[i + 2]); - } - return output; -} -function encodeBase64(data) { - const len = data.length; - const extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes - let output = ''; - // go through the array every three bytes, we'll deal with trailing stuff later - for (let i = 0, len2 = len - extraBytes; i < len2; i += MAX_CHUNK_LENGTH) { - output += encodeChunk(data, i, i + MAX_CHUNK_LENGTH > len2 ? len2 : i + MAX_CHUNK_LENGTH); - } - // pad the end with zeros, but make sure to not forget the extra bytes - if (extraBytes === 1) { - const tmp = data[len - 1]; - output += LOOKUP[tmp >> 2]; - output += LOOKUP[(tmp << 4) & 0x3f]; - output += '=='; - } - else if (extraBytes === 2) { - const tmp = (data[len - 2] << 8) + data[len - 1]; - output += LOOKUP[tmp >> 10]; - output += LOOKUP[(tmp >> 4) & 0x3f]; - output += LOOKUP[(tmp << 2) & 0x3f]; - output += '='; - } - return output; -} -/** - * Splits a mime encoded string. Needed for dividing mime words into smaller chunks - * - * @param {string} str Mime encoded string to be split up - * @param {number} maxlen Maximum length of characters for one part (minimum 12) - * @return {string[]} lines - */ -function splitMimeEncodedString(str, maxlen = 12) { - const minWordLength = 12; // require at least 12 symbols to fit possible 4 octet UTF-8 sequences - const maxWordLength = Math.max(maxlen, minWordLength); - const lines = []; - while (str.length) { - let curLine = str.substr(0, maxWordLength); - const match = curLine.match(/=[0-9A-F]?$/i); // skip incomplete escaped char - if (match) { - curLine = curLine.substr(0, match.index); - } - let done = false; - while (!done) { - let chr; - done = true; - const match = str.substr(curLine.length).match(/^=([0-9A-F]{2})/i); // check if not middle of a unicode char sequence - if (match) { - chr = parseInt(match[1], 16); - // invalid sequence, move one char back anc recheck - if (chr < 0xc2 && chr > 0x7f) { - curLine = curLine.substr(0, curLine.length - 3); - done = false; - } - } - } - if (curLine.length) { - lines.push(curLine); - } - str = str.substr(curLine.length); - } - return lines; -} -/** - * - * @param {number} nr number - * @returns {boolean} if number is in range - */ -function checkRanges(nr) { - return RANGES.reduce((val, range) => val || - (range.length === 1 && nr === range[0]) || - (range.length === 2 && nr >= range[0] && nr <= range[1]), false); -} -/** - * Encodes all non printable and non ascii bytes to =XX form, where XX is the - * byte value in hex. This function does not convert linebreaks etc. it - * only escapes character sequences - * - * NOTE: Encoding support depends on util.TextDecoder, which is severely limited - * prior to Node.js 13. - * - * @see https://nodejs.org/api/util.html#util_whatwg_supported_encodings - * @see https://github.com/nodejs/node/issues/19214 - * - * @param {string|Uint8Array} data Either a string or an Uint8Array - * @param {string} encoding WHATWG supported encoding - * @return {string} Mime encoded string - */ -function mimeEncode(data = '', encoding = 'utf-8') { - const decoder = new util.TextDecoder(encoding); - const buffer = typeof data === 'string' - ? encoder.encode(data) - : encoder.encode(decoder.decode(data)); - return buffer.reduce((aggregate, ord, index) => checkRanges(ord) && - !((ord === 0x20 || ord === 0x09) && - (index === buffer.length - 1 || - buffer[index + 1] === 0x0a || - buffer[index + 1] === 0x0d)) - ? // if the char is in allowed range, then keep as is, unless it is a ws in the end of a line - aggregate + String.fromCharCode(ord) - : `${aggregate}=${ord < 0x10 ? '0' : ''}${ord - .toString(16) - .toUpperCase()}`, ''); -} -/** - * Encodes a string or an Uint8Array to an UTF-8 MIME Word - * - * NOTE: Encoding support depends on util.TextDecoder, which is severely limited - * prior to Node.js 13. - * - * @see https://tools.ietf.org/html/rfc2047 - * @see https://nodejs.org/api/util.html#util_whatwg_supported_encodings - * @see https://github.com/nodejs/node/issues/19214 - * - * @param {string|Uint8Array} data String to be encoded - * @param {'Q' | 'B'} mimeWordEncoding='Q' Encoding for the mime word, either Q or B - * @param {string} encoding WHATWG supported encoding - * @return {string} Single or several mime words joined together - */ -function mimeWordEncode(data, mimeWordEncoding = 'Q', encoding = 'utf-8') { - let parts = []; - const decoder = new util.TextDecoder(encoding); - const str = typeof data === 'string' ? data : decoder.decode(data); - if (mimeWordEncoding === 'Q') { - const encodedStr = mimeEncode(str, encoding).replace(/[^a-z0-9!*+\-/=]/gi, (chr) => chr === ' ' - ? '_' - : '=' + - (chr.charCodeAt(0) < 0x10 ? '0' : '') + - chr.charCodeAt(0).toString(16).toUpperCase()); - parts = - encodedStr.length < MAX_MIME_WORD_LENGTH - ? [encodedStr] - : splitMimeEncodedString(encodedStr, MAX_MIME_WORD_LENGTH); - } - else { - // Fits as much as possible into every line without breaking utf-8 multibyte characters' octets up across lines - let j = 0; - let i = 0; - while (i < str.length) { - if (encoder.encode(str.substring(j, i)).length > - MAX_B64_MIME_WORD_BYTE_LENGTH) { - // we went one character too far, substring at the char before - parts.push(str.substring(j, i - 1)); - j = i - 1; - } - else { - i++; - } - } - // add the remainder of the string - str.substring(j) && parts.push(str.substring(j)); - parts = parts.map((x) => encoder.encode(x)).map((x) => encodeBase64(x)); - } - return parts - .map((p) => `=?UTF-8?${mimeWordEncoding}?${p}?= `) - .join('') - .trim(); -} - -const CRLF$1 = '\r\n'; -/** - * MIME standard wants 76 char chunks when sending out. - */ -const MIMECHUNK = 76; -/** - * meets both base64 and mime divisibility - */ -const MIME64CHUNK = (MIMECHUNK * 6); -/** - * size of the message stream buffer - */ -const BUFFERSIZE = (MIMECHUNK * 24 * 7); -let counter = 0; -function generateBoundary() { - let text = ''; - const possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'()+_,-./:=?"; - for (let i = 0; i < 69; i++) { - text += possible.charAt(Math.floor(Math.random() * possible.length)); - } - return text; -} -function convertPersonToAddress(person) { - return addressparser(person) - .map(({ name, address }) => { - return name - ? `${mimeWordEncode(name).replace(/,/g, '=2C')} <${address}>` - : address; - }) - .join(', '); -} -function convertDashDelimitedTextToSnakeCase(text) { - return text - .toLowerCase() - .replace(/^(.)|-(.)/g, (match) => match.toUpperCase()); -} -class Message { - /** - * Construct an rfc2822-compliant message object. - * - * Special notes: - * - The `from` field is required. - * - At least one `to`, `cc`, or `bcc` header is also required. - * - You can also add whatever other headers you want. - * - * @see https://tools.ietf.org/html/rfc2822 - * @param {Partial} headers Message headers - */ - constructor(headers) { - this.attachments = []; - this.header = { - 'message-id': `<${new Date().getTime()}.${counter++}.${process.pid}@${os.hostname()}>`, - date: getRFC2822Date(), - }; - this.content = 'text/plain; charset=utf-8'; - this.alternative = null; - for (const header in headers) { - // allow user to override default content-type to override charset or send a single non-text message - if (/^content-type$/i.test(header)) { - this.content = headers[header]; - } - else if (header === 'text') { - this.text = headers[header]; - } - else if (header === 'attachment' && - typeof headers[header] === 'object') { - const attachment = headers[header]; - if (Array.isArray(attachment)) { - for (let i = 0; i < attachment.length; i++) { - this.attach(attachment[i]); - } - } - else if (attachment != null) { - this.attach(attachment); - } - } - else if (header === 'subject') { - this.header.subject = mimeWordEncode(headers.subject); - } - else if (/^(cc|bcc|to|from)/i.test(header)) { - this.header[header.toLowerCase()] = convertPersonToAddress(headers[header]); - } - else { - // allow any headers the user wants to set?? - this.header[header.toLowerCase()] = headers[header]; - } - } - } - /** - * Attach a file to the message. - * - * Can be called multiple times, each adding a new attachment. - * - * @public - * @param {MessageAttachment} options attachment options - * @returns {Message} the current instance for chaining - */ - attach(options) { - // sender can specify an attachment as an alternative - if (options.alternative) { - this.alternative = options; - this.alternative.charset = options.charset || 'utf-8'; - this.alternative.type = options.type || 'text/html'; - this.alternative.inline = true; - } - else { - this.attachments.push(options); - } - return this; - } - /** - * @public - * @returns {{ isValid: boolean, validationError: (string | undefined) }} an object specifying whether this message is validly formatted, and the first validation error if it is not. - */ - checkValidity() { - if (typeof this.header.from !== 'string' && - Array.isArray(this.header.from) === false) { - return { - isValid: false, - validationError: 'Message must have a `from` header', - }; - } - if (typeof this.header.to !== 'string' && - Array.isArray(this.header.to) === false && - typeof this.header.cc !== 'string' && - Array.isArray(this.header.cc) === false && - typeof this.header.bcc !== 'string' && - Array.isArray(this.header.bcc) === false) { - return { - isValid: false, - validationError: 'Message must have at least one `to`, `cc`, or `bcc` header', - }; - } - if (this.attachments.length > 0) { - const failed = []; - this.attachments.forEach((attachment) => { - if (attachment.path) { - if (fs.existsSync(attachment.path) === false) { - failed.push(`${attachment.path} does not exist`); - } - } - else if (attachment.stream) { - if (!attachment.stream.readable) { - failed.push('attachment stream is not readable'); - } - } - else if (!attachment.data) { - failed.push('attachment has no data associated with it'); - } - }); - return { - isValid: failed.length === 0, - validationError: failed.join(', '), - }; - } - return { isValid: true, validationError: undefined }; - } - /** - * @public - * @deprecated does not conform to the `errback` style followed by the rest of the library, and will be removed in the next major version. use `checkValidity` instead. - * @param {function(isValid: boolean, invalidReason: (string | undefined)): void} callback . - * @returns {void} - */ - valid(callback) { - const { isValid, validationError } = this.checkValidity(); - callback(isValid, validationError); - } - /** - * @public - * @returns {MessageStream} a stream of the current message - */ - stream() { - return new MessageStream(this); - } - /** - * @public - * @param {function(Error, string): void} callback the function to call with the error and buffer - * @returns {void} - */ - read(callback) { - let buffer = ''; - const str = this.stream(); - str.on('data', (data) => (buffer += data)); - str.on('end', (err) => callback(err, buffer)); - str.on('error', (err) => callback(err, buffer)); - } - readAsync() { - return new Promise((resolve, reject) => { - this.read((err, buffer) => { - if (err != null) { - reject(err); - } - else { - resolve(buffer); - } - }); - }); - } -} -class MessageStream extends stream.Stream { - /** - * @param {Message} message the message to stream - */ - constructor(message) { - super(); - this.message = message; - this.readable = true; - this.paused = false; - this.buffer = Buffer.alloc(MIMECHUNK * 24 * 7); - this.bufferIndex = 0; - /** - * @param {string} [data] the data to output - * @param {Function} [callback] the function - * @param {any[]} [args] array of arguments to pass to the callback - * @returns {void} - */ - const output = (data) => { - // can we buffer the data? - if (this.buffer != null) { - const bytes = Buffer.byteLength(data); - if (bytes + this.bufferIndex < this.buffer.length) { - this.buffer.write(data, this.bufferIndex); - this.bufferIndex += bytes; - } - // we can't buffer the data, so ship it out! - else if (bytes > this.buffer.length) { - if (this.bufferIndex) { - this.emit('data', this.buffer.toString('utf-8', 0, this.bufferIndex)); - this.bufferIndex = 0; - } - const loops = Math.ceil(data.length / this.buffer.length); - let loop = 0; - while (loop < loops) { - this.emit('data', data.substring(this.buffer.length * loop, this.buffer.length * (loop + 1))); - loop++; - } - } // we need to clean out the buffer, it is getting full - else { - if (!this.paused) { - this.emit('data', this.buffer.toString('utf-8', 0, this.bufferIndex)); - this.buffer.write(data, 0); - this.bufferIndex = bytes; - } - else { - // we can't empty out the buffer, so let's wait till we resume before adding to it - this.once('resume', () => output(data)); - } - } - } - }; - /** - * @param {MessageAttachment} [attachment] the attachment whose headers you would like to output - * @returns {void} - */ - const outputAttachmentHeaders = (attachment) => { - let data = []; - const headers = { - 'content-type': attachment.type + - (attachment.charset ? `; charset=${attachment.charset}` : '') + - (attachment.method ? `; method=${attachment.method}` : ''), - 'content-transfer-encoding': 'base64', - 'content-disposition': attachment.inline - ? 'inline' - : `attachment; filename="${mimeWordEncode(attachment.name)}"`, - }; - // allow sender to override default headers - if (attachment.headers != null) { - for (const header in attachment.headers) { - headers[header.toLowerCase()] = attachment.headers[header]; - } - } - for (const header in headers) { - data = data.concat([ - convertDashDelimitedTextToSnakeCase(header), - ': ', - headers[header], - CRLF$1, - ]); - } - output(data.concat([CRLF$1]).join('')); - }; - /** - * @param {string} data the data to output as base64 - * @param {function(): void} [callback] the function to call after output is finished - * @returns {void} - */ - const outputBase64 = (data, callback) => { - const loops = Math.ceil(data.length / MIMECHUNK); - let loop = 0; - while (loop < loops) { - output(data.substring(MIMECHUNK * loop, MIMECHUNK * (loop + 1)) + CRLF$1); - loop++; - } - if (callback) { - callback(); - } - }; - const outputFile = (attachment, next) => { - var _a; - const chunk = MIME64CHUNK * 16; - const buffer = Buffer.alloc(chunk); - const inputEncoding = ((_a = attachment === null || attachment === void 0 ? void 0 : attachment.headers) === null || _a === void 0 ? void 0 : _a['content-transfer-encoding']) || 'base64'; - const encoding = inputEncoding === '7bit' - ? 'ascii' - : inputEncoding === '8bit' - ? 'binary' - : inputEncoding; - /** - * @param {Error} err the error to emit - * @param {number} fd the file descriptor - * @returns {void} - */ - const opened = (err, fd) => { - if (err) { - this.emit('error', err); - return; - } - const readBytes = (err, bytes) => { - if (err || this.readable === false) { - this.emit('error', err || new Error('message stream was interrupted somehow!')); - return; - } - // guaranteed to be encoded without padding unless it is our last read - outputBase64(buffer.toString(encoding, 0, bytes), () => { - if (bytes == chunk) { - // we read a full chunk, there might be more - fs.read(fd, buffer, 0, chunk, null, readBytes); - } // that was the last chunk, we are done reading the file - else { - this.removeListener('error', fs.closeSync); - fs.close(fd, next); - } - }); - }; - fs.read(fd, buffer, 0, chunk, null, readBytes); - this.once('error', fs.closeSync); - }; - fs.open(attachment.path, 'r', opened); - }; - /** - * @param {MessageAttachment} attachment the metadata to use as headers - * @param {function(): void} callback the function to call after output is finished - * @returns {void} - */ - const outputStream = (attachment, callback) => { - const { stream } = attachment; - if (stream === null || stream === void 0 ? void 0 : stream.readable) { - let previous = Buffer.alloc(0); - stream.resume(); - stream.on('end', () => { - outputBase64(previous.toString('base64'), callback); - this.removeListener('pause', stream.pause); - this.removeListener('resume', stream.resume); - this.removeListener('error', stream.resume); - }); - stream.on('data', (buff) => { - // do we have bytes from a previous stream data event? - let buffer = Buffer.isBuffer(buff) ? buff : Buffer.from(buff); - if (previous.byteLength > 0) { - buffer = Buffer.concat([previous, buffer]); - } - const padded = buffer.length % MIME64CHUNK; - previous = Buffer.alloc(padded); - // encode as much of the buffer to base64 without empty bytes - if (padded > 0) { - // copy dangling bytes into previous buffer - buffer.copy(previous, 0, buffer.length - padded); - } - outputBase64(buffer.toString('base64', 0, buffer.length - padded)); - }); - this.on('pause', stream.pause); - this.on('resume', stream.resume); - this.on('error', stream.resume); - } - else { - this.emit('error', { message: 'stream not readable' }); - } - }; - const outputAttachment = (attachment, callback) => { - const build = attachment.path - ? outputFile - : attachment.stream - ? outputStream - : outputData; - outputAttachmentHeaders(attachment); - build(attachment, callback); - }; - /** - * @param {string} boundary the boundary text between outputs - * @param {MessageAttachment[]} list the list of potential messages to output - * @param {number} index the index of the list item to output - * @param {function(): void} callback the function to call if index is greater than upper bound - * @returns {void} - */ - const outputMessage = (boundary, list, index, callback) => { - if (index < list.length) { - output(`--${boundary}${CRLF$1}`); - if (list[index].related) { - outputRelated(list[index], () => outputMessage(boundary, list, index + 1, callback)); - } - else { - outputAttachment(list[index], () => outputMessage(boundary, list, index + 1, callback)); - } - } - else { - output(`${CRLF$1}--${boundary}--${CRLF$1}${CRLF$1}`); - callback(); - } - }; - const outputMixed = () => { - const boundary = generateBoundary(); - output(`Content-Type: multipart/mixed; boundary="${boundary}"${CRLF$1}${CRLF$1}--${boundary}${CRLF$1}`); - if (this.message.alternative == null) { - outputText(this.message); - outputMessage(boundary, this.message.attachments, 0, close); - } - else { - outputAlternative( - // typescript bug; should narrow to { alternative: MessageAttachment } - this.message, () => outputMessage(boundary, this.message.attachments, 0, close)); - } - }; - /** - * @param {MessageAttachment} attachment the metadata to use as headers - * @param {function(): void} callback the function to call after output is finished - * @returns {void} - */ - const outputData = (attachment, callback) => { - var _a, _b; - outputBase64(attachment.encoded - ? (_a = attachment.data) !== null && _a !== void 0 ? _a : '' : Buffer.from((_b = attachment.data) !== null && _b !== void 0 ? _b : '').toString('base64'), callback); - }; - /** - * @param {Message} message the message to output - * @returns {void} - */ - const outputText = (message) => { - let data = []; - data = data.concat([ - 'Content-Type:', - message.content, - CRLF$1, - 'Content-Transfer-Encoding: 7bit', - CRLF$1, - ]); - data = data.concat(['Content-Disposition: inline', CRLF$1, CRLF$1]); - data = data.concat([message.text || '', CRLF$1, CRLF$1]); - output(data.join('')); - }; - /** - * @param {MessageAttachment} message the message to output - * @param {function(): void} callback the function to call after output is finished - * @returns {void} - */ - const outputRelated = (message, callback) => { - const boundary = generateBoundary(); - output(`Content-Type: multipart/related; boundary="${boundary}"${CRLF$1}${CRLF$1}--${boundary}${CRLF$1}`); - outputAttachment(message, () => { - var _a; - outputMessage(boundary, (_a = message.related) !== null && _a !== void 0 ? _a : [], 0, () => { - output(`${CRLF$1}--${boundary}--${CRLF$1}${CRLF$1}`); - callback(); - }); - }); - }; - /** - * @param {Message} message the message to output - * @param {function(): void} callback the function to call after output is finished - * @returns {void} - */ - const outputAlternative = (message, callback) => { - const boundary = generateBoundary(); - output(`Content-Type: multipart/alternative; boundary="${boundary}"${CRLF$1}${CRLF$1}--${boundary}${CRLF$1}`); - outputText(message); - output(`--${boundary}${CRLF$1}`); - /** - * @returns {void} - */ - const finish = () => { - output([CRLF$1, '--', boundary, '--', CRLF$1, CRLF$1].join('')); - callback(); - }; - if (message.alternative.related) { - outputRelated(message.alternative, finish); - } - else { - outputAttachment(message.alternative, finish); - } - }; - const close = (err) => { - var _a, _b; - if (err) { - this.emit('error', err); - } - else { - this.emit('data', (_b = (_a = this.buffer) === null || _a === void 0 ? void 0 : _a.toString('utf-8', 0, this.bufferIndex)) !== null && _b !== void 0 ? _b : ''); - this.emit('end'); - } - this.buffer = null; - this.bufferIndex = 0; - this.readable = false; - this.removeAllListeners('resume'); - this.removeAllListeners('pause'); - this.removeAllListeners('error'); - this.removeAllListeners('data'); - this.removeAllListeners('end'); - }; - /** - * @returns {void} - */ - const outputHeaderData = () => { - if (this.message.attachments.length || this.message.alternative) { - output(`MIME-Version: 1.0${CRLF$1}`); - outputMixed(); - } // you only have a text message! - else { - outputText(this.message); - close(); - } - }; - /** - * @returns {void} - */ - const outputHeader = () => { - let data = []; - for (const header in this.message.header) { - // do not output BCC in the headers (regex) nor custom Object.prototype functions... - if (!/bcc/i.test(header) && - Object.prototype.hasOwnProperty.call(this.message.header, header)) { - data = data.concat([ - convertDashDelimitedTextToSnakeCase(header), - ': ', - this.message.header[header], - CRLF$1, - ]); - } - } - output(data.join('')); - outputHeaderData(); - }; - this.once('destroy', close); - process.nextTick(outputHeader); - } - /** - * @public - * pause the stream - * @returns {void} - */ - pause() { - this.paused = true; - this.emit('pause'); - } - /** - * @public - * resume the stream - * @returns {void} - */ - resume() { - this.paused = false; - this.emit('resume'); - } - /** - * @public - * destroy the stream - * @returns {void} - */ - destroy() { - this.emit('destroy', this.bufferIndex > 0 ? { message: 'message stream destroyed' } : null); - } - /** - * @public - * destroy the stream at first opportunity - * @returns {void} - */ - destroySoon() { - this.emit('destroy'); - } -} - -/** - * @readonly - * @enum - */ -const SMTPErrorStates = { - COULDNOTCONNECT: 1, - BADRESPONSE: 2, - AUTHFAILED: 3, - TIMEDOUT: 4, - ERROR: 5, - NOCONNECTION: 6, - AUTHNOTSUPPORTED: 7, - CONNECTIONCLOSED: 8, - CONNECTIONENDED: 9, - CONNECTIONAUTH: 10, -}; -class SMTPError extends Error { - /** - * @protected - * @param {string} message error message - */ - constructor(message) { - super(message); - this.code = null; - this.smtp = null; - this.previous = null; - } - /** - * - * @param {string} message error message - * @param {number} code smtp error state - * @param {Error | null} error previous error - * @param {unknown} smtp arbitrary data - * @returns {SMTPError} error - */ - static create(message, code, error, smtp) { - const msg = (error === null || error === void 0 ? void 0 : error.message) ? `${message} (${error.message})` : message; - const err = new SMTPError(msg); - err.code = code; - err.smtp = smtp; - if (error) { - err.previous = error; - } - return err; - } -} - -class SMTPResponseMonitor { - constructor(stream, timeout, onerror) { - let buffer = ''; - const notify = () => { - var _a, _b; - if (buffer.length) { - // parse buffer for response codes - const line = buffer.replace('\r', ''); - if (!((_b = (_a = line - .trim() - .split(/\n/) - .pop()) === null || _a === void 0 ? void 0 : _a.match(/^(\d{3})\s/)) !== null && _b !== void 0 ? _b : false)) { - return; - } - const match = line ? line.match(/(\d+)\s?(.*)/) : null; - const data = match !== null - ? { code: match[1], message: match[2], data: line } - : { code: -1, data: line }; - stream.emit('response', null, data); - buffer = ''; - } - }; - const error = (err) => { - stream.emit('response', SMTPError.create('connection encountered an error', SMTPErrorStates.ERROR, err)); - }; - const timedout = (err) => { - stream.end(); - stream.emit('response', SMTPError.create('timedout while connecting to smtp server', SMTPErrorStates.TIMEDOUT, err)); - }; - const watch = (data) => { - if (data !== null) { - buffer += data.toString(); - notify(); - } - }; - const close = (err) => { - stream.emit('response', SMTPError.create('connection has closed', SMTPErrorStates.CONNECTIONCLOSED, err)); - }; - const end = (err) => { - stream.emit('response', SMTPError.create('connection has ended', SMTPErrorStates.CONNECTIONENDED, err)); - }; - this.stop = (err) => { - stream.removeAllListeners('response'); - stream.removeListener('data', watch); - stream.removeListener('end', end); - stream.removeListener('close', close); - stream.removeListener('error', error); - if (err != null && typeof onerror === 'function') { - onerror(err); - } - }; - stream.on('data', watch); - stream.on('end', end); - stream.on('close', close); - stream.on('error', error); - stream.setTimeout(timeout, timedout); - } -} - -/** - * @readonly - * @enum - */ -const AUTH_METHODS = { - PLAIN: 'PLAIN', - 'CRAM-MD5': 'CRAM-MD5', - LOGIN: 'LOGIN', - XOAUTH2: 'XOAUTH2', -}; -/** - * @readonly - * @enum - */ -const SMTPState = { - NOTCONNECTED: 0, - CONNECTING: 1, - CONNECTED: 2, -}; -const DEFAULT_TIMEOUT = 5000; -const SMTP_PORT = 25; -const SMTP_SSL_PORT = 465; -const SMTP_TLS_PORT = 587; -const CRLF = '\r\n'; -const GREYLIST_DELAY = 300; -let DEBUG = 0; -/** - * @param {...any[]} args the message(s) to log - * @returns {void} - */ -const log = (...args) => { - if (DEBUG === 1) { - args.forEach((d) => console.log(typeof d === 'object' - ? d instanceof Error - ? d.message - : JSON.stringify(d) - : d)); - } -}; -/** - * @param {function(...any[]): void} callback the function to call - * @param {...any[]} args the arguments to apply to the function - * @returns {void} - */ -const caller = (callback, ...args) => { - if (typeof callback === 'function') { - callback(...args); - } -}; -class SMTPConnection extends events.EventEmitter { - /** - * SMTP class written using python's (2.7) smtplib.py as a base. - * - * To target a Message Transfer Agent (MTA), omit all options. - * - * NOTE: `host` is trimmed before being used to establish a connection; however, the original untrimmed value will still be visible in configuration. - */ - constructor({ timeout, host, user, password, domain, port, ssl, tls, logger, authentication, } = {}) { - var _a; - super(); - this.timeout = DEFAULT_TIMEOUT; - this.log = log; - this.authentication = [ - AUTH_METHODS['CRAM-MD5'], - AUTH_METHODS.LOGIN, - AUTH_METHODS.PLAIN, - AUTH_METHODS.XOAUTH2, - ]; - this._state = SMTPState.NOTCONNECTED; - this._secure = false; - this.loggedin = false; - this.sock = null; - this.features = null; - this.monitor = null; - this.domain = os.hostname(); - this.host = 'localhost'; - this.ssl = false; - this.tls = false; - this.greylistResponseTracker = new WeakSet(); - if (Array.isArray(authentication)) { - this.authentication = authentication; - } - if (typeof timeout === 'number') { - this.timeout = timeout; - } - if (typeof domain === 'string') { - this.domain = domain; - } - if (typeof host === 'string') { - this.host = host; - } - if (ssl != null && - (typeof ssl === 'boolean' || - (typeof ssl === 'object' && Array.isArray(ssl) === false))) { - this.ssl = ssl; - } - if (tls != null && - (typeof tls === 'boolean' || - (typeof tls === 'object' && Array.isArray(tls) === false))) { - this.tls = tls; - } - this.port = port || (ssl ? SMTP_SSL_PORT : tls ? SMTP_TLS_PORT : SMTP_PORT); - this.loggedin = user && password ? false : true; - if (!user && ((_a = password === null || password === void 0 ? void 0 : password.length) !== null && _a !== void 0 ? _a : 0) > 0) { - throw new Error('`password` cannot be set without `user`'); - } - // keep these strings hidden when quicky debugging/logging - this.user = () => user; - this.password = () => password; - if (typeof logger === 'function') { - this.log = log; - } - } - /** - * @public - * @param {0 | 1} level - - * @returns {void} - */ - debug(level) { - DEBUG = level; - } - /** - * @public - * @returns {SMTPState} the current state - */ - state() { - return this._state; - } - /** - * @public - * @returns {boolean} whether or not the instance is authorized - */ - authorized() { - return this.loggedin; - } - /** - * Establish an SMTP connection. - * - * NOTE: `host` is trimmed before being used to establish a connection; however, the original untrimmed value will still be visible in configuration. - * - * @public - * @param {function(...any[]): void} callback function to call after response - * @param {number} [port] the port to use for the connection - * @param {string} [host] the hostname to use for the connection - * @param {ConnectOptions} [options={}] the options - * @returns {void} - */ - connect(callback, port = this.port, host = this.host, options = {}) { - this.port = port; - this.host = host; - this.ssl = options.ssl || this.ssl; - if (this._state !== SMTPState.NOTCONNECTED) { - this.quit(() => this.connect(callback, port, host, options)); - } - /** - * @returns {void} - */ - const connected = () => { - this.log(`connected: ${this.host}:${this.port}`); - if (this.ssl && !this.tls) { - // if key/ca/cert was passed in, check if connection is authorized - if (typeof this.ssl !== 'boolean' && - this.sock instanceof tls.TLSSocket && - !this.sock.authorized) { - this.close(true); - caller(callback, SMTPError.create('could not establish an ssl connection', SMTPErrorStates.CONNECTIONAUTH)); - } - else { - this._secure = true; - } - } - }; - /** - * @param {Error} err err - * @returns {void} - */ - const connectedErrBack = (err) => { - if (!err) { - connected(); - } - else { - this.close(true); - this.log(err); - caller(callback, SMTPError.create('could not connect', SMTPErrorStates.COULDNOTCONNECT, err)); - } - }; - const response = (err, msg) => { - if (err) { - if (this._state === SMTPState.NOTCONNECTED && !this.sock) { - return; - } - this.close(true); - caller(callback, err); - } - else if (msg.code == '220') { - this.log(msg.data); - // might happen first, so no need to wait on connected() - this._state = SMTPState.CONNECTED; - caller(callback, null, msg.data); - } - else { - this.log(`response (data): ${msg.data}`); - this.quit(() => { - caller(callback, SMTPError.create('bad response on connection', SMTPErrorStates.BADRESPONSE, err, msg.data)); - }); - } - }; - this._state = SMTPState.CONNECTING; - this.log(`connecting: ${this.host}:${this.port}`); - if (this.ssl) { - this.sock = tls.connect(this.port, this.host.trim(), typeof this.ssl === 'object' ? this.ssl : {}, connected); - } - else { - this.sock = new net.Socket(); - this.sock.connect(this.port, this.host.trim(), connectedErrBack); - } - this.monitor = new SMTPResponseMonitor(this.sock, this.timeout, () => this.close(true)); - this.sock.once('response', response); - this.sock.once('error', response); // the socket could reset or throw, so let's handle it and let the user know - } - /** - * @public - * @param {string} str the string to send - * @param {function(...any[]): void} callback function to call after response - * @returns {void} - */ - send(str, callback) { - if (this.sock != null && this._state === SMTPState.CONNECTED) { - this.log(str); - this.sock.once('response', (err, msg) => { - if (err) { - caller(callback, err); - } - else { - this.log(msg.data); - caller(callback, null, msg); - } - }); - if (this.sock.writable) { - this.sock.write(str); - } - } - else { - this.close(true); - caller(callback, SMTPError.create('no connection has been established', SMTPErrorStates.NOCONNECTION)); - } - } - /** - * @public - * @param {string} cmd command to issue - * @param {function(...any[]): void} callback function to call after response - * @param {(number[] | number)} [codes=[250]] array codes - * @returns {void} - */ - command(cmd, callback, codes = [250]) { - const codesArray = Array.isArray(codes) - ? codes - : typeof codes === 'number' - ? [codes] - : [250]; - const response = (err, msg) => { - if (err) { - caller(callback, err); - } - else { - const code = Number(msg.code); - if (codesArray.indexOf(code) !== -1) { - caller(callback, err, msg.data, msg.message); - } - else if ((code === 450 || code === 451) && - msg.message.toLowerCase().includes('greylist') && - this.greylistResponseTracker.has(response) === false) { - this.greylistResponseTracker.add(response); - setTimeout(() => { - this.send(cmd + CRLF, response); - }, GREYLIST_DELAY); - } - else { - const suffix = msg.message ? `: ${msg.message}` : ''; - const errorMessage = `bad response on command '${cmd.split(' ')[0]}'${suffix}`; - caller(callback, SMTPError.create(errorMessage, SMTPErrorStates.BADRESPONSE, null, msg.data)); - } - } - }; - this.greylistResponseTracker.delete(response); - this.send(cmd + CRLF, response); - } - /** - * @public - * @description SMTP 'helo' command. - * - * Hostname to send for self command defaults to the FQDN of the local - * host. - * - * As this command was deprecated by rfc2821, it should only be used for compatibility with non-compliant servers. - * @see https://tools.ietf.org/html/rfc2821#appendix-F.3 - * - * @param {function(...any[]): void} callback function to call after response - * @param {string} domain the domain to associate with the 'helo' request - * @returns {void} - */ - helo(callback, domain) { - this.command(`helo ${domain || this.domain}`, (err, data) => { - if (err) { - caller(callback, err); - } - else { - this.parse_smtp_features(data); - caller(callback, err, data); - } - }); - } - /** - * @public - * @param {function(...any[]): void} callback function to call after response - * @returns {void} - */ - starttls(callback) { - const response = (err, msg) => { - if (this.sock == null) { - throw new Error('null socket'); - } - if (err) { - err.message += ' while establishing a starttls session'; - caller(callback, err); - } - else { - const secureContext = tls.createSecureContext(typeof this.tls === 'object' ? this.tls : {}); - const secureSocket = new tls.TLSSocket(this.sock, { secureContext }); - secureSocket.on('error', (err) => { - this.close(true); - caller(callback, err); - }); - this._secure = true; - this.sock = secureSocket; - new SMTPResponseMonitor(this.sock, this.timeout, () => this.close(true)); - caller(callback, msg.data); - } - }; - this.command('starttls', response, [220]); - } - /** - * @public - * @param {string} data the string to parse for features - * @returns {void} - */ - parse_smtp_features(data) { - // According to RFC1869 some (badly written) - // MTA's will disconnect on an ehlo. Toss an exception if - // that happens -ddm - data.split('\n').forEach((ext) => { - const parse = ext.match(/^(?:\d+[-=]?)\s*?([^\s]+)(?:\s+(.*)\s*?)?$/); - // To be able to communicate with as many SMTP servers as possible, - // we have to take the old-style auth advertisement into account, - // because: - // 1) Else our SMTP feature parser gets confused. - // 2) There are some servers that only advertise the auth methods we - // support using the old style. - if (parse != null && this.features != null) { - // RFC 1869 requires a space between ehlo keyword and parameters. - // It's actually stricter, in that only spaces are allowed between - // parameters, but were not going to check for that here. Note - // that the space isn't present if there are no parameters. - this.features[parse[1].toLowerCase()] = parse[2] || true; - } - }); - } - /** - * @public - * @param {function(...any[]): void} callback function to call after response - * @param {string} domain the domain to associate with the 'ehlo' request - * @returns {void} - */ - ehlo(callback, domain) { - this.features = {}; - this.command(`ehlo ${domain || this.domain}`, (err, data) => { - if (err) { - caller(callback, err); - } - else { - this.parse_smtp_features(data); - if (this.tls && !this._secure) { - this.starttls(() => this.ehlo(callback, domain)); - } - else { - caller(callback, err, data); - } - } - }); - } - /** - * @public - * @param {string} opt the features keyname to check - * @returns {boolean} whether the extension exists - */ - has_extn(opt) { - var _a; - return ((_a = this.features) !== null && _a !== void 0 ? _a : {})[opt.toLowerCase()] === undefined; - } - /** - * @public - * @description SMTP 'help' command, returns text from the server - * @param {function(...any[]): void} callback function to call after response - * @param {string} domain the domain to associate with the 'help' request - * @returns {void} - */ - help(callback, domain) { - this.command(domain ? `help ${domain}` : 'help', callback, [211, 214]); - } - /** - * @public - * @param {function(...any[]): void} callback function to call after response - * @returns {void} - */ - rset(callback) { - this.command('rset', callback); - } - /** - * @public - * @param {function(...any[]): void} callback function to call after response - * @returns {void} - */ - noop(callback) { - this.send('noop', callback); - } - /** - * @public - * @param {function(...any[]): void} callback function to call after response - * @param {string} from the sender - * @returns {void} - */ - mail(callback, from) { - this.command(`mail FROM:${from}`, callback); - } - /** - * @public - * @param {function(...any[]): void} callback function to call after response - * @param {string} to the receiver - * @returns {void} - */ - rcpt(callback, to) { - this.command(`RCPT TO:${to}`, callback, [250, 251]); - } - /** - * @public - * @param {function(...any[]): void} callback function to call after response - * @returns {void} - */ - data(callback) { - this.command('data', callback, [354]); - } - /** - * @public - * @param {function(...any[]): void} callback function to call after response - * @returns {void} - */ - data_end(callback) { - this.command(`${CRLF}.`, callback); - } - /** - * @public - * @param {string} data the message to send - * @returns {void} - */ - message(data) { - var _a, _b; - this.log(data); - (_b = (_a = this.sock) === null || _a === void 0 ? void 0 : _a.write(data)) !== null && _b !== void 0 ? _b : this.log('no socket to write to'); - } - /** - * @public - * @description SMTP 'verify' command -- checks for address validity. - * @param {string} address the address to validate - * @param {function(...any[]): void} callback function to call after response - * @returns {void} - */ - verify(address, callback) { - this.command(`vrfy ${address}`, callback, [250, 251, 252]); - } - /** - * @public - * @description SMTP 'expn' command -- expands a mailing list. - * @param {string} address the mailing list to expand - * @param {function(...any[]): void} callback function to call after response - * @returns {void} - */ - expn(address, callback) { - this.command(`expn ${address}`, callback); - } - /** - * @public - * @description Calls this.ehlo() and, if an error occurs, this.helo(). - * - * If there has been no previous EHLO or HELO command self session, self - * method tries ESMTP EHLO first. - * - * @param {function(...any[]): void} callback function to call after response - * @param {string} [domain] the domain to associate with the command - * @returns {void} - */ - ehlo_or_helo_if_needed(callback, domain) { - // is this code callable...? - if (!this.features) { - const response = (err, data) => caller(callback, err, data); - this.ehlo((err, data) => { - if (err) { - this.helo(response, domain); - } - else { - caller(callback, err, data); - } - }, domain); - } - } - /** - * @public - * - * Log in on an SMTP server that requires authentication. - * - * If there has been no previous EHLO or HELO command self session, self - * method tries ESMTP EHLO first. - * - * This method will return normally if the authentication was successful. - * - * @param {function(...any[]): void} callback function to call after response - * @param {string} [user] the username to authenticate with - * @param {string} [password] the password for the authentication - * @param {{ method: string, domain: string }} [options] login options - * @returns {void} - */ - login(callback, user, password, options = {}) { - var _a, _b; - const login = { - user: user ? () => user : this.user, - password: password ? () => password : this.password, - method: (_b = (_a = options === null || options === void 0 ? void 0 : options.method) === null || _a === void 0 ? void 0 : _a.toUpperCase()) !== null && _b !== void 0 ? _b : '', - }; - const domain = (options === null || options === void 0 ? void 0 : options.domain) || this.domain; - const initiate = (err, data) => { - var _a; - if (err) { - caller(callback, err); - return; - } - let method = null; - /** - * @param {string} challenge challenge - * @returns {string} base64 cram hash - */ - const encodeCramMd5 = (challenge) => { - const hmac = crypto.createHmac('md5', login.password()); - hmac.update(Buffer.from(challenge, 'base64').toString('ascii')); - return Buffer.from(`${login.user()} ${hmac.digest('hex')}`).toString('base64'); - }; - /** - * @returns {string} base64 login/password - */ - const encodePlain = () => Buffer.from(`\u0000${login.user()}\u0000${login.password()}`).toString('base64'); - /** - * @see https://developers.google.com/gmail/xoauth2_protocol - * @returns {string} base64 xoauth2 auth token - */ - const encodeXoauth2 = () => Buffer.from(`user=${login.user()}\u0001auth=Bearer ${login.password()}\u0001\u0001`).toString('base64'); - // List of authentication methods we support: from preferred to - // less preferred methods. - if (!method) { - const preferred = this.authentication; - let auth = ''; - if (typeof ((_a = this.features) === null || _a === void 0 ? void 0 : _a['auth']) === 'string') { - auth = this.features['auth']; - } - for (let i = 0; i < preferred.length; i++) { - if (auth.includes(preferred[i])) { - method = preferred[i]; - break; - } - } - } - /** - * handle bad responses from command differently - * @param {Error} err err - * @param {unknown} data data - * @returns {void} - */ - const failed = (err, data) => { - this.loggedin = false; - this.close(); // if auth is bad, close the connection, it won't get better by itself - caller(callback, SMTPError.create('authorization.failed', SMTPErrorStates.AUTHFAILED, err, data)); - }; - /** - * @param {Error} err err - * @param {unknown} data data - * @returns {void} - */ - const response = (err, data) => { - if (err) { - failed(err, data); - } - else { - this.loggedin = true; - caller(callback, err, data); - } - }; - /** - * @param {Error} err err - * @param {unknown} data data - * @param {string} msg msg - * @returns {void} - */ - const attempt = (err, data, msg) => { - if (err) { - failed(err, data); - } - else { - if (method === AUTH_METHODS['CRAM-MD5']) { - this.command(encodeCramMd5(msg), response, [235, 503]); - } - else if (method === AUTH_METHODS.LOGIN) { - this.command(Buffer.from(login.password()).toString('base64'), response, [235, 503]); - } - } - }; - /** - * @param {Error} err err - * @param {unknown} data data - * @param {string} msg msg - * @returns {void} - */ - const attemptUser = (err, data) => { - if (err) { - failed(err, data); - } - else { - if (method === AUTH_METHODS.LOGIN) { - this.command(Buffer.from(login.user()).toString('base64'), attempt, [334]); - } - } - }; - switch (method) { - case AUTH_METHODS['CRAM-MD5']: - this.command(`AUTH ${AUTH_METHODS['CRAM-MD5']}`, attempt, [334]); - break; - case AUTH_METHODS.LOGIN: - this.command(`AUTH ${AUTH_METHODS.LOGIN}`, attemptUser, [334]); - break; - case AUTH_METHODS.PLAIN: - this.command(`AUTH ${AUTH_METHODS.PLAIN} ${encodePlain()}`, response, [235, 503]); - break; - case AUTH_METHODS.XOAUTH2: - this.command(`AUTH ${AUTH_METHODS.XOAUTH2} ${encodeXoauth2()}`, response, [235, 503]); - break; - default: - caller(callback, SMTPError.create('no form of authorization supported', SMTPErrorStates.AUTHNOTSUPPORTED, null, data)); - break; - } - }; - this.ehlo_or_helo_if_needed(initiate, domain); - } - /** - * @public - * @param {boolean} [force=false] whether or not to force destroy the connection - * @returns {void} - */ - close(force = false) { - if (this.sock) { - if (force) { - this.log('smtp connection destroyed!'); - this.sock.destroy(); - } - else { - this.log('smtp connection closed.'); - this.sock.end(); - } - } - if (this.monitor) { - this.monitor.stop(); - this.monitor = null; - } - this._state = SMTPState.NOTCONNECTED; - this._secure = false; - this.sock = null; - this.features = null; - this.loggedin = !(this.user() && this.password()); - } - /** - * @public - * @param {function(...any[]): void} [callback] function to call after response - * @returns {void} - */ - quit(callback) { - this.command('quit', (err, data) => { - caller(callback, err, data); - this.close(); - }, [221, 250]); - } -} - -class SMTPClient { - /** - * Create a standard SMTP client backed by a self-managed SMTP connection. - * - * NOTE: `host` is trimmed before being used to establish a connection; however, the original untrimmed value will still be visible in configuration. - * - * @param {SMTPConnectionOptions} server smtp options - */ - constructor(server) { - this.queue = []; - this.sending = false; - this.ready = false; - this.timer = null; - this.smtp = new SMTPConnection(server); - } - /** - * @public - * @param {Message} msg the message to send - * @param {MessageCallback} callback . - * @returns {void} - */ - send(msg, callback) { - const message = msg instanceof Message - ? msg - : this._canMakeMessage(msg) - ? new Message(msg) - : null; - if (message == null) { - callback(new Error('message is not a valid Message instance'), msg); - return; - } - const { isValid, validationError } = message.checkValidity(); - if (isValid) { - const stack = this.createMessageStack(message, callback); - if (stack.to.length === 0) { - return callback(new Error('No recipients found in message'), msg); - } - this.queue.push(stack); - this._poll(); - } - else { - callback(new Error(validationError), msg); - } - } - /** - * @public - * @param {Message} msg the message to send - * @returns {Promise} a promise that resolves to the fully processed message - */ - sendAsync(msg) { - return new Promise((resolve, reject) => { - this.send(msg, (err, message) => { - if (err != null) { - reject(err); - } - else { - // unfortunately, the conditional type doesn't reach here - // fortunately, we only return a `Message` when err is null, so this is safe - resolve(message); - } - }); - }); - } - /** - * @public - * @description Converts a message to the raw object used by the internal stack. - * @param {Message} message message to convert - * @param {MessageCallback} callback errback - * @returns {MessageStack} raw message object - */ - createMessageStack(message, callback = function () { - /* ø */ - }) { - const [{ address: from }] = addressparser(message.header.from); - const stack = { - message, - to: [], - from, - callback: callback.bind(this), - }; - const { header: { to, cc, bcc, 'return-path': returnPath }, } = message; - if ((typeof to === 'string' || Array.isArray(to)) && to.length > 0) { - stack.to = addressparser(to); - } - if ((typeof cc === 'string' || Array.isArray(cc)) && cc.length > 0) { - stack.to = stack.to.concat(addressparser(cc).filter((x) => stack.to.some((y) => y.address === x.address) === false)); - } - if ((typeof bcc === 'string' || Array.isArray(bcc)) && bcc.length > 0) { - stack.to = stack.to.concat(addressparser(bcc).filter((x) => stack.to.some((y) => y.address === x.address) === false)); - } - if (typeof returnPath === 'string' && returnPath.length > 0) { - const parsedReturnPath = addressparser(returnPath); - if (parsedReturnPath.length > 0) { - const [{ address: returnPathAddress }] = parsedReturnPath; - stack.returnPath = returnPathAddress; - } - } - return stack; - } - /** - * @protected - * @returns {void} - */ - _poll() { - if (this.timer != null) { - clearTimeout(this.timer); - } - if (this.queue.length) { - if (this.smtp.state() == SMTPState.NOTCONNECTED) { - this._connect(this.queue[0]); - } - else if (this.smtp.state() == SMTPState.CONNECTED && - !this.sending && - this.ready) { - this._sendmail(this.queue.shift()); - } - } - // wait around 1 seconds in case something does come in, - // otherwise close out SMTP connection if still open - else if (this.smtp.state() == SMTPState.CONNECTED) { - this.timer = setTimeout(() => this.smtp.quit(), 1000); - } - } - /** - * @protected - * @param {MessageStack} stack stack - * @returns {void} - */ - _connect(stack) { - /** - * @param {Error} err callback error - * @returns {void} - */ - const connect = (err) => { - if (!err) { - const begin = (err) => { - if (!err) { - this.ready = true; - this._poll(); - } - else { - stack.callback(err, stack.message); - // clear out the queue so all callbacks can be called with the same error message - this.queue.shift(); - this._poll(); - } - }; - if (!this.smtp.authorized()) { - this.smtp.login(begin); - } - else { - this.smtp.ehlo_or_helo_if_needed(begin); - } - } - else { - stack.callback(err, stack.message); - // clear out the queue so all callbacks can be called with the same error message - this.queue.shift(); - this._poll(); - } - }; - this.ready = false; - this.smtp.connect(connect); - } - /** - * @protected - * @param {MessageStack} msg message stack - * @returns {boolean} can make message - */ - _canMakeMessage(msg) { - return (msg.from && - (msg.to || msg.cc || msg.bcc) && - (msg.text !== undefined || this._containsInlinedHtml(msg.attachment))); - } - /** - * @protected - * @param {MessageAttachment | MessageAttachment[]} attachment attachment - * @returns {boolean} whether the attachment contains inlined html - */ - _containsInlinedHtml(attachment) { - if (Array.isArray(attachment)) { - return attachment.some((att) => { - return this._isAttachmentInlinedHtml(att); - }); - } - else { - return this._isAttachmentInlinedHtml(attachment); - } - } - /** - * @protected - * @param {MessageAttachment} attachment attachment - * @returns {boolean} whether the attachment is inlined html - */ - _isAttachmentInlinedHtml(attachment) { - return (attachment && - (attachment.data || attachment.path) && - attachment.alternative === true); - } - /** - * @protected - * @param {MessageStack} stack stack - * @param {function(MessageStack): void} next next - * @returns {function(Error): void} callback - */ - _sendsmtp(stack, next) { - /** - * @param {Error} [err] error - * @returns {void} - */ - return (err) => { - if (!err && next) { - next.apply(this, [stack]); - } - else { - // if we snag on SMTP commands, call done, passing the error - // but first reset SMTP state so queue can continue polling - this.smtp.rset(() => this._senddone(err, stack)); - } - }; - } - /** - * @protected - * @param {MessageStack} stack stack - * @returns {void} - */ - _sendmail(stack) { - const from = stack.returnPath || stack.from; - this.sending = true; - this.smtp.mail(this._sendsmtp(stack, this._sendrcpt), '<' + from + '>'); - } - /** - * @protected - * @param {MessageStack} stack stack - * @returns {void} - */ - _sendrcpt(stack) { - var _a; - if (stack.to == null || typeof stack.to === 'string') { - throw new TypeError('stack.to must be array'); - } - const to = (_a = stack.to.shift()) === null || _a === void 0 ? void 0 : _a.address; - this.smtp.rcpt(this._sendsmtp(stack, stack.to.length ? this._sendrcpt : this._senddata), `<${to}>`); - } - /** - * @protected - * @param {MessageStack} stack stack - * @returns {void} - */ - _senddata(stack) { - this.smtp.data(this._sendsmtp(stack, this._sendmessage)); - } - /** - * @protected - * @param {MessageStack} stack stack - * @returns {void} - */ - _sendmessage(stack) { - const stream = stack.message.stream(); - stream.on('data', (data) => this.smtp.message(data)); - stream.on('end', () => { - this.smtp.data_end(this._sendsmtp(stack, () => this._senddone(null, stack))); - }); - // there is no way to cancel a message while in the DATA portion, - // so we have to close the socket to prevent a bad email from going out - stream.on('error', (err) => { - this.smtp.close(); - this._senddone(err, stack); - }); - } - /** - * @protected - * @param {Error} err err - * @param {MessageStack} stack stack - * @returns {void} - */ - _senddone(err, stack) { - this.sending = false; - stack.callback(err, stack.message); - this._poll(); - } -} - -exports.AUTH_METHODS = AUTH_METHODS; -exports.BUFFERSIZE = BUFFERSIZE; -exports.DEFAULT_TIMEOUT = DEFAULT_TIMEOUT; -exports.MIME64CHUNK = MIME64CHUNK; -exports.MIMECHUNK = MIMECHUNK; -exports.Message = Message; -exports.SMTPClient = SMTPClient; -exports.SMTPConnection = SMTPConnection; -exports.SMTPError = SMTPError; -exports.SMTPErrorStates = SMTPErrorStates; -exports.SMTPResponseMonitor = SMTPResponseMonitor; -exports.SMTPState = SMTPState; -exports.addressparser = addressparser; -exports.getRFC2822Date = getRFC2822Date; -exports.getRFC2822DateUTC = getRFC2822DateUTC; -exports.isRFC2822Date = isRFC2822Date; -exports.mimeEncode = mimeEncode; -exports.mimeWordEncode = mimeWordEncode; -//# sourceMappingURL=email.cjs.map diff --git a/rollup/email.cjs.map b/rollup/email.cjs.map deleted file mode 100644 index 316c5c8..0000000 --- a/rollup/email.cjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"email.cjs","sources":["../smtp/address.ts","../smtp/date.ts","../smtp/mime.ts","../smtp/message.ts","../smtp/error.ts","../smtp/response.ts","../smtp/connection.ts","../smtp/client.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["TextEncoder","TextDecoder","CRLF","hostname","existsSync","Stream","readFile","closeFileSync","closeFile","openFile","EventEmitter","TLSSocket","connect","Socket","createSecureContext","createHmac"],"mappings":"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"} \ No newline at end of file diff --git a/rollup/email.mjs.map b/rollup/email.mjs.map deleted file mode 100644 index 4989fa1..0000000 --- a/rollup/email.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"email.mjs","sources":["../smtp/address.ts","../smtp/date.ts","../smtp/mime.ts","../smtp/message.ts","../smtp/error.ts","../smtp/response.ts","../smtp/connection.ts","../smtp/client.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["CRLF","readFile","closeFileSync","closeFile","openFile","close"],"mappings":"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"} \ No newline at end of file