Skip to content

Commit

Permalink
Detect Zoho bounce information
Browse files Browse the repository at this point in the history
  • Loading branch information
andris9 committed Feb 21, 2023
1 parent d365a3b commit b667ae2
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 1 deletion.
17 changes: 17 additions & 0 deletions lib/bounce-detect.js
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ async function bounceDetect(sourceStream) {
let deliveryStatus = parsed.attachments.find(attachment => attachment.contentType === 'message/delivery-status');
let messageHeaders = parsed.attachments.find(attachment => attachment.contentType === 'text/rfc822-headers');
let originalMessage = parsed.attachments.find(attachment => attachment.contentType === 'message/rfc822');
let zohoOriginalMessage = parsed.attachments.find(attachment => attachment.contentType === 'text/rfc822');

let parsedMessageHeaders;

Expand Down Expand Up @@ -202,6 +203,22 @@ async function bounceDetect(sourceStream) {
}
}

if (zohoOriginalMessage) {
try {
let parsedOriginal = await simpleParser(zohoOriginalMessage.content, { keepDeliveryStatus: true });
if (parsedOriginal && parsedOriginal.text && (!parsedOriginal.headerLines || !parsedOriginal.headerLines.filter(h => h.key).length)) {
let headerContent = (parsedOriginal.text || '').toString().replace(/^ (?=[^ ])/gm, '');
let headers = libmime.decodeHeaders(headerContent);
if (headers && headers['message-id']) {
parsedMessageHeaders = headers;
result = Object.assign(result, parseDeliveryHeaders(headerContent) || {});
}
}
} catch (E) {
// should we ignore it?
}
}

let text = (parsed.text || '').toString();
if (!text && !parsed.html && parsed.attachments) {
let emptyContent = parsed.attachments.find(attachment => !attachment.contentType);
Expand Down
2 changes: 1 addition & 1 deletion test/fixtures/bounces/zoho.eml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ Content-Description: Undelivered Message
with SMTPS id 16751991711571017.8204286637366; Tue, 31 Jan 2023 13:06:11 -0800 (PST)
Message-ID:<[email protected]>
Date:Tue, 31 Jan 2023 21:06:10 +0000
From:Andy Cabasso <[email protected]>
From:Sender Name <[email protected]>
To:[email protected]
Subject:Example
Content-Type:multipart/alternative;
Expand Down

0 comments on commit b667ae2

Please sign in to comment.