0

我有以下代码:

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 标签吗?

非常感谢

4

3 回答 3

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);
于 2013-09-17T13:44:54.750 回答
0

默认情况下,电子邮件以文本电子邮件的形式发送。

要使电子邮件客户端将电子邮件正文解释为 HTML,您需要以正确的格式提供正文,这由Content-Type字段指示:

Content-Type: text/html; charset=iso-8859-1

您可以将此字段插入PHP 的mail() 函数的附加 headers参数中。

有关如何使用 PHP 发送 HTML 电子邮件,请参见上述链接中的示例 #4。

于 2013-09-17T13:47:48.803 回答
0

它给出了一个错误,因为您在字符串中使用了特殊字符。使用 htmlspecialchars 函数,您可以将它们转换为 html,然后就没有问题了。在您的情况下,htmlspecialchars 将转义 < 和 >

更多信息可以在 php 文档 http://fi2.php.net/manual/en/function.htmlspecialchars.php中找到

于 2013-09-17T13:46:05.053 回答