我有一个联系表单,想要用HTML格式化输出电子邮件并使用charset utf-8,因为我需要一些特殊字符。我有以下代码,但它不起作用。 编辑:电子邮件已发送,但没有html和utf-8。
<?php
if ($_POST["email"]<>'') {
$ToEmail = 'contact@domain.com';
$EmailSubject = 'Email Subject';
$mailheader = 'From: donotreply@domain.com' . "\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");
?>
答案 0 :(得分:0)
尝试从
更改标题$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
to
$headers .= "Content-Type: text/html; charset=iso-8859-1\r\n";
更好地使用PHPMailer这将允许您通过SMTP服务器发送邮件
答案 1 :(得分:0)
我发现唯一错误的是代码的顺序。通过在Content-Type下面移动'X-Mailer: PHP/' . phpversion();
,邮件编码正确。
这就是我修复它的方法:
$mailheader = 'From: donotreply@domain.com' . "\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();