我正在为能够发送电子邮件的客户创建一个Web应用程序。我正在使用TinyMCE作为我的文本编辑器,它运行得非常好。我正在使用带有PHP Swiftmailer的sendmail()来处理电子邮件的实际发送。 Swiftmailer工作得很好。
我遇到的唯一问题是,当我收到电子邮件(在Gmail中)时,格式化无法正确呈现。我在电子邮件正文中收到以下内容:
<p>Oh Hello! This is a test <strong>message</strong>. Here is a link: <a href=\\\"http://www.google.com\\\">Google</a>.</p>\r\n<p> </p>\r\n<p> </p>\r\n<p> </p>\r\n<p>Line breaks!<br /> <br /> Shift breaks!</p>\r\n<p> </p>\r\n<p>Bye!</p>
链接呈现,就是这样。我错过了什么?
谢谢!
答案 0 :(得分:3)
查看文档中的第二个和第三个代码块,了解如何设置HTML Content-Type ...
答案 1 :(得分:2)
您需要以实际的HTML格式发送电子邮件。您正在发送HTML的纯文本。链接呈现是因为Google很好并自动链接它认为有效的URL。
我强烈推荐Pear邮件类。有方便的功能来设置HTML和纯文本邮件正文。
答案 2 :(得分:0)
在你的情况下我会做的是这样的事情:
<?php
$headers = "From: Me <me@myemail.com>\r\n";
$headers .= "X-Mailer: PHP/".phpversion()."\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; //States it is HTML Content
$headers .= "Content-Transfer-Encoding: 7bit\r\n";
$subject = "This is my subject";
$message = <<<MESS
<p>Oh Hello! This is a test <strong>message</strong>. Here is a link: <a href="http://www.google.com">Google</a>.</p>
<p> </p>
<p> </p>
<p> </p>
<p>Line breaks!<br /> <br /> Shift breaks!</p>
<p> </p>
<p>Bye!</p>
MESS;
if(mail("", $subject, $message, $headers) == True){
echo "Message Sent";
} else {
echo "Message NOT Sent"
}
?>
注意:GMAIL非常挑剔它如何显示电子邮件。最好创建一个Gmail帐户并自己测试它的外观。 Hotmail很相似