使用php发送邮件:标题被破坏

时间:2015-02-12 23:07:33

标签: php email header

我使用以下代码发送邮件:

$recipient="mymail@example.com";
$body="<html><body>This is magic</body></html>";
$subject="hi folks!";
$thisMail="sender@example.com";
$replyHeader = "MIME-Version: 1.0\r\nContent-Type: text/html; charset=UTF-8\r\nFrom: ".$thisMail. "\r\nReply-To: ".$thisMail."\r\n";
mail($sender, "Re:".$subject, $body, $replyHeader); 

邮件已发送,但是当我在客户端邮件程序中打开邮件时,标题似乎已被破坏。第一个新行(\ r \ n)之后的所有内容都显示在邮件中。还显示一些其他标题内容。因此,邮件的可见正文在邮件客户端中显示如下:

Content-Type: text/html; charset=UTF-8
From: sender@example.com
Reply-To: sender@example.com
Envelope-To: mymail@example.com
X-UI-Filterresults [... lots of stuff]

<html><body>This is magic</body></html>

那里出了什么问题?

显示它的一个(众多)示例&#34;应该&#34;以这种方式工作:http://css-tricks.com/sending-nice-html-email-with-php/

1 个答案:

答案 0 :(得分:2)

不是依赖mail函数,而是有一些非常好的库可以处理标题,附件,内容和发送给你。

其中一个 - 由Laravel和其他框架使用 - 是SwiftMailer,你应该检查一下。

他们也有一些好的documentation on setting headers

老实说,你可以从使用图书馆获得很多,而不是重新发明轮子。