450 4.7.1
communication
runtime_error
ai_generated
true
450 4.7.1 请求的操作未执行:超出速率限制
450 4.7.1 Requested action not taken: rate limit exceeded
ID: communication/smtp-rate-limit-exceeded
82%修复率
84%置信度
1证据数
2023-07-01首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| Postfix 3.7 | active | — | — | — |
| Exim 4.96 | active | — | — | — |
| Sendmail 8.17 | active | — | — | — |
根因分析
SMTP 服务器每连接或每发件人的速率限制已超出,通常由于短时间内发送过多邮件。
English
The SMTP server has a per-connection or per-sender rate limit that has been exceeded, often due to sending too many emails in a short period.
官方文档
https://tools.ietf.org/html/rfc5321#section-4.2.5解决方案
-
Implement exponential backoff with jitter: wait 2^retry seconds + random(0-1s) before retrying. Example in Python: `time.sleep(min(2**attempt + random.uniform(0, 1), 60))`.
-
Throttle sending rate to N emails per second per connection (e.g., 10 emails/s) using a token bucket algorithm.
无效尝试
常见但无效的做法:
-
70% 失败
Increasing connection pool size without throttling may hit per-sender limit faster.
-
90% 失败
Switching to a different SMTP port (e.g., 587 vs 465) doesn't bypass rate limits.
-
60% 失败
Adding more sender addresses without reducing per-address rate still triggers limits on each.