MIME 多部分解析器

Posted

技术标签:

【中文标题】MIME 多部分解析器【英文标题】:MIME Multipart Parser 【发布时间】:2013-08-19 04:30:45 【问题描述】:

我工作的公司向我们的客户提供群发邮件功能 [双重选择加入,不是垃圾邮件,我保证],我们通过 AOL 的反馈循环收到了大量的报告,, Comcast、Yahoo 等。这些通常来自已注册、不再想要它、习惯于点击“退订”链接的人,[因为“这就是垃圾邮件发送者获取你的方式” ] 并简单地将所有邮件标记为垃圾邮件。

现在,这些 FBL 电子邮件遵循特定格式,其中邮件是多部分的,有一个或两个文本部分,然后附加原始邮件,通常会删除所有收件人信息。此附加电子邮件也是多部分的,包含取消订阅链接,但附加电子邮件中链接所在的部分是quoted-printable 编码的,并且该链接比quoted-printable 在一行中所允许的要长,所以它被淘汰了。有时该部分似乎采用 base64 编码,我认为如果客户使用像中文/日语/等这样的花哨语言,就会发生这种情况。

我需要的是一个 mime/multipart 数据解析器,它可以为我提供这些部分。 php 太有帮助了没有实现任何形式的多部分解析器,我可以在它们可怕的 IMAP 函数内部或处理多部分表单数据的 PHP 本身内部找到它。

有没有人知道我可以用什么来解决这个不用自己写的?我找到了one script,但它依赖于旧的 PECL 功能,该功能依赖于 PHP 的自定义编译,这不是该服务器的选项。

TL;DR: PHP 的 imap_* 函数将解析从服务器接收到的部分消息,但我需要解析电子邮件的部分附加到从服务器下载的电子邮件。

【问题讨论】:

【参考方案1】:

这家伙的剧本丑得像罪恶,但它完成了工作:

http://www.phpclasses.org/package/3169-PHP-Decode-MIME-e-mail-messages.html

【讨论】:

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

简单的 C++ MIME 解析器 [关闭]

MIME::Parser 无法正确解析多部分/混合部分

c# HTTP Multipart MIME 解析器

使用 groovy 配置的 spring 多部分解析器配置问题

.NET 中的 EDI 解析器

解析 MIME 邮件类型