我使用以下代码发送邮件:
$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/
答案 0 :(得分:2)
不是依赖mail
函数,而是有一些非常好的库可以处理标题,附件,内容和发送给你。
其中一个 - 由Laravel和其他框架使用 - 是SwiftMailer,你应该检查一下。
他们也有一些好的documentation on setting headers!
老实说,你可以从使用图书馆获得很多,而不是重新发明轮子。