php缓冲输出,css和邮件
Posted
技术标签:
【中文标题】php缓冲输出,css和邮件【英文标题】:Php buffer output, css and mail 【发布时间】:2012-08-27 17:21:47 【问题描述】:目前我有一个发送邮件的脚本,脚本结果是几个 html 表:
$from = "prueba.com <noreply@prueba.com>";
$to = "myemail@gmail.com";
echo "<div>";
$contenido = ob_get_contents();
echo "</div>";
$cabeceras = "Content-type: text/html; charset=iso-8859-1 \r\n"
."MIME-Version: 1.0 \r\n"
."To: $cliente <$email> \r\n"
."From: prueba <prueba@example.com> \r\n";
mail($to,$subject,$contenido,$cabeceras);
ob_end_flush();
可能会给那封电子邮件添加css?因为我尝试了几种方法,但都没有奏效。
提前感谢您的合作
编辑:
这是我的密码http://www.mediafire.com/?bq9352xh6paji1d
【问题讨论】:
你的 $contenido 里有什么 ???您需要指定 css 内联 $contenido 是将 file_get_contents 制作成一个数组(具有 glob 函数的几个文件)并使用 strip_tags 的结果。结果是一些 html 表(文件一个 html 表)。 是的,但是如果你想设置 html 的样式,要么添加一个带有 css 的 HEAD 部分,要么将样式内联为 style="" ... 已经尝试过了,但由于某种原因,邮件结果不承认任何 css 规则。 您忽略了问题中的重要内容,您需要提供输出缓冲区中的内容...我想您可以通过使用模板将内容放入其中... 【参考方案1】:您可以在这里阅读:http://css-tricks.com/sending-nice-html-email-with-php/
【讨论】:
【参考方案2】:也许你想要这样:(使用ob_get_clean()
)
ob_start();
echo "<div>";
// more html
echo "</div>";
$contenido = ob_get_clean();
并失去最后一个ob_end_flush();
测试:
$from = "prueba.com <noreply@prueba.com>";
$to = "myemail@gmail.com";
ob_start();
echo "<div>";
echo "<table border='1'><tr><td>TEST</td></tr></tr>";
echo "</div>";
$contenido = ob_get_clean();
$cabeceras = "Content-type: text/html; charset=iso-8859-1 \r\n"
."MIME-Version: 1.0 \r\n"
."To: $cliente <$email> \r\n"
."From: prueba <prueba@example.com> \r\n";
mail($to,$subject,$contenido,$cabeceras);
【讨论】:
这个脚本只发送了 TEST 表,但没有将脚本结果存储在缓冲区中。 因为你需要添加html见// more html
?在该块中,您应该添加HTML
代码。明白了吗?
不是因为de mail内容是缓冲区的结果,是所有脚本操作的结果。
那么你需要在你的HTML代码开始的地方添加ob_start()
和你的HTML结束的$contenido = ob_get_clean();
,它将在$contenido
中包含所有html,现在你明白了吗? :)
你能看到我的代码吗(我编辑我的问题)好吗?如果你看的话,我希望你能理解;)以上是关于php缓冲输出,css和邮件的主要内容,如果未能解决你的问题,请参考以下文章