我的代码:
$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);
当我发送带有特殊字符(如®ð-˚©-ʼ“æ,˚ˍðß©
)的邮件时,在消息中,它工作,但不再处理空格(每个新行或空格被删除)。第二个问题是,特殊字符没有显示在主题中。它们只是输出如下:øʼªʼ
提前感谢!
的content - type: text/html
如果你设置了这个头,这意味着你必须向用户发送HTML。您可以决定使用像TinyMCE这样的东西,让用户在word样式的编辑器中编写消息,并使用来自该编辑器的HTML输出。或者将标题设置为明文。
编辑:Try this内容类型:文本/平原
$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);
我已经使用了这个头,这是为我工作…
$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;
不要使用mail()函数。使用一个完全精心设计的类来(正确地)为你完成这项工作。
http://code.google.com/a/apache-extras.org/p/phpmailer/你的代码的问题是因为特殊字符也需要"特殊"的字符集。
尝试将charset=ISO更改为charset=UTF8…
同样,PHP mail()函数工作得很好,但是如果你选择一个更好的解决方案,比如Swift Mailer