2011-07-17 28 views
1

我有一個PHP應用程序,發送電子郵件給用戶。對於大多數用戶來說,這很好。Lotus Notes是不處理我的電子郵件正確

但是,使用Lotus Notes作爲其電子郵件客戶端的用戶正在收到一封電子郵件,該郵件似乎以我添加到郵件中的某些標頭開頭。

我試圖改變線路的結局,都無濟於事。

這裏是發送電子郵件的代碼。 (在循環中 - $行來自數據庫)。

$to = $row['email']; 
    $subject = $language['summary']; 
    $headers = "From: $from\n". 
     "Reply-To: $from"."\n" ; 
    if (!mail($to, $subject, $body,$headers,"-f$from")) { 
     echo("<p>Message delivery failed to $to</p>"); 
    } 

Lotus Notes將X-Mailer:PHP/5.3.2-1ubuntu4.7作爲內容的第一行!

有任何人任何想法,爲什麼,我怎麼能更改電子郵件正常工作?

編輯 - 8月1日 - 試過\ r \ n和PHP_EOL作爲行結尾。沒有任何工作與筆記。 Everythgin工作與每個其他測試MTA。

+0

你有一個例子實際發送的原始郵件?檢查X-Mailer標題之前是否沒有額外的新行。 – Kerr

+0

尚未 - 但系統已經工作了一段時間,除了Notes用戶之外沒有任何投訴。如果沒有詳細檢查,肯定會覆蓋Thunderbird,MS的郵件客戶端和谷歌,所以不會有太大的錯誤。我糾正了不一致的換行符,並沒有解決問題。 – Ian

+0

如何找到實際發送的原始郵件?我已經複製自己,我收到的郵件在各方面都是100%正常。所有行以CRLF結束,並且沒有任何意外的空白行。 – Ian

回答

0

您正在爲標題使用不一致的換行符。使用\r\n兩種:

$headers = "From: $from\n". 
    "Reply-To: $from"."\r\n" ; 

// Should be 
$headers = "From: $from\r\n". 
    "Reply-To: $from\r\n" ; 

根據MTA處理SMTP交易,沒有它上面可以更好地爲你行分解使用PHP_EOL常數:

$headers = "From: $from" . PHP_EOL . 
    "Reply-To: $from" . PHP_EOL ; 
+0

我知道行尾是不一致的。這是最新版本,並嘗試了很多谷歌搜索。我安排了一個測試(可能需要一兩天 - 我沒有註釋)。 – Ian

+0

讓那一週 - 那個需要測試的人正在度假! – Ian

相關問題