【问题标题】:How to style email body in php [duplicate]如何在php中设置电子邮件正文的样式[重复]
【发布时间】:2012-04-10 15:22:55
【问题描述】:

我想为邮件正文设置样式。我尝试了以下方法来设置邮件正文的样式。但是都没有用

1) 使用的外部样式表 style.css

td{padding:10px;}   

ma​​il.php

<link rel="stylesheet" href="style.css"></link><table><td>....</td></table>

2) 定义的内部样式表:

ma​​il.php

 <style type="text/css">
td{
    padding-bottom:8px;
}

</style>
<table><td>....</td></table>

我知道,内联样式通过 &lt;td style='padding-bottom:8px'&gt; 工作,但我有很多表,内联样式不是一个好主意,有什么变通方法这样就不需要为每个元素定义样式

【问题讨论】:

  • 电子邮件客户端对他们将呈现和不呈现的 CSS 内容非常非常挑剔。最好的办法是找到关于电子邮件样式的综合指南(希望我能想到一个链接,但我想不到)。
  • 我找不到。我发现独立的电子邮件客户端对安全性持偏执态度,但至少会呈现大多数 HTML。疯狂的事情是当您尝试支持免费提供者时。 Gmail 会去除背景图片,但会留下颜色。 Hotmail 将所有背景颜色变为灰色。雅虎做了别的事情。让我想发送一封纯文本电子邮件,上面写着“将此 URL 复制到您的浏览器”。
  • 旧版本的 Outlook 将忽略大多数 css 和现代 css 定位..

标签: php html css email


【解决方案1】:

对于电子邮件,通常最安全的选择是表格和内联样式(网页设计中不应该做的所有事情)。

$mailBody = '<html><body>';
$mailBody .='<table width="100%"><tr>';
$mailBody .='<td style="padding:10px"></td>';
$mailBody .='<td style="padding:10px"></td>';
$mailBody .='<td style="padding:10px"></td>';
$mailBody .='</tr></table>';
$mailBody .='</body></html>';

遗憾的是,内部和外部样式表并不总是适用于不同的电子邮件客户端。

【讨论】:

    【解决方案2】:

    通常情况下,表格是要走的路。不幸的是,要获得最广泛的支持,您需要使用内联样式。很多做级联,所以你不必为每个元素设置样式。例如,在 table 元素上使用 font-family 会将其应用于 td 元素。

    Campaign Monitor 在此处http://www.campaignmonitor.com/css/

    中提供了对最常见电子邮件客户端 CSS 支持的有用概述

    电子邮件样板文件 (http://htmlemailboilerplate.com/) 还将为您提供一个模板,您可以从它开始,它会教您如何避免许多电子邮件客户端的许多常见缺点。

    【讨论】:

      【解决方案3】:

      有一个解决方案。请查看:CSS to Inline style

      还有另一个库可以完成相同的任务。 http://www.pelagodesign.com/sidecar/emogrifier/

      基本上这些库将您的 css 样式规则转换为内联样式,以便所有电子邮件客户端都能正确呈现您的 HTML 文档

      【讨论】:

        猜你喜欢
        • 2014-10-26
        • 2013-10-02
        • 2011-05-22
        • 1970-01-01
        • 2021-11-17
        • 1970-01-01
        • 1970-01-01
        • 2012-03-04
        • 2018-01-30
        相关资源
        最近更新 更多