来自 Invision Community 的多部分文本/html 电子邮件无法正确解析

来自 Invision Community 的多部分文本/html 电子邮件无法正确解析

首先,是的,我已经联系了 Invision Community 支持。是的,我是付费用户,拥有有效许可证。我们来回沟通了几个小时,他们只说他们的软件没有问题,我需要修复我的服务器。

我正在使用 CentOS 7.9.2009、PHP 8.0.7、Apache 2.4.6 和 Exim 4.94.2。

当 Invision Communtiy 发送电子邮件时,发件人:值显示的是 Apache 或 Root,而不是论坛的名称,并且电子邮件的 html 部分只显示代码,而不是文本部分和 html 部分。

我也有自己编写的 php 代码,使用同一服务器上的 mail() 函数,使用相同版本的 php 以及发送完美多部分电子邮件的所有内容。

比较 Invision 发送的电子邮件和我的代码发送的电子邮件的源代码,我注意到 Invision 电子邮件上的 From: 标头和 Content-Type: 标头缩进了一个空格,而我的代码发送的电子邮件上的相同标头前面没有任何空格。这些标头似乎被邮件客户端忽略了。源代码如下所示:

MIME-Version: 1.0
 From: =?UTF-8?B?SGVsaW9OZXQ=?= <[email protected]>
 Date: Tue, 29 Jun 2021 19:04:36 +0000
 Auto-Submitted: auto-generated
 Content-Type: multipart/alternative; boundary="--==_mimepart_3d7970817fa277e018f1936f5865d582"; charset=UTF-8
 Content-Transfer-Encoding: 8bit
Message-Id: <[email protected]>

请注意“发件人”、“日期”、“自动提交”和“内容类型”前面的单个空格。

以下是来自同一服务器的正确显示的电子邮件上的标题:

MIME-Version: 1.0
From: "Example" <[email protected]>
List-Unsubscribe: <mailto:[email protected]>, <https://www.example.com/unsubscribe/?c=3d9795e2646d156972cdf58655c758bd
Content-type: multipart/alternative;boundary=helio60db72e0c0005
Message-Id: <[email protected]>
Date: Tue, 29 Jun 2021 19:22:08 +0000
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report

首先,这些空间会导致我看到的问题吗?

其次,如果问题在于空格,我该如何解决它们?

仔细研究 Invision 的代码,似乎他们使用了 PHP Pear Mail 包https://pear.php.net/package/Mail显然,编辑 Invision 的代码或 Pear 的代码可能不是一个好主意,因为任何更改都可能在下次更新时被覆盖。我可以更改哪些服务器设置来解决这个问题?如果您需要更多信息,请告诉我,我会进行编辑。谢谢!

答案1

我通过编辑 Invision 的代码并将 PHP_EOL 的一个出现位置更改为“\r\n”解决了此问题。希望他们能够在其软件的未来版本中纳入我的更改。

相关内容