我目前在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
答案 0 :(得分:2)
当SMTP服务器拒绝邮件传输时,ACF服务器将重新汇集这些项目以供将来传递,这将定期重试。因此,您可能不需要添加额外的代码来处理它们,除非您处理数百或数千封的电子邮件。
如果后者中的任何一个是真的,请求从AWS增加速率限制,或者查找另一个提供更高费率的交易电子邮件提供商(例如 - SendGrid)。
另一个选项是connect directly to the SES API并使用其多发送选项来绕过消除单个SMTP请求的限制。如果发送的电子邮件是错误报告,我建议使用单独的错误跟踪应用程序,如Rollbar或BugLogHQ,以消除冗余的事务性错误报告邮件 - 从而释放真正的应用程序事务性消息的限制。