Как удалить почту из очереди постфикс, если в очереди сказано, что лимит на отправку получателю превышен, или неверно указан адресат
В предыдущем посте берем скрипт, кладем его в /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