限制ColdFusion向AWS SES发送的电子邮件数/秒

时间:2017-11-15 16:02:30

标签: coldfusion amazon-ses coldfusion-administrator

我目前在ColdFusion 11的mail.log中看到了一堆相同的错误:

com.sun.mail.smtp.SMTPSendFailedException: 454 Throttling failure: Maximum sending rate exceeded.

在完全相同的日期时间有200个左右,然后在另一个随机时间出现另外200个左右的批次(可能是几个小时后的另一个电子邮件)。

我们正在使用亚马逊SES,我们帐户的最高发送率为" 14封电子邮件/秒。"根据我们在mail.log中看到的那些错误,我们假设ColdFusion试图一次发送过多的错误。 这个假设听起来是否正确?

环顾CF 11管理员,我不确定我们需要做些什么调整才能确保CF不超过14 / s的速度。以下是我们的一些当前设置(在CF管理员>服务器设置>邮件下),可能适用也可能不适用:

[x] Maintain connection to mail server Connection Timeout (in seconds): 60 [ ] Enable SSL socket connections to mail server [x] Enable TLS connection to mail server

Spool Interval (in seconds): 15 Mail Delivery Threads: 10 [x] Spool mail messages for delivery to: Disk Maximum number of messages spooled to memory: 50000

1 个答案:

答案 0 :(得分:2)

当SMTP服务器拒绝邮件传输时,ACF服务器将重新汇集这些项目以供将来传递,这将定期重试。因此,您可能不需要添加额外的代码来处理它们,除非您处理数百或数千封的电子邮件。

如果后者中的任何一个是真的,请求从AWS增加速率限制,或者查找另一个提供更高费率的交易电子邮件提供商(例如 - SendGrid)。

另一个选项是connect directly to the SES API并使用其多发送选项来绕过消除单个SMTP请求的限制。如果发送的电子邮件是错误报告,我建议使用单独的错误跟踪应用程序,如RollbarBugLogHQ,以消除冗余的事务性错误报告邮件 - 从而释放真正的应用程序事务性消息的限制。