PHP电子邮件到HTML问题


PHP Email To HTML issue

我试图用PHP发送电子邮件,但我得到一个奇怪的错误。

在PHP中我有:

<?php
mail($email_to, $email_subject, $headers, $message);
$email_to = 'example@example.com';
$email_subject = 'Hello World';
$headers = "MIME-Version: 1.0'r'n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1'r'n";
$message = '<html><body>';
$message .= '<table rules="all" style="border-color: #666;" cellpadding="10">';
$message .= "<tr><td><strong>Email:</strong> </td><td>" . strip_tags($_POST['test1']) . "</td></tr>";
$message .= "<tr><td><strong>Message:</strong> </td><td>" . strip_tags($_POST['test2']) . "</td></tr>";
$message .= "</table>";
$message .= '</body></html>';
   if(mail($email_to, $email_subject, $headers, $message)){
        echo 'sent';    
    }else{
        echo 'failed';
    }
?>

我收到一个纯文本:

<html><body><table rules="all" style="border-color: #666;" cellpadding="10"><tr><td>
<strong>Email:</strong> </td><td>test@test.com</td></tr><tr><td>
<strong>Message:</strong> </td><td>hello world</td></tr></table></body></html>
From: example@example.com
MIME-Version: 1.0
Content-Type: text/html; charset=ISO-8859-1

有人能指出我做错了什么吗?我在2个不同的服务器上进行了测试,结果相同。

应该是

 if(mail($email_to, $email_subject, $message, $headers)){ ...

你把$message和$headers的顺序搞错了

您混淆了$message和$headers的位置。试试这个代替mail($email_to, $email_subject, $message, $headers)

http://php.net/manual/en/function.mail.php