Postfix - 如何重试队列中的邮件传递?

Nic*_*las 110 email linux postfix

我有一个备用邮件服务器,以防主服务器出现故障。在出现故障的情况下,邮件会到达备用服务器并留在那里,直到主服务器回来。

如果我等待一段时间,一旦主服务器恢复,交付将自动完成,但可能会很长。那么如何强制所有邮件的发送重试呢?

例如: postqueue -p :给我一个邮件列表

然后我尝试 postqueue -f (来自手册页:刷新队列:尝试发送所有排队的邮件。)。它确实刷新了队列,但邮件没有送达......

jos*_*chi 134

根据postqueue(1)你可以简单地运行postqueue -f来刷新你的邮件队列。如果在刷新队列后邮件没有发送而是重新排队,您可能需要检查邮件日志是否有错误。

在以偷看postsuper(1)也可能会有所帮助。也许消息被搁置,需要先发布。


Jan*_*nen 43

postqueue -f应该管用。如果没有,它有一个很好的理由。检查日志。此外pfqueue是检查邮件池一个非常有用的命令。


the*_*bit 16

sendmail -q 立即重试发送队列中的所有邮件。

  • @NoICE 是的。来自 [the docs](http://www.postfix.org/sendmail.1.html):*-q 尝试发送所有排队的邮件。这是通过执行 postqueue(1) 命令来实现的。* (2认同)

小智 7

我通常使用这个命令

postsuper -r ALL && postqueue -f
Run Code Online (Sandbox Code Playgroud)

参数:

  • -r ALL正在重新排队所有消息
  • -f刷新队列:尝试传递所有排队的邮件。


小智 5

postqueue -s domain.tld应该会导致备份中继机器刷新您站点的所有电子邮件。postfix 的默认设置支持对relay_domains. postqueue -f也会这样做,但也会向外部站点推送邮件,即它的作用超出了您的需要。

如何确定邮件未送达?它们是否仍在备份主机上,或者是否被发送到主主机然后丢失了?