创建HTML电子邮件时,我们应该使用html,head,body标签吗?


113

在我的电子邮件视图中,我通常只是做类似...

<dl>
   <dt>Name</dt>
   <dd>Value</dd>
</dl>

我应该这样吗?

<html>
  <head></head>
  <body>
    <dl>
       <dt>Name</dt>
       <dd>Value</dd>
    </dl>
  </body>
</html>

换句话说,就像我在标记独立文档一样?

我想我可以安全地假设任何基于Web的电子邮件客户端都会将其删除?

正确的方法是什么?


对于它的价值,雷鸟输出htmlhead以及body在它的信息标签。
palswim

Answers:


43

正确的方法是遵循HTML 标准。您可以验证HTML页面在此处

您的邮件客户端应遵循此规则,并丢弃不支持或不安全的内容(例如javascript)。

更新:在人们对您说服他们遵守标准表示愤怒之后,他们进行了数次否决,之后我将揭露一些遵循以下标准可能有益的理由:

  1. 愿意将您的邮件显示为整页的网络邮件可以保持您的格式。
  2. 网络邮件将简单地剥离不需要的标签和属性。但是你永远不会知道哪个。
  3. 查找遵循格式标准的(服务器端)组件比较容易,因此出错的可能性也较小。不遵循标准的解析器可能会中断,从而使您的电子邮件无法显示。

54
-1正确的方法是在相关客户中进行测试。尽管邮件客户端遵循这些标准,但实际上它们都不遵循。
丹·布鲁斯

27
mschonaker是正确的。如果每个人都开始遵循这些标准,那么用法将...标准化。否则,所有开发人员都必须按照当天的习惯实施hack(想想您是IE6!)。正确的方法是遵循标准。
cjcela

4
“ html电子邮件”没有标准。您指向的是html标准。
2014年

2
我同意这个答案,尽管许多客户端无论如何都会呈现无效的html,而在大多数客户端上呈现的最可靠的格式就是拥有有效的html!
markmnl

3
这是正确的答案。零件或主体的mime类型将为text / html。不论上下文如何,无论是Web浏览器还是电子邮件客户端,都应遵循这种类型的标准。@cjcela有一个正确的想法,如果我们都坚持支持IE8,那么网络将不会发展。如果我们不遵守标准,那么邮件中呈现的HTML将如何演变?您应该做的是遵守标准,但是要认识到heads中的样式表之类的东西可能会被忽略,并有一个很好的备用。
Brett Ryan

33

是否包括html / head / body标记完全无关紧要-它们始终是可选的,不会以任何方式影响文档的呈现。

最重要的是是否启用了怪癖模式。不幸的是,您无法在网络邮件设置中控制它。表格和嵌入式样式是您的朋友。最好的选择是在尽可能多的Webmail和桌面客户端中进行测试。



4
“它们始终是可选的,不会影响文档的呈现”,那根本就不是事实,许多呈现的容错性较低,可以很正确地选择不呈现无效的html。
markmnl

邮件客户端具有“在浏览器中查看此电子邮件”链接时会发生什么?由默认浏览器来呈现无效的HTML。
谢尔盖

13

此主题上的许多帖子都比较旧,因此不再准确。

如今,如果您打算做任何花哨的事情,HTML电子邮件应包含doctype,html和body声明。

关于这个主题有很多指南,可以帮助您学习如何正确编写HTML Email,但是其中大多数都忽略了doctype的细节,这就是我偶然发现您的问题的方式。

我建议您阅读以下2篇来自熟悉各种问题的知名团队的文章:

广告系列监控者的看法

通过电子邮件发送酸


好笑...您说这里的帖子很旧,并且在答案中添加了指向7岁博客文章的链接!
亚历克西斯·威尔克

2
我做到了,但是由于其权威性,精心挑选的博客文章是经过精心挑选的,他们当时颇具前瞻性。他们当时表达的观点当时很少见,尤其是当您与此处其他回复所共享的过时断言进行对比时。
kamelkev

@AlexisWilke和其中一个链接甚至 3年前就在这里提到过!但是至少现在在答案中,因此我可以尝试通过
投票

11

完全取决于接收它的电子邮件客户端。以我的经验,大多数将解释HTML的电子邮件客户端都不关心您是否具有完整的body / head / html标签等。实际上,对于大多数浏览器,甚至不需要这些标签。您需要使head标签包含样式/标题等。否则,它们本身并不是真正必需的。我从未见过它们是必要的。


3
html / head / body标签始终是可选的。
李乔(Josh Lee)2010年

10

我知道有一件事情是对的:使用HTML的开始和结束标签将有助于一般的垃圾邮件评分,因为许多这样的基于设备的过滤器和软件防火墙都会在使用html但不使用html的电子邮件中增加一个点。开头和结尾标签。


11
您是否有证据支持这一说法?
亚历克斯

10
过去几天,我只是通过在Gmail中“查看原始邮件”来观察到这种行为。在那里,我可以看到没有开头关闭标签的电子邮件的垃圾邮件得分:例如X-Spam-Level:* | X垃圾邮件报告:得分= 1.6测试= HTML_MESSAGE,HTML_MIME_NO_HTML_TAG,MIME_HTML_ONLY | X垃圾邮件得分:1-例如,请参见wiki.apache.org/spamassassin/Rules/HTML_MIME_NO_HTML_TAG
理查德·霍利斯

1
我也看到了这一点,有些公司将垃圾邮件隔离的阈值设置得很低,以致丢失HTML标签可能足以阻止您的电子邮件通过。该页面未列出可用的确切设置,但是我已经看到该软件在规则“ HTML_MIME_NO_HTML_TAG”中留下一条消息,并带有“仅HTML消息,但没有HTML标记”的描述。techlib.barracuda.com/BSF/SpamScoring
JHS

3

我认为没有正确的方法,而是尝试使尽可能多的电子邮件阅读器都能看到该电子邮件。

我通常会在Thunderbird中检查电子邮件,因为Outlook可以提供更多功能。

在Thunderbird中,这是电子邮件的HTML代码(我有一个扩展名显示html)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#ffffff" text="#000000">
        This is the body text<br>
<div class="moz-signature"><i><br>
<br>
Regards<br>
Alex<br>
</i></div>
</body>
</html>

顺便说一句,我会尽可能地将纯文本电子邮件用于所有网络表单。使用html +纯文本电子邮件的黑莓电子邮件有很多问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.