早高峰批量发通知时报 421 Too many connections from your IP,隔几分钟重试又能发出去几封。碰到这种情况,我一般先确认改动有没有真的生效。

原因不复杂,发信程序给每封信都新建一条连接而且用完不关,同时打开的会话数很快触到服务商的连接上限。

「SMTP 421 连接数」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。

ss -tn state established '( dport = :587 )' | wc -l
postconf -n | grep -i smtpd_client_connection

权限不要一口气开到最大,先加到够用再往上试,范围小才好收。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。

改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。验证用真实数据走一遍,测试数据太干净,边界情况根本碰不到。

具体做法是,改成一条连接连续投递多封;发完显式发 QUIT 断开;把并发数压到 5 以内。

最后用这个标准收尾,发信时并存连接稳定在个位数,421 提示不再出现。

作者 9823189