crontab发送长达一个月的电子邮件


11

ubuntu 14.04 Mailserver:Postfix

root接收来自crontab的数十封电子邮件。这些邮件包含PHP警告。

  • 我已经解决了这些警告的原因。
  • 我已修复每个cronjobs不发送电子邮件(输出发送到>/dev/null 2>&1)的问题
  • 我已经删除了以前的所有电子邮件

    / var / mail / root

    / var / spool / mail / root

但是我仍然每小时收到数十封电子邮件。这些电子邮件来自cronjobs,有时已有近一个月的历史了。

我不明白:这些电子邮件来自何处,又存储在哪里?


2
如何在mailq输出样子?您是否已经检查过电子邮件标题?如果没有,请查找可能的发件人IP,电子邮件,服务器等,也可以将其发布。
2015年

1
谢谢,我没有意识到,mailq所以我用Google搜索了一下,发现这样做postsuper -d ALL会全部删除。看来它删除了5615条消息...(来源:cyberciti.biz/tips/howto-postfix-flush-mail-queue.html
pixeline

Answers:


20

这些是电子邮件队列中未送达的旧邮件。如果要摆脱它们,则需要找出并删除它们。

您可以用于一次mailq检查和postsuper -d ALL删除它们。

需要注意的几点:

  • 每当您开始接收相对较旧的电子邮件时,都可以确保这些电子邮件已在某个地方(在本地服务器或远程区域中)排队,并且现在可以发送了。

  • 要查看整个后缀队列,可以使用:mailqpostqueue -p并且输出是相同的。如果队列中有成千上万的邮件,这将被证明是无效的,因为输出命令会尝试一次转储所有邮件。在这种情况下,您可以使用类似的命令mailq | more

  • 如果您有非常必要的邮件滞留在队列中,则可以使用:postfix flushpostfix -f尝试刷新队列,换句话说,尝试立即发送。
  • 如果您的队列中有许多延迟的电子邮件,并且想专门删除它们,则可以使用postsuper -d ALL deferred
  • qshape在检查mailq时也是一个非常有用的命令。请检查Postfix瓶颈分析

4

这听起来像是已排队的消息,现在正在传递。如果这些消息来自您自己的服务器,则它们将存储在下面 /var/spool/postfix的外发邮件队列和命令中,sudo showq或者sudo postqueue -p应列出仍在队列中的所有其余未交付的消息。

/ var / spool / mail / root是默认邮箱位置,其中包含已传递到最终目的地的邮件,从那里删除邮件不会阻止任何新邮件到达:)

此问答可能用于清理队列

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.