我为一家公司管理一个小型邮件服务器。从周末开始,就出现了间歇性的电子邮件问题。显然,收到的电子邮件无法送达(例如从谷歌发送到我们的服务器)。
检查日志后,我发现了邮件出现问题的原因:
sendmail[1234] rejecting connections on daemon MTA-blah: 15 children, max 15
因此 sendmail 达到了 MAX_DAEMON_CHILDREN 限制。
查看进程列表,我发现一堆 sendmail 进程处于数据模式长达数小时。
sendmail: blah2345345 xxx.mail.gq1.yahoo.com [216.39.60.xxx]: DATA
sendmail: blah3345345 yyy.mail.gq1.yahoo.com [216.39.60.xxx]: DATA
我在日志中找不到任何提及电子邮件 ID(例如 blah2345345)。
知道发生了什么事吗?只有来自 Yahoo 服务器的连接在 DATA 模式下停滞。
谢谢!
编辑:这是一个问题传入邮件。/var/spool/mqueue 为空。Sendmail 是 v8.14.x。
答案1
要强制从邮件队列发送邮件,请使用以下命令
发送邮件-q-v
sendmail 版本是什么
答案2
作为临时修复,您可以:
使用 iptables(防火墙)限制来自问题网络的连接数(例如限制为 5 个)
将 Timeout.datablock 从默认的 1h 降低至 RFC 要求的最小值 (3m)
http://www.sendmail.org/~ca/email/doc8.12/op-sh-4.html