我已经配置了 Amazon SES 并获得了第一级增加的发送速率。因此,我的限制现在是每天 10,000 封电子邮件,每秒 5 封电子邮件。我的问题是:我是否需要在自己的应用程序中强制执行这些速率(即确保每秒向 SMTP 服务器发送的电子邮件不超过 5 封)或者我是否可以依赖服务器对超出该速率的任何邮件进行排队并延迟发送?
当然,我认识到仍然需要平均这些费率,但我的应用程序中有一个功能,可以“批量”发送约 1,500 封电子邮件,我只需要知道是否需要限制它,或者我是否可以让它尽可能快地运行。
答案1
如果您超出配额(每日配额或发送速率),您将收到错误消息,并且不会发送该邮件。该邮件不会在 SES 端排队。如果 SES 接受了邮件,则会在相当短的时间内将其发送。
这意味着,如果您的应用程序发送速度太快,您需要设置一点延迟,并在发送时检查配额。或者,只需等到出现错误,然后根据错误情况暂停适当的时间。
错误消息将属于 400 类型,通常是“超出最大发送速率”。您应该减少邮件程序启动的并发线程以适应这种情况。如果您使用的是 ses-send-email.pl 脚本,则可以对其进行修改,以便在 SES 发送 400 错误时返回临时故障。
进一步阅读: