我有以下代码:
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "First Name: ".'<strong>'.clean_string($cname).'</strong>'."'n";
$email_message .= "Email: ".clean_string($email_from)."'n";
然后发送我的电子邮件,我希望电子邮件的第一行是:
名字:输入的名字
但我得到的是:
名字:<strong>
输入姓名</strong>
知道为什么不理解html标签吗?
非常感谢
您必须将电子邮件定义为"HTML":
$headers = 'MIME-Version: 1.0' . "'r'n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "'r'n";
// Send...
mail($to, $subject, $message, $headers);
它会给出一个错误,因为您在字符串中使用了特殊字符。 使用函数htmlspecialchars,您可以将它们转换为html,然后它不会有问题。HTMLspecialchars将逃脱<并在您的情况下>并在您的情况下>
更多信息可以在 PHP 文档中找到http://fi2.php.net/manual/en/function.htmlspecialchars.php
默认情况下,电子邮件以文本电子邮件的形式发送。
要使电子邮件客户端将电子邮件正文解释为 HTML,您需要以正确的格式传递正文,该格式由"内容类型"字段指示:
Content-Type: text/html; charset=iso-8859-1
您可以在 PHP 的 mail() 函数的附加标头参数中插入此字段。
请参阅上面链接中的示例 #4,了解如何使用 PHP 发送 HTML 电子邮件。