我已经设置了一些cron作业,他们将crons结果发送到电子邮件。在过去的几个月里,我已经积累了大量的电子邮件。

现在我的问题是如何清除我邮箱里的这些邮件?


当前回答

一个衬套:

echo 'd *' | mail -N

其他回答

您可以简单地删除/var/mail/username文件来删除特定用户的所有电子邮件。此外,正在发送但尚未发送的电子邮件将存储在/var/spool/mqueue中

在UNIX / Linux / Mac OS X上,你可以复制和覆盖文件,不是吗?那么这个解决方案如何:

cp /dev/null /var/mail/root

只使用:

mail
d 1-15
quit

它会删除1号到15号之间的所有信息。如果要删除全部,请使用d *。

我自己刚刚在ubuntu 12.04.4上使用了这个,它就像一个魅力。

例如:

eric@dev ~ $ mail
Heirloom Mail version 12.4 7/29/08.  Type ? for help.
"/var/spool/mail/eric": 2 messages 2 new
>N  1 Cron Daemon           Tue Jul 29 17:43  23/1016  "Cron <eric@ip-10-0-1-51> /usr/bin/php /var/www/sandbox/eric/c"
 N  2 Cron Daemon           Tue Jul 29 17:44  23/1016  "Cron <eric@ip-10-0-1-51> /usr/bin/php /var/www/sandbox/eric/c"
& d *
& quit

然后再检查你的邮件:

eric@dev ~ $ mail
No mail for eric
eric@dev ~ $

使您出错的是您使用x或exit退出,这将在会话期间回滚更改。

我认为我们可以使该文件无效,而不是删除,因为如果邮件服务仍在运行,则将创建该文件。 像跟着就行了

cat /dev/null >/var/spool/mail/tomlinuxusr

是的,很抱歉唤醒了这个旧话题,但我觉得我可以有所贡献。

一个衬套:

echo 'd *' | mail -N