web-dev-qa-db-ja.com

膨大な数のEメールでLinuxのメールボックスを削除するにはどうすればいいですか?

私はいくつかのcronジョブを設定しました、そして、彼らは電子メールにcrons結果を送ります。今、数ヶ月の間に私は膨大な数のEメールを蓄積しました。

今私の質問は私が私のメールボックスからすべてのそれらの電子メールを一掃することができる方法ですか?

177
anjan

/var/mail/usernameファイルを削除するだけで、特定のユーザーに関するすべてのEメールを削除できます。また、送信されているがまだ送信されていないEメールは/var/spool/mqueueに保管されます。

140
EdoDodo

別の方法:

mail -N
d *
quit

-Nメールを読むとき、またはメールフォルダを編集するときにメッセージヘッダの初期表示を禁止します。
d *すべてのメールを削除

351
timaschew

ただ使用してください:

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を使用していることです。

56
Mip

ワンライナー:

echo 'd *' | mail -N
22
Michael Munsey

削除するのではなく、ファイルを無効にすることができると思います。メールサービスがまだ有効な場合はファイルが作成されるためです。次のようなものが仕事をします

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

そして、この古いスレッドを目覚めさせて申し訳ありませんが、私は貢献できると感じました。

19
xploreraj

UNIX/Linux/Mac OS Xでは、ファイルをコピーして上書きすることができます。では、この解決策はどうでしょうか。

cp /dev/null /var/mail/root
5
peter_pilgrim

「d」を使用するのではなく、「p」を使用しないでください。私は "p *"がうまくいくかどうかわからない。私は試しませんでした。あなたはできる;しかし、次のスクリプトを使用してください」

#!/bin/bash
#

MAIL_INDEX=$(printf 'h a\nq\n' | mail | egrep -o '[0-9]* unread' | awk '{print $1}')

markAllRead=
for (( i=1; i<=$MAIL_INDEX; i++ ))
do
   markAllRead=$markAllRead"p $i\n"
done
markAllRead=$markAllRead"q\n"
printf "$markAllRead" | mail
1
WSimpson

メールサーバでcyrus/sasl/imapを使用している場合、指定された日数よりも古いメールボックス内のすべてのものを消去するための高速で効率的な方法の1つはcyrus/imap ipurgeコマンドを使用することです。例えば、これはユーザーから30日以上経過したvleoのすべてを削除する(注意してください!!)例です。あなたはcyrus(imapメール管理者)ユーザーとしてログインしなければならないことに注意してください。

[cyrus@mailserver ~]$ /usr/lib/cyrus-imapd/ipurge -f -d 30 user.vleo Working on user.vleo... total messages 4 total bytes 113183 Deleted messages 0 Deleted bytes 0 Remaining messages 4 Remaining bytes 113183

1
vleo