【发布时间】:2010-05-02 15:48:19
【问题描述】:
我的网络应用程序必须通过电子邮件传送 db 生成的内容。 HTML 不需要包含 javascript,但必须包含图像和 CSS。
可以肯定的是,大多数用户都会在 Outlook 中查看此内容。用于电子邮件和 IE 的 html 的一般准则是否不同?
【问题讨论】:
我的网络应用程序必须通过电子邮件传送 db 生成的内容。 HTML 不需要包含 javascript,但必须包含图像和 CSS。
可以肯定的是,大多数用户都会在 Outlook 中查看此内容。用于电子邮件和 IE 的 html 的一般准则是否不同?
【问题讨论】:
Outlook 在 HTML 邮件方面的声誉并不好——例如,请参阅 Microsoft to ignore web standards in Outlook 2010 - enough is enough。
但实际上,它并不是唯一有问题的电子邮件客户端:生成 HTML 电子邮件通常意味着做一些与网页不同的事情......
例如,您可以看看这篇文章:Ensuring your HTML Emails Look Great and Get Delivered。它提出的几点是:
嗯...与网页上所说的完全相反,不是吗?
还有一条建议:始终在尽可能多的客户端中测试您的电子邮件(基于桌面的,如 Outlook、Thunderbird ……和基于 Web 的,如 yahoo、hotmail、gmail……) 尽可能!
【讨论】:
当然。在 HTML 电子邮件中使用 CSS 布局技术几乎是不可能的。所以...代码就像 1998 年一样。
<html>、<body> 或 <head>。Campaign Monitor's site 上有关特定支持的详细信息。他们也有more practical guidelines。这是e-mail client usage的列表。
【讨论】:
在 Outlook 2007 中,它倒退了一大步:http://www.sitepoint.com/blogs/2007/01/10/microsoft-breaks-html-email-rendering-in-outlook/
它现在使用 Word,而不是使用 IE 作为渲染引擎。只有最基本的 HTML 得到很好的支持或完全支持。
【讨论】:
一般来说,电子邮件用户代理倾向于与 CSS 和 HTML 的标准大相径庭,这是有充分理由的。一些电子邮件用户代理,例如 Thunderbird,声称在电子邮件中具有完整的 CSS 支持,但据我所知,没有电子邮件用户代理完全支持 HTML 标准。
HTML 是为 Web 设计的,特别是 HTTP 传输。它包含标头定义,所有位于
标记下的位,旨在在 HTTP 传输下运行。 HTML是一种标记语言,是结构化数据的文档。标记语言不是表示语言,但在电子邮件中使用 HTML 的唯一目的是为了表示。因此,HTML 在电子邮件中不起作用,并且难以访问。在 HTTP 中,用户向服务器请求资源,服务器以该资源响应。从服务器提供的文档的作者是能够在服务器上/向服务器创作文档的人。 HTTP 提供的资源只有一个作者。
在电子邮件中,许多反对 HTTP 的不同用户可以写入文档。文档并非源自服务器。由于文档并非源自服务器或已知的单用户标记语言,因此 CSS 会遇到包含和范围问题。这意味着电子邮件中的 HTML 和 CSS 与多人共同参与文档的电子邮件线程的概念完全不兼容,因为 CSS 不理解它应该被限制为单个通信实例。
由于这些不兼容的问题从未打算存在并且不打算更正,Microsoft 在支持电子邮件中尽可能少或尽可能多的 HTML 方面是完全正确的。没有解决这个问题的标准,所以没有违规。违规行为是在电子邮件中使用 HTML 开头。
我的建议是等到采用邮件标记语言。如果我们都非常幸运,一个特定的用户代理供应商可能会在不久的将来宣布采用邮件标记语言。据我所知,Mail Markup Language 是目前唯一能够满足电子邮件线程需求的功能性标记语言规范。
【讨论】: