MIME 电子邮件多部分解析器 [重复]

Posted

技术标签:

【中文标题】MIME 电子邮件多部分解析器 [重复]【英文标题】:MIME email multipart parser [duplicate] 【发布时间】:2016-10-05 00:55:08 【问题描述】:

我正在寻找可以解析我的 IMAP 请求的 node.js 模块 - FETCH 1 BODY[TEXT]。我需要多部分解析器,因为我的消息层次结构很少。

消息示例:

--94eb2c032ec81bf420053483f579
Content-Type: multipart/alternative; boundary=94eb2c032ec81bf411053483f577

--94eb2c032ec81bf411053483f577
Content-Type: text/plain; charset=UTF-8

test

--94eb2c032ec81bf411053483f577
Content-Type: text/html; charset=UTF-8

<div dir="ltr">test</div>

--94eb2c032ec81bf411053483f577--
--94eb2c032ec81bf420053483f579
Content-Type: image/x-icon; name="favicon.ico"
Content-Disposition: attachment; filename="favicon.ico"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_ip2cdokt0

AAABAAEAEA8AAAEAIA... THIS IS ATTACHMENT ...A8AcAAPw/AAA=
--94eb2c032ec81bf420053483f579--)

【问题讨论】:

这里还是什么都没有.... =( 【参考方案1】:

使用mailparser,我们可以将电子邮件消息的来源解析为结构化对象。它支持多部分级别 - 因此 html/text/attachments 将保留在对象中,我们可以在属性中找到它们。

有了这个库 - emailjs-mime-builder,我们可以构建 RFC 消息。 (支持多部分)。

例子:

var rootNode = new MimeBuilder("multipart/mixed"),
childNodeTxt = rootNode.createChild("text/plain").setContent("Text");
childNodeHtml = rootNode.createChild("text/html").setContent("<h1>HTML</h1>");

rootNode.build()

附件 - 使用“标题”和“内容”属性,我们可以构建附件节点。

【讨论】:

您的问题是寻找 MIME 解析器,而不是 MIME 构建器。 你是对的!会更新的! 这不是答案??

以上是关于MIME 电子邮件多部分解析器 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

只获取 MIME 电子邮件的“文本/纯文本”部分

使用 Email::MIME 和 multipart/mixed with subparts 解析电子邮件

Perl 使用 MIME::Parser 解析没有部分的电子邮件正文

PHP 将MIME电子邮件解析为部分

将MIME电子邮件解析为多个部分

如何在浏览器中显示多部分 MIME