ubuntu 14.04 邮件服务器:Postfix
root 收到来自 crontab 的数十封电子邮件。这些邮件包含 PHP 警告。
- 我已经解决这些警告的原因。
- 我已经修复了每个 cronjobs 不发送电子邮件(输出发送到
>/dev/null 2>&1
) 我删除了之前的所有电子邮件
/var/邮件/根
/var/spool/邮件/根目录
但我每小时仍会收到数十封电子邮件。这些电子邮件来自 cronjobs,有时几乎是一个月前的。
我不明白:这些电子邮件来自哪里,又存储在哪里?
答案1
这些是邮件队列中未送达的旧邮件。如果您想摆脱它们,您需要找出并删除它们。
您可以使用mailq
来检查并postsuper -d ALL
一次性删除它们。
需要注意的几点:
每当您开始接收相对较旧的电子邮件时,您可以确信这些电子邮件已在某处排队(在本地服务器或远程服务器中)并且正在被递送。
要查看 postfix 的整个队列,您可以使用:
mailq
或postqueue -p
,输出相同。如果队列中有数千封邮件,这可能会无效,因为命令输出会尝试一次性转储所有邮件。在这种情况下,您可以使用类似 的命令mailq | more
。- 如果您有非常必要的邮件卡在队列中,您可以使用:
postfix flush
或postfix -f
尝试清除队列,或者换句话说,尝试立即发送它们。 - 如果您的队列中有大量延期电子邮件并且想要专门删除它们,则可以使用
postsuper -d ALL deferred
。 qshape
在检查 mailq 时也是一个非常有用的命令。请检查Postfix 瓶颈分析。
答案2
这听起来像是已排队并正在投递的消息。如果这些消息来自您自己的服务器,则它们存储在下面的 /var/spool/postfix
外发邮件队列中,并且命令sudo showq
或sudo postqueue -p
应该列出仍在队列中的任何剩余未投递的消息。
/var/spool/mail/root 是默认邮箱位置,其中包含已送达最终目的地的邮件,从那里删除邮件不会阻止任何新邮件到达:)
本问答可能有助于清理队列