2013-03-06 68 views
2

我的代码:PHP邮件头

$to  = '[email protected]'; 
$subject = $_REQUEST['subject'] ; 
$message = $_REQUEST['message'] ; 
$header = "From: [email protected]\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); 

当我发送邮件的特殊字符,如®ð-˚©-ʼ“æ,˚ˍðß©, 消息中,它的工作原理,但间距不再处理(每一个新的线路或空间被删除) 而第二个问题是特殊字符不显示在主题中。 他们只是输出如下:提前øʼªʼ

谢谢!

回答

8

的Content-Type:text/html的

如果设置了这个头,这意味着你必须发送HTML给用户。你可以决定使用类似TinyMCE的东西,让用户在Word风格的编辑器中编写消息并使用HTML输出。或者将您的标题设置为纯文本。

的Content-Type:text/plain的

编辑:试试这个

$to  = '[email protected]'; 
$subject = $_REQUEST['subject'] ; 
$message = $_REQUEST['message'] ; 
$header = "From: [email protected]\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); 
+0

感谢,这解决了问题,间距和主题的caracters。然而,该消息给我这样的:'¨®ð¥þƒˍ©ˇ ˚' – Laurent 2013-03-06 14:51:02

+0

更新我有一个建议的回答解决这个问题为好。让我知道它的工作 – TFennis 2013-03-06 14:58:33

+0

这也保持距离,但输出像'。˚ ˚'在主题和消息都 – Laurent 2013-03-06 15:01:59

0

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

尝试改变字符集= ISO为charset = UTF8 ...

此外,PHP的mail()函数工作正常,但如果你去像Swift Mailer一个更好的解决方案,你会发现很多更多的实惠和选择

+0

谢谢,但通过这样做我得到正确的间距,但输出像' ˍ ˇ ˚' – Laurent 2013-03-06 14:50:05

+0

请确保您在mail()函数中设置正确的字符集,并保存文件相同的字符集。 – Babblo 2013-03-06 15:02:23

1

不要使用电子邮件()函数。使用一个完整的类,为你做(正确)工作。

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

+0

当我看到类似'composer'或'autoload'的简单任务发送邮件时,我立即关闭该选项卡。这不是解决方案,这是一大堆新问题。 – movAX13h 2017-08-16 12:10:37

+0

当一些黑客会利用您的邮件()程序或者所有的电子邮件将进入垃圾邮件,你会重新打开的标签:)顺便说一下我使用的是普通的图书馆,没有自动加载,没有作曲家。只有2包括。 – Ghigo 2017-08-16 13:06:38

2

我已经使用这个头,这是为我工作...

$headers = ''; 
$headers = 'MIME-Version: 1.0'.PHP_EOL; 
$headers .= 'Content-type: text/html; charset=iso-8859-1'.PHP_EOL; 
$headers .= 'From: [email protected]<From: [email protected]>'.PHP_EOL;