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

Как удалить все сообщения из почтовой очереди exim от определенного пользователя / электронной почты

Я потратил последний час, пытаясь выяснить, как удалить все сообщения с определенного почтового адреса из почтовой очереди exim, после того, как очередь была заполнена спам-сообщениями.

Используйте эту строку, чтобы удалить все сообщения:

exim -bp | grep email@address.com | sed -r 's/(.{10})(.{16}).*/\2/' | xargs exim -Mrm

Он делает следующее:

exim -bp

Список почтовой очереди exim

grep email@address.com

Выбирает только строки с определенным почтовым адресом

sed -r 's/(.{10})(.{16}).*/\2/'

Выбирает ID письма

xargs exim -Mrm

Удаляет сообщение из очереди

Я уверен, что его можно оптимизировать, расскажите, пожалуйста, так ли и как!

Другой способ очистить очередь exim - распечатать третье поле, которое в данном случае будет адресом электронной почты. Любой результат, совпадающий с адресом электронной почты grep, будет удален командой exim -Mrm.

exim -bp | grep emai@address.com | awk {'print $3'} | xargs exim -Mrm

В случае, если вы хотите очистить замороженное письмо, вы можете заменить email@address.com на «замороженный»

Удалите все сообщения от sender@example.com. Вы можете добавить -v к команде exim, чтобы получить более подробный вывод.

exiqgrep -i -f sender@example.com | exim -Mrm

Вы можете сделать это немного по-другому, создав сообщение о недоставке для каждого элемента. Это подчеркивает для конечного пользователя, какой вред причиняет его скомпрометированный почтовый ящик:

exiqgrep -i -f sender@example.com | exim -Mg