1

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

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

在完全相同的日期时间有 200 个左右,然后在另一个随机时间有另一批 200 个左右(大概几个小时后是另一封电子邮件)。

我们使用的是 Amazon SES,我们账户的最大发送速率是“ 14 封电子邮件/秒”。基于我们在 mail.log 中看到的这些错误,我们假设 ColdFusion 试图一次发送太多信息超过了这个速率。这个假设听起来正确吗?

环顾 CF 11 Admin,我不确定我们需要进行哪些调整以确保 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

4

1 回答 1

2

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

如果后者是真实的,请从 AWS 请求提高速率限制,或查看另一个提供更高速率的事务性电子邮件提供商(例如 - SendGrid)。

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

于 2017-11-15T20:35:10.753 回答