How do I purge a linux mail box with huge number of emails?
alternative way:
mail -N
d *
quit
-N
Inhibits the initial display of message headers when reading mail or editing a mail folder.d *
delete all mails
You can simply delete the /var/mail/username
file to delete all emails for a specific user. Also, emails that are outgoing but have not yet been sent will be stored in /var/spool/mqueue
.
One liner:
echo 'd *' | mail -N
Just use:
mail
d 1-15
quit
Which will delete all messages between number 1 and 15. to delete all, use the d *
.
I just used this myself on ubuntu 12.04.4, and it worked like a charm.
For example:
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
Then check your mail again:
eric@dev ~ $ mail
No mail for eric
eric@dev ~ $
What is tripping you up is you are using x
or exit
to quit which rolls back the changes during that session.