Назад | Перейти на главную страницу

Массовое удаление писем с определенного адреса

Один из моих пользователей получил какие-то отладочные данные, отправленные по адресу на моем сервере.

Что-то "пошло не так", и теперь у меня в почтовом ящике 35000 писем. Мне нужно удалить эти письма, все они с одного конкретного адреса. Остальные инбо должны оставаться нетронутыми.

Как мне этого добиться?

Платформа: CentOS 5 с DirectAdmin, Dovecot, Exim.

Dovecot v.2 имеет утилиту под названием doveadm которые позволяют ряд функций.

http://wiki2.dovecot.org/Tools/Doveadm/Expunge

Команда

doveadm expunge -u jane.doe@example.org savedbefore 2w

Удалите все сообщения старше двух недель из почтового ящика jane.doe.

Если у вас dovecot v.1, вам необходимо использовать системную утилиту find:

find -E $userdir \
     -type f \
     -iregex ".*(cur|new).*" \
     ! -newerBt "1 month ago" \
     -exec rm {} \;

Если вы знакомы с python, просто напишите быстрый сценарий, используя поплиб