我有一台 sendmail 主机暴露在外部世界,接受来自各种域的邮件,它将收到的这些域的邮件转发到域的相应内部服务器(通过mailertable
)。大多数内部服务器的正常运行时间都很长,但偶尔会出现故障,服务器可能无法访问。在这种情况下,sendmail 会尝试将邮件转发到停机的服务器,但无法这样做,并记录 5.0.0 服务不可用错误(并向发件人发出 5.0.0 DSN)。
显然,这对于生产环境来说并不好,因为在上述情况下,收到的电子邮件将永远丢失。我如何指示 sendmail 将邮件排队并不断重试,如果一周后仍无法发送邮件,则将其从队列中删除并发出失败 DSN?
答案1
调整 sendmail 配置选项
查看 confTO_QUEUERETURN 和 confTO_QUEUEWARN 等选项
在更改此参数以在 SMTP 网关上将邮件排队多天之前,您应该仔细考虑。邮件在几个小时未送达后被退回的原因是为了让发件人知道邮件无法发送。从技术上讲,电子邮件并没有丢失,因为发件人会收到失败的通知。