我有以下代码:
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标签不被理解?
非常感谢
答案 0 :(得分:3)
您必须将电子邮件定义为“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);
答案 1 :(得分:0)
它会出现错误,因为您在字符串中使用了特殊字符。使用函数htmlspecialchars你可以将它们转换为html然后它将没有问题。 htmlspecialchars将逃脱&lt;和&gt;在你的情况下
更多信息可以在php文档中找到 http://fi2.php.net/manual/en/function.htmlspecialchars.php
答案 2 :(得分:0)
默认情况下,电子邮件将作为文本电子邮件发送。
要使电子邮件客户端将电子邮件正文解释为HTML,您需要以正确的格式提供正文,这由 Content-Type 字段指示:
Content-Type: text/html; charset=iso-8859-1
您可以在PHP mail() function的其他标题参数中插入此字段。
请参阅上面链接中有关如何使用PHP发送HTML电子邮件的示例#4。