5

我的代码:

$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);

当我在邮件中发送带有特殊字符(例如®ð-˚©-ʼ“æ,˚ˍðß©, )的邮件时,它可以工作,但不再处理空格(每个新行或空格都被删除)第二个问题是特殊字符未显示在主题中。他们只是输出如下:øʼªʼ

提前致谢!

4

4 回答 4

11

内容类型:文本/html

如果您设置此标头,则意味着您必须将 HTML 发送给用户。您可以决定使用 TinyMCE 之类的东西,让用户在 Word 样式的编辑器中编写消息,并使用其中的 HTML 输出。或者将您的标题设置为纯文本。

内容类型:文本/纯文本

编辑:试试这个

$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);
于 2013-03-06T14:41:42.893 回答
3

我已经使用了这个标题,这对我有用......

$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; 
于 2014-07-10T06:29:15.557 回答
1

不要使用 mail() 函数。使用为您完成(正确)工作的精心制作的课程。

http://code.google.com/a/apache-extras.org/p/phpmailer/

于 2013-03-06T15:16:45.720 回答
0

您的代码的问题是因为特殊字符也需要“特殊”字符集。

尝试将 charset=ISO 更改为 charset=UTF8...

此外,PHP mail() 函数可以正常工作,但如果您选择Swift Mailer等更好的解决方案,您会发现更多的好处和选择

于 2013-03-06T14:45:30.277 回答