您好我正在构建一个基于Web的小型电子邮件客户端。我在显示HTML邮件时遇到问题。显示HTML邮件涉及哪些最佳做法?我找到的一些东西
答案 0 :(得分:1)
首先,不允许所有CSS和HTML标记很重要。我会查找该文件并允许一组已定义的HTML标记和CSS属性。
例如,如果重置CSS,您仍然可以发送<iframe>
,<form>
和所有其他可能的恶意代码等内容。
因此,我开始考虑您希望支持哪种HTML标记,并将所有其他HTML标记从中删除。然后对CSS也一样。
这绝非易事。我的意思是你也必须考虑像试图打破翻译的人那样的事情......
您可以查看此Sitepoint Blogpost,它描述了人们应该如何编写HTML电子邮件代码。因此,从那里开始看看通常支持的内容可能是一个好主意。
答案 1 :(得分:-2)
一句话答案是“1.在每个电子邮件客户端中使用基于表格的布局,2。仅内联CSS,以及3. 测试 。”< / p>
客户端测试可能是最重要的,因为每个电子邮件客户端(以及客户端+浏览器组合)可能都有自己的怪癖,而且很多都是沿途学习的;例如使用HTML属性width&amp;高度因为Outlook不会始终遵循宽度和宽度的内联样式高度,或者Gmail倾向于在图像周围添加边距,除非您为HTML元素等明确设置margin:0等。
在一个客户端修复HTML电子邮件的外观最终会在另一个客户端中破解它时,不要继续添加越来越多的样式:尝试简化 HTML / CSS,即使它意味着写更多标记。例如,如果填充和边距看起来不正确,则可以通过向表中添加更多行或列并修复其高度/宽度来实现相同的外观。更多标签比担心所有电子邮件客户端将如何呈现CSS框模型更简单。
有许多关于HTML-for-email的文章和博客帖子,例如http://articles.sitepoint.com/article/code-html-email-newsletters,这些文章和博客文章都很有帮助 - 尽管很多版本的客户都已过时。