crontab 发送一个月前的电子邮件

crontab 发送一个月前的电子邮件

ubuntu 14.04 邮件服务器:Postfix

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

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

    /var/邮件/根

    /var/spool/邮件/根目录

但我每小时仍会收到数十封电子邮件。这些电子邮件来自 cronjobs,有时几乎是一个月前的。

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

答案1

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

您可以使用mailq来检查并postsuper -d ALL一次性删除它们。

需要注意的几点:

  • 每当您开始接收相对较旧的电子邮件时,您可以确信这些电子邮件已在某处排队(在本地服务器或远程服务器中)并且正在被递送。

  • 要查看 postfix 的整个队列,您可以使用:mailqpostqueue -p,输出相同。如果队列中有数千封邮件,这可能会无效,因为命令输出会尝试一次性转储所有邮件。在这种情况下,您可以使用类似 的命令mailq | more

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

答案2

这听起来像是已排队并正在投递的消息。如果这些消息来自您自己的服务器,则它们存储在下面的 /var/spool/postfix外发邮件队列中,并且命令sudo showqsudo postqueue -p应该列出仍在队列中的任何剩余未投递的消息。

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

本问答可能有助于清理队列

相关内容