如何在不使用 Mailparse PHP 扩展的情况下解析电子邮件

Posted

技术标签:

【中文标题】如何在不使用 Mailparse PHP 扩展的情况下解析电子邮件【英文标题】:How to parse email without using Mailparse PHP extension 【发布时间】:2011-09-09 06:20:30 【问题描述】:

如何在不使用 Mailparse php 扩展的情况下解析 mime 电子邮件? 不要提供像 MimeMAilParser 类(它使用 Mailparse)或使用 "\n\n" 爆炸的解决方案。

【问题讨论】:

你刚刚排除了所有可能的选项 请问你为什么要排除这个解析器?在CloudMailin.com,我们经常收到关于用 PHP 解码电子邮件的帮助请求,所以最好知道为什么不应该使用它? 【参考方案1】:

如果您只需删除结束 php 标记 (? >),您的 Mailparse 和爆炸问题就会消失

【讨论】:

【参考方案2】:

奇怪的排除,但没关系。试试这些(来自 Google 机器):

Best way to handle email parsing/decoding in PHP?可能被骗

ezComponents 有一个邮件解析器,如 http://ezcomponents.org/docs/api/2009.2.1/introduction_Mail.html#parsing-a-message-set 所示

请注意,其中许多可能在后台使用 Mailparse 扩展。您对 Mailparse 的具体问题是什么?

【讨论】:

【参考方案3】:

尝试编写自己的解析器,例如查看此处https://github.com/breakermind/PhpMimeParser/blob/master/PhpMimeParser_class.php 剪切 mime 消息并获取您需要的部分。这是一个解析多部分 mime 消息的简单类。

【讨论】:

以上是关于如何在不使用 Mailparse PHP 扩展的情况下解析电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

text 如何在php7上安装mailparse

PHP Mailparse 阻塞非 ASCII 字符

PHP 警告:PHP 启动:无法加载动态库 '\xampp\php\ext\php_mailparse.dll' - 找不到指定的模块

有没有办法在不使用通知服务扩展的情况下将图像附加到推送通知?

在不使用 mod_rewrite 的情况下运行没有扩展的 PHP?

PHP - 在不知道扩展名的情况下检查文件是不是存在