DefinitelyTyped/types/mailparser/mailparser-tests.ts
2019-02-24 18:36:38 +01:00

62 lines
2.1 KiB
TypeScript

import mailparser_mod = require('mailparser');
import MailParser = mailparser_mod.MailParser;
import simpleParser = mailparser_mod.simpleParser;
var mailparser = new MailParser();
mailparser.on('headers', function(headers){
console.log('Subject:', headers.get('subject'));
});
// Attachments
mailparser.on('data', data => {
if (data.type === 'attachment'){
console.log(data.filename);
data.content.pipe(process.stdout);
data.content.on('end', () => data.release());
}
});
mailparser.on('data', data => {
if (data.type === 'text'){
console.log(data.html);
}
});
// Pipe file to MailParser
// This example pipes a readableStream file to MailParser
import fs = require('fs');
fs.createReadStream('email.eml').pipe(mailparser);
// check different sources and promise/callback api for simpleParser
var sourceString = '';
var sourceBuffer = new Buffer('');
var sourceStream = fs.createReadStream('foo.eml');
simpleParser(sourceString, (err, mail) => err ? err : mail.html);
simpleParser(sourceBuffer, (err, mail) => err ? err : mail.html);
simpleParser(sourceStream, (err, mail) => err ? err : mail.html);
simpleParser(sourceString, { keepCidLinks: true }, (err, mail) => err ? err : mail.html);
simpleParser(sourceBuffer, { keepCidLinks: true }, (err, mail) => err ? err : mail.html);
simpleParser(sourceStream, { keepCidLinks: true }, (err, mail) => err ? err : mail.html);
simpleParser(sourceString).then(mail => mail.html).catch(err => err);
simpleParser(sourceBuffer).then(mail => mail.html).catch(err => err);
simpleParser(sourceStream).then(mail => mail.html).catch(err => err);
simpleParser(sourceString, { keepCidLinks: true }).then(mail => mail.html).catch(err => err);
simpleParser(sourceBuffer, { keepCidLinks: true }).then(mail => mail.html).catch(err => err);
simpleParser(sourceStream, { keepCidLinks: true }).then(mail => mail.html).catch(err => err);
simpleParser(sourceString, (err, mail) => {
console.log(mail.headers.get('subject'));
console.log(mail.subject);
// Attachments
mail.attachments.forEach(attachment => console.log(attachment.filename));
// Text
console.log(mail.text);
console.log(mail.html);
console.log(mail.textAsHtml);
});