【问题标题】:html email with background-image style not shown未显示背景图像样式的 html 电子邮件
【发布时间】:2011-06-09 01:25:04
【问题描述】:

我正在创建一个电子邮件模板,它必须显示来自外部网站的图像。我已经放置了一些 <img> 标签来渲染图像,并且有一些 <td> 标签在元素的内联 css 中设置了 background-image 属性。

现在,当在 Outlook 中收到电子邮件时,图像不会显示(这是预期的,因为图像没有嵌入)。我单击下载图像以正确查看图像。 <IMG> 标记中的图像仅显示,<TD> 的背景图像不呈现。

对解决这个问题有什么看法?

谢谢!

【问题讨论】:

标签: email html-email


【解决方案1】:

我终于找到了答案。

Outlook 2007 不使用 Internet Explorer 的呈现引擎来加载 HTML 内容。相反,它使用 Word 2007 HTML 和 CSS 功能。

因此不支持背景图像等 CSS 属性。因此,无法使用标准 CSS 标记为 Outlook 中的 HTML 元素设置背景图像。

更多信息请访问http://msdn.microsoft.com/en-us/library/aa338201(v=office.12).aspx

【讨论】:

    【解决方案2】:

    Outlook 不支持背景图片。作为最佳实践,您永远不应该在 HTML 电子邮件中使用背景图片。如果您必须有背景,您可以使用和图像 PLUS 纯色。那些支持背景图片的邮件客户端将获得图片,不支持的将退回到纯色。

    【讨论】:

      【解决方案3】:

      实际上有一种方法可以在 Outlook 的 HTML 电子邮件中使用背景图像。

      正如 Chaitanya 所说,它不能用 CSS 完成,但可以通过 VML 完成。

      该技术比使用background: url(....) 更复杂一些,而且我不会像使用 CSS 技术那样频繁地使用它(如果它在 Outlook 中有效)。但它非常有用。

      我已在多个广告系列中成功使用它。

      此处的完整说明:包括支持此技术的电子邮件客户端列表。

      http://www.campaignmonitor.com/forums/viewtopic.php?pid=14197

      【讨论】:

        【解决方案4】:

        此外,这是来自 Campaign Monitor 的指南:http://www.campaignmonitor.com/css/,它对我很有帮助。

        【讨论】:

          【解决方案5】:

          有一种显示 HTML 图像的方法。

          正确的 html 电子邮件在 Outlook 中呈现为 MSWord 文档。

          我从这个https://*.com/a/12693917/413032 帖子中得到了解决方案。

          所以我们需要一个替代品。

          事实上,您可能会在 MSWORD 中打开您的 html 电子邮件,然后发现似乎有问题的地方并考虑可以替代的想法。

          这就是我所做的;

          1. v命名空间添加到html标签

              < html xmlns:v="urn:schemas-microsoft-com:vml"
            
          2. v的样式添加到头块

            < head >
             <style type="”text/css”">
                   v\:* { behavior: url(#default#VML); display:inline-block}
             </style>
            
          3. 在表格或您需要的地方添加您的 MSWord 备用

            <table style="background-image: url('https://e-telesaglik.com/images/email/canvas-bg.jpg');background-repeat:no-repeat;" cellpadding="0" width="960">
                        <!--[if gte vml 1]>
                                <v:shape 
                                    stroked='f'
                                     style='position:absolute;margin-left:-90pt;margin-top:-1.55pt;     
                                            z-index:-503306481;
                                            visibility:visible;
                                            width:720pt;
                                            height:475pt;           
                                            top:0;
                                            left:0;
                                            border:0;                                               
                                            '>
                                    <v:imagedata src="https://e-telesaglik.com/images/email/canvas-bg.jpg"/>
                                </v:shape>
                        <![endif]-->
                            <tbody> ....
            

          就是这样。 当然这将是一个 MSWord 渲染。还有更多,正如您所注意到的,我们使用绝对定位...

          无论如何,这是一种解决方法,并以某种方式解决了问题。 我们希望有一天 MS-Outlook 能够使用 Web 浏览器而不是 MS-Word 来呈现 html 电子邮件。

          【讨论】:

            【解决方案6】:

            这适用于 Gmail,

            我尝试在电子邮件通讯中显示带有图像的 div,尝试inline css,发送电子邮件指南here

            【讨论】: