-1

私は標準の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テスト。

nl2brPHPコードの複数の場所で使用しようとしましたが、何もうまくいきません。電子メールはプレーンテキストとして送信されているため、<br>とにかく機能しません。今のところは保持したいのですがmysql_escape_string、元のメッセージのキャリッジ リターンも保持します。

4

1 に答える 1

1

ヘッダーを追加してみてください。次のように設定Content-typeMIME-Versionます。

$headers  = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
$headers .= "From: $email" . "\r\n";
于 2015-02-02T04:26:36.727 に答える