Как удалить почту из очереди постфикс, если в очереди сказано, что лимит на отправку получателю превышен, или неверно указан адресат
В предыдущем посте берем скрипт, кладем его в /root. Называем pfdel.
Создадим файл с проблемной почточ ( например неправильно указан получатель и т.д.
nano/root/scripts/black_list.txt
Вставим туда в каждую строку наших получателей, которым не уходит почта.
mail1@mail.ru mail2@mai.ru
Теперь создаем новый файл bash и вставляем туда содержимое.
nano /root/delete_mail.sh
#!/bin/bash echo "ЭТАП 1" echo "ОЧИСТКА ПИСЕМ ПО ЧЕРНОМУ СПИСКУ /root/scripts/black_list.txt" for EMAIL in `cat /root/scripts/black_list.txt` do perl /root/pfdel ${EMAIL}; done echo "текущая очередь" mailq; echo "ЭТАП 2" echo "Удаляю почту с превышеным лимитом по отправке адресату $I" for I in `mailq | grep "has exceeded their message rate limit" | awk ' {print $8} ' | sed "s///g"` do echo "Удаляю почту с превышеным лимитом по отправке адресату $I" perl /root/pfdel $I; done echo "текущая очередь" mailq;
Вставим в крон
5 * * * * sh /root/delete_mail.sh