2011-07-17 19 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のメールクライアントとGoogleを確実に含める詳細なチェックがなければ、間違いはない。私は矛盾した行区切りを修正しましたが、それは解決できませんでした。 – Ian

+0

実際に送信された生のメールはどのようにして見つけることができますか?私は自分自身をコピーして、私が受け取ったメールはあらゆる点で100%正常です。すべての行はCRLFで終わり、予期しない空白行はどこにもありません。 – Ian

答えて

0

ヘッダーに一貫性のない改行が使用されています。

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

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

は、SMTPトランザクションを処理するMTAによっては改行のためにあなたが PHP_EOL定数を使用することが良い仕事があり、上記失敗:両方のため \r\nを使用

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

私は行末が矛盾していることを知っています。これは最新バージョンで、多くのグーグルの後に試しました。私はテストを準備しています(1日か2日かかります - 私にはノートがありません)。 – Ian

+0

テストをする必要のある人は休暇中です! – Ian