Я установил несколько заданий cron, и они отправляют результат crons по электронной почте. Теперь за несколько месяцев я накопил огромное количество писем.
Теперь мой вопрос: как я могу очистить все эти письма от моего почтового ящика?
Я установил несколько заданий cron, и они отправляют результат crons по электронной почте. Теперь за несколько месяцев я накопил огромное количество писем.
Теперь мой вопрос: как я могу очистить все эти письма от моего почтового ящика?
Вы можете просто удалить файл /var/mail/username
, чтобы удалить все электронные письма для определенного пользователя. Кроме того, электронные письма, которые отправляются, но еще не отправлены, будут храниться в /var/spool/mqueue
.
альтернативный способ:
mail -N
d *
quit
-N
Запрещает начальное отображение заголовков сообщений при чтении почты или редактировании почтовой папки. d *
удалить все письма
Просто используйте:
mail
d 1-15
quit
Будет удалено все сообщения между номерами 1 и 15., чтобы удалить все, используйте d *
.
Я просто использовал это сам на ubuntu 12.04.4, и он работал как шарм.
Например:
[email protected] ~ $ 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 <[email protected]> /usr/bin/php /var/www/sandbox/eric/c"
N 2 Cron Daemon Tue Jul 29 17:44 23/1016 "Cron <[email protected]> /usr/bin/php /var/www/sandbox/eric/c"
& d *
& quit
Затем снова проверьте свою почту:
[email protected] ~ $ mail
No mail for eric
[email protected] ~ $
Что вы отключите, вы используете x
или exit
, чтобы выйти, что отбрасывает изменения в течение этого сеанса.
Один вкладыш:
echo 'd *' | mail -N
Вместо того, чтобы удалять, я думаю, что мы можем аннулировать файл, потому что файл будет создан, если почтовая служба все еще включена. Что-то вроде следующего выполнит работу
cat /dev/null >/var/spool/mail/tomlinuxusr
И да, извините за пробуждение этой старой темы, но я чувствовал, что могу внести свой вклад.
В UNIX/Linux/Mac OS X вы можете копировать и переопределять файлы, не так ли? Итак, как насчет этого решения:
cp /dev/null /var/mail/root
Вместо того, чтобы использовать "d", почему бы не "p". Я не уверен, что "p *" будет работать. Я этого не делал. Ты можешь; однако используйте следующий script "
#!/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
Если вы используете cyrus/sasl/imap на своем почтовом сервере, то один быстрый и эффективный способ очистить все в почтовом ящике, который старше, чем указано количество дней, это использовать cyrus/imap ipurge. Например, вот пример удаления всего (будьте осторожны!), Старше 30 дней с пользователя vleo. Обратите внимание, что вы должны войти в систему как пользователь cyrus (imap mail administrator):
[[email protected] ~]$ /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