AWS Simple Email Service(SES)邮件发送服务-功能调研

AWS Simple Email Service(SES)邮件发送服务-功能调研

面向国内用户,发短信或者通知推送居多,发邮件这个功能用的不多,主要还是海外欧美用户比较流行,刚好公司要用,写一篇AWS SES功能调研文章讲解一下,跨境电商的同行可以参考一下。废话不多说,用SES就是为了发邮件,发邮件当然要求的是发出的邮件都能送到用户的收件箱(inbox)而不是垃圾箱,更别说被标记为垃圾邮件,用户收都都不到。那么SES这个服务是如何保证你的邮件送达率?

ref: Understanding email deliverability in Amazon SES

两个名词,名誉值(Reputation)和共享IP池(shared IP pool)。

名誉值(Reputaion)

AWS这个服务为什么能保证你的邮件送达率,因为这个服务发出的邮件受其他邮件供应商的信任度够高,那么为了维持这份信任度,AWS内部对所有使用这项服务的用户采取了一种积分制度-名誉值(Reputation),有点类似于支付宝的芝麻信用分。

Amazon SES maintains a strong reputation with email providers so that they deliver your email to your recipients' inboxes.

名誉值有什么用?

芝麻信用分越高福利越多,同样的,名誉值高低决定了你邮件发送的权益,值越高,你每天24小时内可以发送的邮件额度越高,每秒并发发送的邮件额度也越高,分低到一定程度你这项服务甚至可能被官方禁用。是的,你没有看错,买了这个服务不意味着你就能随便用它发邮件,它是有一个每天(24小时)发送的邮件数量限制以及每秒并发发送频率限制,这个数量不是你能直接购买。

怎么提升额度?

ref: Increasing your Amazon SES sending quotas

两种机制,自动提升机制-也是类似于芝麻信用,官方自动检测各种指标提升你的额度,另外就是手动申请审核机制,官方根据你的申请可能需要额外补交资料进行人工审核处理。
自动提升机制有哪些指标,还是两个名词-退件率(bounce rate)和投诉率(complaint rate)。

退件率

退件顾名思义就是邮件发出去被退回了,退件又分两种,硬退件(Hard bounce)和软退件(Soft bounce)。

  • 硬退件,就是邮件投递永久失败,例如收件人邮箱不存在,收件人邮箱的域名不存在这种,遇到这种情况SES不会尝试重新投递。
  • 软退件,就是邮件临时投递失败,例如收件人的收件箱满了,收件人邮箱地址连接超时等,遇到这种情况SES会尝试重新投递,多次失败后才会退回邮件。

这里面只有硬退件会影响你的退件率和名誉值,软退件不影响。那么SES怎么防止你的硬退件的,比如邮箱不存在这种事谁也没法保证。为此SES维护了一个全局邮箱黑名单(Global suppression list),近期(可长达14天)使用SES发送邮件被硬退回的收件人邮箱地址,就会上这个黑名单,在这个名单的收件人,SES都不会发邮件。另外不单是你自己的,还有其他用户使用SES触发的也会在里面,得益于AWS服务的大用户量,这个功能可以大大降低硬退件的几率。当然特殊情况你确定黑名单有个邮箱是对的,你非要对它发邮件,可以自定义名单(account-level suppression list)保证发出,但是一旦发出去后又被硬退回,责任在你,该降的名誉值还是会降。

投诉率

经过了花钱买服务,调试配置开发等等工作,你终于给客户发出了一封邮件,客户也收到了,但是一看你这发的啥推销邮件,直接标记你为垃圾邮件(Mark as Spam),得,你白干了,再发几次直接上了客户邮箱的供应商黑名单,后面其他客户都收不到了。这个过程就是用户投诉(Complaint)的场景,怎么防止这种情况呢,SES跟其他邮箱供应商有对接的反馈机制,收到这种标记,直接就会转发一个通知给你,你就别再给这个用户重复发送邮件了(通过SES的API各种通知事件的回调对接就可以自动实现),另外运营同学自己再检查检查邮件内容是不是触发用户哪个G点了。

其他

ref: Sending test emails in Amazon SES with the simulator

除此之外,官方还建议你发送高质量的邮件内容,提高收件人的打开邮件几率,官方为了防止你滥发垃圾邮件,还有一层过滤——内容过滤(Content filtering),就是说你通过SES发出的所有邮件的内容都会进行检测,以防止有垃圾邮件或者带病毒的邮件发出,检测到的话,不好意思,名誉值(Reputation)降低。

对于邮件发送数量,官方建议是尽量维持每天的发送数量达到最大值附近,但是绝对不能超出,这样自动检测机制才会不断给你加大额度。

还有就是不要用生产环境来发送测试邮件,这句话应该是对后端研发同学说的,官方提供了各种场景的收件箱模拟器(mailbox simulator)给研发测试。

怎么维护额度?

ref: Monitoring your Amazon SES sender reputation

我们不但要提升额度,也要保证额度不能降低,不然一顿操作猛如虎,结果一看额度还降低了。那么怎么做呢?
这就要求运营同学时刻监控退件率、投诉率这些指标,及时调整发送邮件策略,另外也要要求后端研发同学对接SES各种通知回调事件,及时预警。SES还提供临时暂停所有邮件发送的操作,避免突发事件。

共享IP池(Shared IP pool)

说了那么多要求,SES这个服务条条框框很多,为了发个邮件代价这么大还要受各种约束,感觉划不来。这就要说到SES另外一个名词,共享IP池(Shared IP pool)。

共享IP池有什么用?

ref: Warming up dedicated IP addresses

这就不得不提到另外一个邮件发送的问题,发生邮件用的固定IP地址需要进行预热操作(IP address warm-up),为什么要做这个?因为如果是一个新的IP突然发出大量的邮件,哪怕你buffer叠满也没用,其他邮件供应商的系统照样给你封杀了,客户收不到你的邮件。
传统的预热操作就需要你逐天逐天地增加邮件的发送数量,直到一定程度才能正常使用,而且不能有突发的高频率邮件发送。

借助SES的共享IP池,AWS将你发出的邮件分散到其他使用SES服务的用户注册的IP地址进行发送,可以让你在初期就可以发出较大数量的邮件。当然有利就有弊,用了这个服务你的IP可能也会加到这个池子里面被其他新人使用,官方文档也没说自己IP因此被ban了会怎么样。
当然你也可以关了这个功能,自己做自己ip的预热,不要SES自动帮你完成预热。

posted on   yeyu456  阅读(1882)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示