This commit is contained in:
Martin
2024-09-19 21:51:50 +08:00
commit 39fc7df763
10 changed files with 2788 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
const simpleParser = require('mailparser').simpleParser;
const { uploadToS3 } = require('./s3Service');
async function parseEmail(stream) {
const parsed = await simpleParser(stream);
const attachments = parsed.attachments || [];
delete parsed.attachments;
const processedAttachments = await Promise.all(attachments.map(async att => {
const s3Url = await uploadToS3(att);
return {
filename: att.filename,
contentType: att.contentType,
size: att.size,
s3Url: s3Url,
skipped: s3Url === null
};
}));
parsed.attachmentInfo = processedAttachments.filter(att => !att.skipped);
parsed.skippedAttachments = processedAttachments.filter(att => att.skipped).map(att => ({
filename: att.filename,
size: att.size
}));
return parsed;
}
module.exports = { parseEmail };