Webmail:HTML头部

6
HTML电子邮件是一个复杂的问题。作为发件人,决定发送什么内容以及如何在接收端显示是棘手且潜在危险的。
在接收方面,我们有网络邮件和常规电子邮件客户端。就我的目的而言,我认为“webmail”是指将HTML电子邮件作为HTML的一部分显示的任何内容,而常规电子邮件客户端是指在不同上下文中显示HTML电子邮件的内容(例如,操作系统和特定程序GUI)。
网页邮件应该如何处理电子邮件中的HTML头(,,<meta>等)?是否有规范存在,无论是实际标准还是事实标准?</br><div class="h-2"></div>我提问的动机是我们使用<a href="http://htmlpurifier.org/" rel="noreferrer">HTML Purifier</a>来净化我们的HTML,如果它的<a href="http://htmlpurifier.org/live/configdoc/plain.html#Core.CollectErrors" rel="noreferrer">Core.CollectErrors</a>功能报告更改,它们就会被报告。这种“报告”既是必要的......又令人沮丧。我们将一些报告的错误剥离出来,因为它们对我们的目的不重要,但HTML标头却是一个巨大的障碍: <strong>有人可能在他们的电子邮件中使用<code><link></code>,而我们会将其剥离。</strong>(HTML Purifier旨在用于HTML <em>片段</em>,而不是完整的文档) <p>在HTML电子邮件中使用像<code><link></code>这样的东西似乎<a href="http://www.acyba.com/en/support/forum/2-bug-report/17852-stylesheet-not-available-in-email-head.html" rel="noreferrer">是存在的</a>,并且有许多电子邮件客户端会在HTML头部发送<code><meta></code>标签(例如Outlook),但是在实际应用中如何处理呢?默默地将它们剥离是否安全(对于我们来说,这表示“非破坏性更改”),并在出现问题时将责任归咎于发送方,这是否合理?是否有人曾经以一种或另一种方式做出过这个决定?我的谷歌搜索能力很弱。 :(</p>

1
在我看来,发送完整的网页链接总是最好的选择。至于其他事情,比如针对 Salesforce 内外代表的电子邮件模板,我认为我们保留<head>、<meta>和<link>。Salesforce 有自己的 santizer,这可能有些具有挑战性... - tamarintech
@esnyder:感谢您的评估。这肯定是另一个选择;我们有意选择不去追求它,但如果其他方法都失败了,回到这个选择也许是值得的。所以谢谢!:D - pinkgothic
3个回答

1

我非常怀疑是否有任何规范指定HTML电子邮件应如何嵌入Webmail客户端。这主要是为了实现与现有Webmail提供商的相同功能,以提供查看HTML电子邮件的能力。我认为样式表是一个显著的例外,但我也怀疑大多数支持复杂样式的HTML邮件客户端在处理方式方面受到一定限制,因此不能做所有事情。我建议进行一些实验,并咨询像SquirrelMail这样的开源Webmail系统的源代码。

如果您担心信息丢失,许多客户端允许您下载原始HTML以离线查看。当然,它往往非常糟糕,所以我不知道为什么会有人那样做。


我们允许下载原始源代码。这主要取决于电子邮件中<head>的标准或事实标准是什么。SquirrelMail可能是尝试弄清楚这一点的好起点 - 所以感谢您! :) - pinkgothic
1
除了SquirrelMail之外,您还可以看看RoundCube、Horde和其他一些选项。这可能会耗费一些时间,但我认为您想要找到的事实标准基本上是现有Web邮件客户端的共识。 - vipw

1

1
最初我想说“但那是看问题的错误角度”...然后我意识到这实际上非常有趣;它间接地(有时直接地)展示了其他大型网络邮件服务商所接受的内容。谢谢!这表明HTML头部(但对于<style>,我们已经有了例外,所以这并不令人惊讶)应该被静默地删除。你同意这个评估吗? - pinkgothic
据我所理解,你是正确的。除了 <title> 之外。例如,如果邮件标题为空,您可以使用 <title> 中的内容。 - yogsototh

0

我在处理HTML电子邮件时的方法是编写类似于20世纪90年代的基本HTML - 表格布局,极少量的内联CSS(仅用于颜色),基本上就是这样。 我不知道现代客户端如何处理CSS定位,但人们仍在使用Outlook 2003,我相信它是基于运行IE6的可恶的呈现引擎 - 因此要选择最低公共分母。

我从未看到过任何像它的标准,我看到过一些电子邮件客户端(Gmail)剥离各种东西 - 包括CSS,而其他一些则忽略某些内容(Outlook和背景图像)。

理性地说,我想不出在电子邮件中使用任何元信息有什么用处 - 要让人们阅读你的邮件已经很难了,我怀疑甚至更少的人会查看源代码! 我总是包含一个标题标签,以防万一有任何东西想将其用作主题 - 但即使如此也是一次投机。

每当我查看服务器端请求邮件的方式时 - 尽管有一段时间了,但我从未注意到任何东西被缓存。 你打开邮件,请求会再次发起。 我相信自我上次检查后事情已经有所发展,但就我个人而言 - 我仍然倾向于让HTML电子邮件尽可能简单和精简。


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