由于查看邮件的客户端很多,如网页、outlook2003/2007/…、手机浏览器、第三方邮件APP。公司邮件主要涉及PC网页、outlook各个版本,因此考虑的更少。记录下遇到的问题:
-
head中的style定义无效
一般写网页,喜欢在head中定义css样式,可惜在此处失效。以网易邮箱PC网页版为例,网易邮箱会主动截取
之间的代码作为邮件内容,如果在head中定义样式,将不被加载;QQ邮箱PC网页版则会全部加载;outlook2003表现正常,但2007同样不会解析。 -
布局使用table
DIV除了块级的表现正常,其他则出现了异常,如float/position/width/margin:0 auto 等等。所以先使用table作为最大的父级,需要居中,可以是设定align=”center”。
-
使用内联样式
CSS中子级会继承父级的样式,但outlook中表现奇怪,因此保险起见,为最小的子级定义内联样式。如:
<td style="color:red">警告</td>
-
line-height无法实现垂直居中
设计的过程中,我参考了京东商城发送的电子邮件,表头使用的height+line-height来实现垂直居中,但outlook7中表现为底部对齐,可能原因是outlook2007的解析原理不一致①,我们可以使用padding来撑高。在文字段落中line-height仍然是正常的。
-
各版本解析方式不一致
参考文章①和②已列出来,简单而言就是outlook2007使用的是word引擎(HTML e-mails are now displayed by a word engine),想区别的,2003版本则是使用的是浏览器引擎,2012为深究。其他的PC网页版则肯定使用的浏览器引擎,微信也是使用的浏览器解析引擎。
-
outlook转发会丢失样式
HTML邮件在outlook中表现正常,但转发时会调用word编辑器,则会破坏了原来的样式,最明显的表现就是会在每个table结束时加个换行。目前还没找到具体的解决办法,如果有网易邮箱的“原件转发”功能,是否能解决呢?
-
尽可能不要使用图片
由于outlook的安全设置,默认都是不显示图片的。如果使用到了,需指定宽度和高度,避免图片不显示是预留位置撑破页面。
-
统计邮件到达及阅读情况
- 阅后回复,这个需要阅读者点击确认回复;
- 在邮件底部隐藏一个图片,图片地址则是包含统计参数的URL,当然上一条已经决定了该方法存在失效的可能。如京东的:
<table style="display:none;" width="1" height="1"><tr><td><img width="1" height="1" src="http://csc.jd.com/log.ashx?type1=edm&type2=stats1&data=A_1770035069%7C%7C%7Cwebmaster@webmaster.com%7C%7C%7C1400010897587"></td></tr></table>
-
对邮件内的所有链接加入跳转,只要访问,就能通过跳转来记录,例如sendcloud的做法。缺点是,如果不访问就无法记录;特别需要注意部分邮件服务器(如QQ邮箱)会主动扫描链接(防毒),导致误标记;
-
尝试撤销邮件,如果已经阅读,会提示撤销失败;缺点是发件人和收件人必须是同一邮件服务器;
-
将发件人加入通讯录
由于邮件标题一样,如果大量发送邮件,经常会被列入垃圾邮件,避免这种情况,可以考虑动态生成标题,并要求收件人将发件人加入通讯录。这里不得不吐槽godaddy,正常通知邮件和广告邮件的发件箱相同,导致正常的通知邮件也被列入广告邮件中。
-
将附件中图片插入的邮件内容中
请阅读参考文章③
其它待补充。
参考文章: