如何优雅地编码HTML邮件

Database and Ruby, Python, History


常常看见有些设计地很好的邮件,脑补用 HTML 网页就可以简单实现了,等到真的自己去写类似的邮件的时候,才发现邮件真的是一个古老的东西。

你能够想象,上面这样的邮件几乎全部是用 table 拼成的!

First thing first

邮件和 HTML 网页不同,不支持很多功能。

  1. 不支持 javascript
  2. 不支持很多 CSS
  3. 外链图片可能会被 block

该如何办

Flex

邮件不支持 Flex,通过查询https://www.caniemail.com/search/?s=flex就可以看到, 在 Windows 上,这个 CSS 支持得都不好。

Work around 就是用上面说的 Table,大量地使用嵌套 Table 来实现的。

CSS

很多 CSS 都不支持,如果想用,尽量先在CanIEmail上查询一下。

外链图片

如果不想外链图片,就只有将图片 Base64 编码一下,再写入邮件里面,这样可能会导致邮件内容过大,需要谨慎使用。

不支持 Javascript

别多想了,就是不支持。

跟踪打开率

一般都是通过外链一个透明的图片,当下载这个图片的时候,服务器就记录一下谁打开了哪一封邮件。这里可能会触碰到个人隐私,也要谨慎使用,或者只统计所有的打开率。