Php

來自 Invision 社區的多部分文本/html 電子郵件無法正確解析

  • July 5, 2021

首先,是的,我已經聯繫了 Invision 社區支持。是的,我是擁有有效許可證的付費使用者。我們來回走了幾個小時,他們只能說他們的軟體沒有問題,我需要修復我的伺服器。

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

當 Invision Communtiy 發送電子郵件時,From: 值顯示 Apache 或 Root 而不是論壇的名稱,並且電子郵件的 html 部分僅顯示程式碼而不是文本部分和 html 部分。

我也有我自己編寫的 php 程式碼,我使用同一伺服器上的 mail() 函式使用相同版本的 php 以及發送完美多部分電子郵件的所有內容。

比較 Invision 發送的電子郵件和我的程式碼發送的電子郵件的來源,我注意到 Invision 電子郵件上的 From: 標頭和 Content-Type: 標頭縮進了一個空格,而發送的電子郵件上的相同標頭由我的程式碼前面沒有任何空格。郵件客戶端似乎忽略了這些標頭。原始碼如下所示:

MIME-Version: 1.0
From: =?UTF-8?B?SGVsaW9OZXQ=?= <admin@example.com>
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: <E1lyJ2C-00028k-9y@example.com>

注意 From、Date、Auto-Submitted 和 Content-Type 前面的單個空格。

以下是從同一伺服器正確顯示的電子郵件中這些標頭的外觀:

MIME-Version: 1.0
From: "Example" <support@example.com>
List-Unsubscribe: <mailto:unsubscribe@example.com>, <https://www.example.com/unsubscribe/?c=3d9795e2646d156972cdf58655c758bd
Content-type: multipart/alternative;boundary=helio60db72e0c0005
Message-Id: <E1lyJJA-00036U-Px@example.com>
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 的程式碼可能是個壞主意,因為任何更改都可能在下次被覆蓋我更新。我可以更改任何伺服器設置來解決此問題嗎?如果您需要其他資訊,請告訴我,我會進行編輯。謝謝!

我可以通過編輯 Invision 的程式碼並將 PHP_EOL 的一次出現更改為“\r\n”來解決此問題。希望他們在他們軟體的未來版本中包含我的更改。

引用自:https://serverfault.com/questions/1068203