HTML邮件的Doctype声明

9
哪种DOCTYPE是适用于HTML邮件的正确的DOCTYPE?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

这完全取决于文档本身的内容。使用与内容匹配的任何文档类型。 - alzee
我正在使用第一个。我在某个地方读到正确的文档类型是“Transitional”。我不确定它是HTML 4.01 Transitional还是XHTML 1.0 Transitional。但大多数HTML电子邮件教程都使用第二个,即XHTML 1.0 Transitional。 - Sharmile
doctype 只是简单地告诉解析器如何解释接下来的 HTML。如果 HTML 文档本身是 4.01,使用 4.01;如果是 XHTML,则使用 XHTML 等。这与电子邮件无关。 - alzee
我很想看到一个反映2023年主要邮件客户端当前状态的答案,或者“我们能使用<!DOCTYPE html>吗?” - LukasKroess
3个回答

7
现在在HTML电子邮件中,DOCTYPE声明只有微小的差异。虽然只是微小的差异,但仍建议在发送之前通过Email on Acid或Litmus或任何其他测试软件测试您的电子邮件,以确保跨客户端兼容性并找到任何未预料到的问题。如果您未声明doctype或body标记,则可能会在某些客户端上严重影响电子邮件的不同部分。现在最流行的DOCTYPE是HTML 5 doctype(),使用起来几乎没有问题。最受欢迎/最安全的doctype曾经是 doctype。这仍然可以使用,但可能会限制电子邮件的不同功能,因为它引用了旧版本的HTML。有关详细信息,请参见litmus的论坛帖子:https://litmus.com/community/discussions/39-explanation-of-doctype-html-attributes-and-meta-tags-in-email-head

4
这是我使用的东西。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

我每天编写电子邮件,这是确切目标(salesforce)提供给我们的标题。我们公司有姐妹品牌,他们也都使用这个,所以我认为这是标准的。


0

更原始的电子邮件阅读器根本无法处理DOCTYPE,而是完全将其从电子邮件中剥离出来,或者仅删除字符串“!DOCTYPE”,并保留其余HTML内容。您最终会在电子邮件开头看到奇怪的东西:

< HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

因为单词!DOCTYPE被删除了,但是没有删除空格,所以它向读者显示了损坏的代码。

电子邮件的其余部分通常会正常显示。

虽然这显然是脚本编写者的编程错误,但我已经看到了许多具有完全相同错误的脚本。这通常是因为他们只是剥离HTML标记,而不允许使用!DOCTYPE。

除非您正在使用与用户不同的字符集,否则电子邮件客户端似乎可以在没有它的情况下处理您的电子邮件,并且有时在声明时会遇到问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接