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

exim и очистить недействительные электронные письма

У меня есть очередь exim из более чем 1000 электронных писем, и я хочу запустить очередь и удалить все электронные письма, которые идут на недействительные электронные письма (те, которые больше не существуют)

exiqgrep -i -f [luser]@domain | xargs exim -Mrm

Если сообщения находятся в очереди и заморожены, приведенное ниже ДОЛЖНО работать - однако я не тестировал его и не несу ответственности, если вместо этого оно станет разумным и съест ваш почтовый сервер.

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 Чтобы получить больше информации.