2016-03-19 19 views
0

私のウェブサイトの連絡フォームにPHPMailerを使用しています。 それはうまく動作しますが、唯一の問題は、 "\ n"を置くべきであるにもかかわらず、すべてがメッセージ本体(メッセージ、メッセージが送信されたURL、およびユーザーエージェント)の同じ行に置かれることですすべてが別の行にあります。 問題点は何ですか? おかげで、PHPMailerで電子メール本文の書式設定の問題

$mail->Body = $_POST['message']."\nFrom page: ". str_replace("http://", "", $_SERVER['HTTP_REFERER']) . "\n" . $_SERVER ['HTTP_USER_AGENT']; 
+0

私はディスプレイがあなたの電子メールクライアントに依存すると思う、単に "\ n"の代わりに "\ r \ n"を使ってみて、それが変わるかどうか確認してください。 – avip

+0

ありがとう、
を使用して問題を解決しました! – Greg

+0

'$ mail-> isHTML(false)'を設定するだけで、空白と改行が重要なプレーンテキストとして送信されます。 – Synchro

答えて

0

Windowsが\r\nキャリッジリターン、(タイプライター時代から)改行を使用し、「nixのオペレーティングシステムでは、ラインがそう、あなたがWindows環境でテストした可能性があり\nフィード使用しています。いずれにしても、デフォルトの出力はHTML形式なので、代わりに<br>を使用します。しかし、PHPMailerのaltBodyについてはわかりませんが、おそらくあなたが知ることができます。

1

あなたは、このような場合のために、HTML形式の電子メールを有効にしているように見える:

$mail->IsHTML(true); 

ソリューションはそうのように、 "BR > <" と "\ n" は交換することその後、次のとおりです。

$mail->Body = $_POST['message'].<br>From page: ". str_replace("http://", "", $_SERVER['HTTP_REFERER']) . "<br>" . $_SERVER ['HTTP_USER_AGENT']; 
関連する問題