为什么我的PHP电子邮件没有HTML和utf-8?
问题描述:
我有一个联系表,并希望格式化HTML输出电子邮件,并使用字符集utf-8,因为我需要一些特殊字符。我有以下代码,但它不起作用。 编辑:电子邮件发送,但没有html和utf-8。为什么我的PHP电子邮件没有HTML和utf-8?
<?php
if ($_POST["email"]<>'') {
$ToEmail = '[email protected]';
$EmailSubject = 'Email Subject';
$mailheader = 'From: [email protected]' . "\r\n" .
'Reply-To:' .$_POST["email"]. "\r\n" .
'X-Mailer: PHP/' . phpversion();
'MIME-Version: 1.0'."\r\n".
'Content-Type: text/html; charset=utf-8'."\r\n".
$MESSAGE_BODY .= "<b>Navn:</b> ".$_POST["name"]."\r\n";
$MESSAGE_BODY .= "<b>Telefon:</b> ".$_POST["telephone"]."\r\n";
$MESSAGE_BODY .= "<b>Email:</b> ".$_POST["email"]."\r\n\r\n";
$MESSAGE_BODY .= "".nl2br($_POST["message"])."\r\n";
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure");
?>
答
我发现错了的唯一的事情就是秩序代码。通过在Content-Type下移动'X-Mailer: PHP/' . phpversion();
,邮件编码正确。
这是我如何固定它:
$mailheader = 'From: [email protected]' . "\r\n" . 'Reply-To:' .$_POST["email"]. "\r\n" . 'MIME-Version: 1.0'."\r\n". 'Content-Type: text/html; charset=utf-8'."\r\n". 'X-Mailer: PHP/' . phpversion();
+0
发送邮件之前请尝试以下编码。 utf8_encode($ MESSAGE_BODY); –
不工作?你希望我们猜测__how__它不工作? –
那么,该代码_states_的内容是类型的HTML,但最有可能的'$ _POST [“message”]'不包含这种标记,但纯文本。没有神奇的小精灵会转换和增强你的文本,因为你说它是HTML标记。您需要创建有效的标记,以及文档标签周围的内容。否则,您可能会冒中间电子邮件服务器“修复”您的信息。 – arkascha
它也开放标题注入。 –