私は標準のhtmlフォームを持っています:
<form>
<input type="text" name="..." id="..." />
... etc
</form>
送信すると、次の PHP を使用して電子メールで送信されます。
<?php
$webMaster = ...email hardcoded here...;
$name = mysql_escape_string($_POST["name"]);
$phone = mysql_escape_string($_POST["phone"]);
$email = mysql_escape_string($_POST["email"]);
$message =mysql_escape_string($_POST["message"]);
$emailSubject = 'Contact Form Submission';
$body = <<<EOD
Name: $name
Email: $email
Phone: $phone
Message:
$message
EOD;
$headers = "From: $email\r\n";
$success = mail($webMaster, $emailSubject, $body, $headers);
header('Location: thankyou.html');
?>
これでメールは問題なく送信されますが、元のメッセージの新しい行は "\r\n" として出力されます。
たとえば、ユーザーはフォームに次のように入力します。
これ
は
a
テスト。
しかし、メールで配信されるものは次のとおりです。
この\r\n\r\nis\r\n\r\na\r\n\r\nテスト。
nl2br
PHPコードの複数の場所で使用しようとしましたが、何もうまくいきません。電子メールはプレーンテキストとして送信されているため、<br>
とにかく機能しません。今のところは保持したいのですがmysql_escape_string
、元のメッセージのキャリッジ リターンも保持します。