0xFEE1C001

Where there is a shell, there is a way

邮件发送实践经验

在做邮件发送服务的时候遇到了种种问题,发现邮件发送有很多技术之外的限制。这里把这些时间查资料和实践出来的一些经验总结在这里。

ESP

邮件服务最重要的是把邮件送达给用户,这中间最大的困难是ESP(Email Service Provider)的反垃圾邮件的机制。

据统计互联网90%的邮件是垃圾邮件。

在国内,最饱受垃圾邮件骚扰也是用户量最大的ESP是QQ邮箱,反垃圾最严格的也是QQ邮箱。

信誉度

ESP的反垃圾策略是给邮件服务器评信誉度(reputation)。信誉度与邮件服务器的IP和域名都相关。

每个ESP的反垃圾策略都是他们的技术核心,不会向外界泄露。不过反垃圾关注的重点都是类似的。

发邮件的关键在于怎么提高信誉度,多做加分项,少做减分项。下面是几个监控信誉度的要点

  • 邮件是否都送达了
  • 发送速率是否被ESP限制了
  • 邮件是否因为错误地址退回
  • 是否被用户标成垃圾邮件或退订
  • 用户是否打开邮件,点开里面的链接

IP地址与发送量

我最终决定把邮件托管到第三方邮件服务(mailgun),很多事不用操心了。但有一些事要注意。

  • 域名和IP要固定,IP最好是IPv4
  • 所在IP段要有好的信誉度,因为有些ESP会封整个IP段
  • 国内IP很少,大部分IP被列入黑名单了,这一点上用国外IP反而更好

mailgun有共享IP和独立IP。共享IP是指使用的IP是固定的,不过是与其他人一起使用这个IP。独立IP是指这个IP是专用的,不与他人共享。

使用共享IP和独立IP有个平衡点。如果发的量少用共享IP好一些,因为一个IP发送的邮件少,ESP会认为这个IP不是专门的邮件服务。

如果量太大,ESP也会认为是在发送垃圾邮件,这需要使用独立IP,甚至是多个独立IP。

mailgun推荐每周发送超过5万封邮件,应该使用独立IP;每天发送低于5000封,应该使用共享IP。mailgun主要针对的是国外的ESP,国内的需要考证。

共享IP的问题在于用这个IP的其他人的行为是不可控的。出现过共享IP的某个mailgun用户发垃圾邮件给QQ邮箱,导致QQ邮箱拒收我的邮件。反馈后mailgun很快帮我找了IP。

最好不同的业务使用不同的IP,这样低信誉度的业务不会影响到其它业务的发送。

有了一个新的IP,需要先“热身”。先发送低速度的邮件再逐渐增加发送速率。发送过程关注ESP的反馈 。如果一开始就发大量的邮件,ESP会拒收。我刚开始不知道,用10秒一封的速度发400多封邮件,有199封被QQ邮箱拒收了。后来有了换了新的IP,发送速率慢慢从10分钟一封,8分钟一封,5分钟一封地逐步提高,送达率为100%。

网易邮箱的建议是每小时不超过3000封,每天不超过10万封。

域名

不要拿主域名发送EDM,因为一但进了ESP黑名单,公司的正常邮件会受到影响。

跟IP一样,不同的业务用不同的子域名,不要互相影响。

邮件服务的域名和from字段里的域名最好一致。

DNS托管服务要有良好的信誉。

要设置反解域名。

域名保存的鉴权信息要完善。

WHOIS记录信息要完善。

MX记录要有效

鉴权信息

SPFDKIMDomainKeysSenderID,这些要设置,增加ESP的信任。

邮件列表

尽最大努力保证收件地址是有效的。

要有退订的功能。不然用户在ESP投诉后果很严重。

ESP反馈

维护邮件服务的信誉度很大程序是在正确处理拒收邮件。

很多ESP会在第一次退信的时候,把你加入灰名单或是对你限速。如果你还在不断向无效地址发邮件,完全不听ESP的反馈,ESP会把你的邮件过滤掉。

QQ邮件可以通过遍历号码来发邮件,所以他们对无效地址控制很严。

QQ邮箱有反馈环,设置好后有人点击举报会反馈给发邮件者。

QQ邮箱有他域互通的功能,在上面可以看到邮件的到达、阅读、删除和投诉的数据。

收件人反馈

收件人以下行为是积极的

  • 打开邮件
  • 转发邮件
  • 回复邮件
  • 加到白名单
  • 加到联系人
  • 标星邮件
  • 归档邮件
  • 打开链接
  • 鼠标滚动邮件页面
  • 点击显示图片

收件人以下行为是消极的

  • 举报垃圾邮件
  • 删除邮件
  • 移至垃圾箱
  • 点击拒收
  • 将发件人添加至黑名单
  • 不打开邮件

邮件内容

  • 根据用户个性化邮件内容
  • 邮件最好text和html都有
  • 链接、图片与文字的比例越小越好
  • 不要有错别字
  • 不建议用短url,邮件内容的链接域名要和发件人域名对应
  • A/B test优化
  • 尽量避免发票、促销、免费、河蟹等关键字,奇怪符号,过多的红黄色、超大字体
  • 简洁的html代码,td tr布局。不要有js代码,也不要加附件
  • 邮件里的链接要安全合法

发送对用户有价值的内容是最重要的,其次才是技术问题。

工具

Return Path的信誉度查询 https://www.senderscore.org/

黑名单查询 http://mxtoolbox.com/


参考

https://documentation.mailgun.com/best_practices.html

http://feedback.mail.163.com/FeedBack/feedback.do?method=index

http://www.zhihu.com/question/19574247

http://www.zhihu.com/question/19883607

Comments