【问题标题】:How to build HTML email using CSS?如何使用 CSS 构建 HTML 电子邮件?
【发布时间】:2011-03-28 05:18:03
【问题描述】:

我可以像通常构建 html 页面一样构建 html 电子邮件吗?
我想将电子邮件正文设置为所有 html 代码的字符串。

邮件正文offcourse会很复杂,所以我需要使用大量的CSS来构建一页html电子邮件。

我该怎么办?
在哪里存储 css 代码?
我可以只包含来自我的服务器的外部 .css 文件吗?

【问题讨论】:

  • 您可以在html中包含css。
  • 你的意思是,在样式标签中回显 css,将整个电子邮件 html 正文作为字符串?!

标签: css html-email


【解决方案1】:

尽管这听起来完全倒退,而不是我推荐的网页,但在电子邮件中使用 css 的最佳方式是全部内联在 style 属性中。原因是许多电子邮件应用程序,尤其是像 gmail、yahoo、hotmail 等的 web 邮件,不会尊重您的 css 类声明,并且通常会删除您的所有 css,除非它是内联的。很多时候,整个 <head> 都会被删除,而且如果您在电子邮件中包含 <body> 标记,它通常会被删除。

如果您刚刚开始创建 HTML 电子邮件,我强烈建议您使用 Litmus 或在各种电子邮件客户端上进行手动测试。不过,Litmus 或其他类似服务将为您节省大量时间。

【讨论】:

  • 顺便说一下,Litmus 不是免费的。我可以使用 litmus 服务免费测试电子邮件吗?
  • 是的,我知道它不是免费的。我不知道有什么可以与免费的 Litmus 相媲美的。您绝对不必使用它,但它确实可以为您节省一些时间。否则,我建议您至少在 gmail、hotmail 和 Outlook 中检查您的电子邮件,以获得良好的反馈。
【解决方案2】:

您可以包含外部 css 文件,但它仅在网络连接时有效,最好包含 css inline。

【讨论】:

    【解决方案3】:

    将 Content-Type 标头设置为 text/html 以发送 HTML 邮件。

    最好将 CSS 样式直接内联到 HTML 中。或者只是在需要样式的元素上使用“样式”属性。出于安全原因,大多数邮件客户端默认不会呈现外部图像和样式。我知道您可以将图像附加到邮件中(或选择将它们放在远程服务器上 - 但需要注意的是,邮件应用程序会提示用户下载)。您也许可以将 .css 文件作为附件。

    大多数发送 HTML 邮件的客户端也使用 multipart/alternative MIME 格式。如果非 HTML 客户端收到这样的邮件,他们仍然可以将邮件呈现为纯文本。

    这是一个真实的邮件示例

    Return-Path: <blah@blah.com>
    Received: from selbiepc (11-11-111-11.foob.ga.baloneynet.net [11.11.111.11])
            by mx.foobar.com with ESMTPS id f2sm4177017ybh.22.2011.03.27.22.24.02
            (version=SSLv3 cipher=OTHER);
            Sun, 27 Mar 2011 22:24:03 -0700 (PDT)
    Message-ID: <11111111111111111111111111111111@selbiepc>
    From: "Selbie" <blah@blah.com>
    To: <blah@blah.com>
    Subject: mail with html in it
    Date: Sun, 27 Mar 2011 22:23:33 -0700
    MIME-Version: 1.0
    Content-Type: multipart/alternative;
        boundary="----=_NextPart_000_0011_01CBECCD.9BE136B0"
    X-Priority: 3
    X-MSMail-Priority: Normal
    Importance: Normal
    
    
    This is a multi-part message in MIME format.
    
    ------=_NextPart_000_0011_01CBECCD.9BE136B0
    Content-Type: text/plain;
        charset="iso-8859-1"
    Content-Transfer-Encoding: quoted-printable
    
    This is an HTML mail with various formatting in it.  It will still =
    render fine by non-html clients.
    
    
    
    
    ------=_NextPart_000_0011_01CBECCD.9BE136B0
    Content-Type: text/html;
        charset="iso-8859-1"
    Content-Transfer-Encoding: quoted-printable
    
    <HTML><HEAD></HEAD>
    <BODY dir=3Dltr>
    <DIV dir=3Dltr>
    <DIV style=3D"FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: 12pt">
    <DIV>This is an <STRONG>HTML mail</STRONG> with <FONT =
    color=3D#ff0000>various=20
    formatting</FONT> in it.&nbsp; It will still render <FONT=20
    size=3D2><EM>fine</EM></FONT> by non-html <U>clients</U>.</DIV>
    <DIV>&nbsp;</DIV>
    <DIV>&nbsp;</DIV>
    <DIV>&nbsp;</DIV>
    <DIV>&nbsp;</DIV></DIV></DIV></BODY></HTML>
    
    ------=_NextPart_000_0011_01CBECCD.9BE136B0--
    

    【讨论】:

      【解决方案4】:

      Campaign Monitor 提供了关于 CSS 是什么以及在各种电子邮件客户端中不可用的资源:@​​987654321@

      通常,在检查此图表后,您会发现构建 HTML/CSS 电子邮件的最佳做法与网页的最佳做法大不相同。

      【讨论】:

      • 谢谢。这对我帮助很大。现在我可以根据“电子邮件客户端中的指南支持”表编写我的内联样式 html。
      猜你喜欢
      • 2010-11-14
      • 2010-11-12
      • 2014-09-23
      • 1970-01-01
      • 2015-07-22
      • 2019-11-19
      • 2012-01-04
      • 2017-02-14
      相关资源
      最近更新 更多