我在使用mailparser时遇到了一个小问题。当我尝试查看主题内容时,它说是undefined
我的代码看起来像这样:

var fs = require("fs");
var socket = fs.createWriteStream('./outputmail.eml');
socket.on("end",function()
{
    connection.loginfo("end------->");
});
connection.transaction.message_stream.pipe(socket, {}); // haraka related
var mailparser = new MailParser();
mailparser.on("end", function(mail_object){
    connection.loginfo("----------SUBJECT-------------------->:", mail_object.subject);
});
fs.createReadStream("./outputmail.eml").pipe(mailparser);


我在Haraka(http://haraka.github.io)中使用mailparser。这样做的全部目的是,我想解析收到的每封邮件,并将标语/图像/任何内容添加到邮件正文中。如果您知道为什么出现此消息,请告诉我。

最佳答案

如果那是代码,则很可能您已在写入文件之前开始读取文件。由于这两个库都支持流,因此您应该能够将message_stream直接通过管道传递到mailparser,即。

var mailparser = new MailParser();
mailparser.on("end", function(mail_object) {
  console.log(mail_object);
});
connection.transaction.message_stream.pipe(mailparser, {});


另一个原因很可能自然是电子邮件中没有主题。

08-15 22:21