Если сообщения находятся в очереди и заморожены, ниже ДОЛЖЕН работать - однако я не протестировал ее и не беру на себя ответственности, если это вместо этого становится разумным и ест Ваш mailserver
for i in `mailq | grep "\*\*\* frozen \*\*\*" | cut -f 3 -d " "` ; do exim -Mrm $i ; done
Измените grep шаблон как требуется, если необходимо поразить незамороженные сообщения (это является самым легким, если можно быть уверены, что можно уничтожить все в очереди и, несомненно, сможете работать как пользователь, который может выполнить exim-Mrm и mailq полезно - Вы, возможно, должны вставить sudo
прежде mailq
и exim -Mrm
...
Кроме того, существует почти наверняка более чистый способ сделать это использование xargs, а не for
встроенный и обратные галочки. Надо надеяться, кто-то приедет вскоре с этим :-)
Просканируйте файлы в /var/spool/exim4/msglog
для недопустимых адресов.
Можно отметить адрес, как поставлено с командой как (используйте недопустимый адрес), cd /var/spool/exim4/msglog; for msg in $(grep -l address); do exim4 -Mmd $msg address
.
Можно очистить сообщения с командой cd /var/spool/exim4/msglog; exim4 -M *
. Это попытается передать все сообщения в очереди.
Можно заблокировать входящие сообщения к старым адресам с помощью псевдонима в /etc/aliases
как:
address : :fail: No longer here
Посмотрите man exim4
и man aliases
для получения дополнительной информации.