0

Linux サーバーでホストされている Web サイトで PHP を使用してメールを送信するには、次のコードを記述する必要があります。メールは送信されますが、メッセージはマークアップ テキストではなく生の HTML として送信されます。コードは次のとおりです。

<?php
sendMail('name@domain.tld', 'Your recovered password', 'Your password is <b>ABC123</b>', 'kush.impetus@gmail.com');

function sendMail($from='name@domain.tld', $subject, $message, $to = 'name@domain.tld'){
    $message = '<html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title>'.$subject.'</title>
        </head>
        <body>'.$message.'</body>
        </html>';
    $message = preg_replace("#(?<!\r)\n#si", "\r\n", $message); 
    $message = wordwrap($message, 70);  

    $headers   = array();
    $headers[] = "MIME-Version: 1.0";
    $headers[] = "Content-type: text/plain; charset=UTF-8";
    $headers[] = "From: $from";
    $headers[] = "Reply-To: $from";
    $headers[] = "Subject: {$subject}";

    $additional_params = "-f $from -r $from";

    if(mail($to, $subject, $message, implode("\r\n", $headers)))
        echo 'Mail Sent';
    else
        echo 'Mail NOT Sent';
    exit();
}

?>

HTML メールを正しく送信するようにコードを修正するにはどうすればよいですか?

前もって感謝します

4

1 に答える 1

3

この行を変更

$headers[] = "Content-type: text/plain; charset=UTF-8";

$headers[] = "Content-type: text/html; charset=UTF-8";

このようにして、メール プログラムにそれが HTML であってプレーン テキストではないことを伝えます。

于 2012-07-01T06:12:25.113 に答える