3

これに対するいくつかの解決策を見てきましたが、どれもうまくいきませんでした。

<?php
    $name = $_POST['name'] . "<br>" ;
    $email = $_POST['email'] . "/r/n";
    $phone = $_POST['phone'] . "/r/n";
    $message = $_POST['message'] . "/r/n";
    $from = 'From: email@place.com';
    $to = 'mail@otherplace.com';
    $subject = 'subject here';

    $body = "From: $name E-Mail: $email Phone: $phone $message"
?>
<?php
    if ($_POST['submit']) {
        if (mail ($to, $subject, $body, $from)) {
            echo '<p>Your message has been sent</p>';
        }else{
            echo '<p>Something went wrong, go back and try again.</p>';
        }
    }
?>

これにより、すべてが 1 行に表示されるだけでなく、/r/n と
タグが単なるテキストのように表示されます。

4

2 に答える 2

13

単純:

/r/nすべてを変更する必要があります\r\n

を効果<br>的にするには、これをheaders

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

mail()およびの詳細については、PHP のマニュアルを参照してください。headers()

于 2013-10-30T04:50:41.640 に答える
2

HTML メールを送信していないため、機能しませ<br>ん。HEREDOCブロックで本文テキストを単純に構築しないのはなぜですか。

$name = isset($_POST['name']) ? $_POST['name'] : 'Not set';
$email = isset($_POST['email']) ? $_POST['email'] : 'Not set';
$phone = isset($_POST['phone']) ? $_POST['phone'] : 'Not set';
$message = isset($_POST['message']) ? $_POST['message'] : null;

$body = <<<_TXT
From: $name
E-mail: $email
Phone: $phone

$message
_TXT;
于 2013-10-30T04:54:22.190 に答える