我剛剛從 PHP 7.4 升級到 8.0。所有突然外發的郵件都會在自定義標題前添加空格。
這是代碼:
$headers = [
'From: Somebody <[email protected]>',
'Content-Type: text/html; charset="UTF-8"',
];
mail('[email protected]', 'Subject', 'Body', implode("\n", $headers));
升級前收到的訊息如下所示:
To: [email protected]
Subject: Subject
From: Somebody <[email protected]>
Content-Type: text/html; charset="UTF-8"
Message-Id: <E1n1vlx-0002C5-FC@hostname>
Body goes here
升級后,相同的代碼向接收方發送一條訊息,如下所示:
From: [email protected]
X-Google-Original-From: Somebody <[email protected]>
Content-Type: text/html; charset="UTF-8"
To: [email protected]
Subject: Subject
Message-Id: <E1n20bv-0007st-Eh@hostnme>
Body goes here
Content-Type 標頭在開頭添加了一個空格,因此郵件客戶端將忽略它。exim4 沒有完整傳出訊息的任何日志,所以我不確定下一步該轉向哪里。
uj5u.com熱心網友回復:
使用\r\n而不是\n用于您的內爆——RFC5321明確指定 CRLF 作為行終止符。我注意到 GmailX-Google-Original-From在您指定的兩個標題行之間添加了這個標題:
From: [email protected]
X-Google-Original-From: Somebody <[email protected]>
Content-Type: text/html; charset="UTF-8"
我敢打賭,這個空格是谷歌試圖在你的兩個之間插入這條線的人工制品,但實際上并不是你的兩個,因為行尾不正確。
uj5u.com熱心網友回復:
我認為 $headers 不應該是一個陣列,只需使用簡單的字串。你可以在這里看到示例#2 https://www.php.net/manual/en/function.mail.php
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/395523.html
