2014-06-10 33 views
0

我有這樣的代碼:PHP的mail() - 「從」頭中斷髮送

$headers = ''; 
//$headers .= 'Reply-To: "site\'s name" <[email protected]>'."\r\n"; 
//$headers .= 'From: "site\'s name" <[email protected]>'."\r\n"; 
$headers .= 'MIME-Version: 1.0'."\r\n"; 
$headers .= 'Content-type: text/html; charset=utf-8'."\r\n"; 

mail($_POST['email'], stripslashes($result['title']), $message, $headers); 

只要這兩行註釋掉,它正確地發送電子郵件。否則 - 它不會。沒有提供任何錯誤,甚至沒有通知。它工作(未註釋的代碼)直到昨天,現在停止。任何想法,爲什麼會發生?我不能使用Swift或類似的東西,因爲它不是我的項目。

編輯:不正確引用,但這不是問題。 編輯:該死的,它只是服務器管理員,他們阻止所有郵件與來自不存在的帳戶頭。我不得不建立這樣的郵箱,我開始回來工作......

+1

取自PHP.net「如果沒有收到郵件,請嘗試使用LF(\ n)的只有一些Unix的郵件傳輸代理(最著名»qmail的),通過自動CRLF(這會導致加倍CR更換LF如果使用CRLF),這應該是最後的手段,因爲它不符合»RFC 2822。「 –

回答

2

site's name嘗試用正確的引用

$headers .= 'Reply-To: "site\'s name" <[email protected]>'."\r\n"; 
$headers .= 'From: "site\'s name" <[email protected]>'."\r\n"; 
+0

這不是:(真實網站的名稱沒有引號,它只是在這裏,我搞砸了。 – Avris

+0

你可以粘貼一個例子 –

0

您可以添加標題下面的代碼你有一個錯誤。刪除不需要的單引號和雙引號。只需簡單寫下面。

$headers = "From: site name <[email protected]> \r\n"; 
$headers .= "Reply-To: site\'s name <[email protected]> \r\n"; 
$headers .= "MIME-Version: 1.0\r\n";