我的代码:
$to = 'example@example.com';
$subject = $_REQUEST['subject'] ;
$message = $_REQUEST['message'] ;
$header = "From: noreply@example.com\r\n";
$header.= "MIME-Version: 1.0\r\n";
$header.= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$header.= "X-Priority: 1\r\n";
mail($to, $subject, $message, $header);
当我发送包含®ð-˚©-ʼ“æ,˚ˍðß©
等特殊字符的邮件时,
在消息中,它工作但不再处理间距(每个新行或空格被删除)
第二个问题是特殊字符不会显示在主题中。
它们的输出方式如下:øʼªʼ
提前致谢!
答案 0 :(得分:9)
内容类型:text / html
如果设置此标题,则表示您必须向用户发送HTML。您可以决定使用像TinyMCE这样的东西让用户在Word样式的编辑器中编写消息并使用它的HTML输出。或者将标题设置为明文。
Content-Type:text / plain
编辑:试试这个
$to = 'example@example.com';
$subject = $_REQUEST['subject'] ;
$message = $_REQUEST['message'] ;
$header = "From: noreply@example.com\r\n";
$header.= "MIME-Version: 1.0\r\n";
$header.= "Content-Type: text/plain; charset=utf-8\r\n";
$header.= "X-Priority: 1\r\n";
mail($to, $subject, $message, $header);
答案 1 :(得分:2)
我使用过此标题,这对我有用......
$headers = '';
$headers = 'MIME-Version: 1.0'.PHP_EOL;
$headers .= 'Content-type: text/html; charset=iso-8859-1'.PHP_EOL;
$headers .= 'From: webmaster@example.com<From: webmaster@example.com>'.PHP_EOL;
答案 2 :(得分:1)
不要使用mail()函数。使用一个完全精心设计的课程,为您完成(正确)工作。
答案 3 :(得分:0)
你的代码的问题是因为特殊字符也需要“特殊”字符集。
尝试将charset = ISO更改为charset = UTF8 ...
此外,PHP mail()函数可以正常工作,但是如果你想要更好的解决方案,如Swift Mailer
,你会发现更多的好处和选项。