将 IMAP + mailparser return object 解析为 JSON

Parsing IMAP + mailparser return object into a JSON

我为此使用节点的 IMAP 和 Mailparser 模块。

我的邮箱 reader 函数有这一行解析 header:

var parsed_header = inspect(Imap.parseHeader(buffer));

这将 return:

{ from: [ 'user <user@mail.com>' ],
subject: [ 'Test' ] }

我希望能够使用 JSON.parse 将其解析为 JSON,但是因为键周围没有引号 + 键都在列表中,可以这样做吗?

我用两个正则表达式替换解决了同样的问题:

var header = inspect(Imap.parseHeader(buffer)).replace(/'/g,'"').replace(/([a-z]+)(: ?[\[\n])/g, '""');
var headerObj = JSON.parse(header);

第一个将单引号替换为双引号,第二个在字段名称周围添加引号。

只需var parsed_header = Imap.parseHeader(buffer),您就会得到一个对象。因此,要获取 "from" 字段,您只需使用 parsed_header.from