[local-sync] Support parsing 8bit encoded messages

This commit is contained in:
Juan Tejada 2016-11-28 11:40:52 -08:00
parent 048e077cc5
commit f9b6e63958
2 changed files with 4 additions and 1 deletions

View file

@ -210,6 +210,8 @@ class FetchMessagesInFolder {
msg.body[mimetype] = QuotedPrintable.decode(msg.parts[id]); msg.body[mimetype] = QuotedPrintable.decode(msg.parts[id]);
} else if (encoding.toLowerCase() === '7bit') { } else if (encoding.toLowerCase() === '7bit') {
msg.body[mimetype] = utf7.decode(msg.parts[id]); msg.body[mimetype] = utf7.decode(msg.parts[id]);
} else if (encoding.toLowerCase() === '8bit') {
msg.body[mimetype] = Buffer.from(msg.parts[id], 'utf8').toString();
} else if (encoding && ['ascii', 'utf8', 'utf16le', 'ucs2', 'base64', 'latin1', 'binary', 'hex'].includes(encoding.toLowerCase())) { } else if (encoding && ['ascii', 'utf8', 'utf16le', 'ucs2', 'base64', 'latin1', 'binary', 'hex'].includes(encoding.toLowerCase())) {
msg.body[mimetype] = Buffer.from(msg.parts[id], encoding.toLowerCase()).toString(); msg.body[mimetype] = Buffer.from(msg.parts[id], encoding.toLowerCase()).toString();
} else { } else {

View file

@ -15,7 +15,8 @@ function runPipeline({db, accountId, message, logger}) {
return Promise.resolve(processed) return Promise.resolve(processed)
.then((nextMessage) => { .then((nextMessage) => {
if (!nextMessage.body) { if (!nextMessage.body) {
throw new Error("processor did not resolve with a valid message object.") logger.error({processed_message: nextMessage.toJSON()}, `Processor did not resolve with a valid message object.`)
throw new Error('Processor did not resolve with a valid message object.')
} }
return Promise.resolve(nextMessage); return Promise.resolve(nextMessage);
}) })