Очистка почтовой очереди является самой частой задачей при администрировании любого почтового сервера, большие очереди скапливаются при попытках отправки сообщений на несуществующие адреса — следствием является возрастание нагрузки на серверную инфраструктуру.
Почтовую очередь на сервере можно посмотреть выполнив
mailq
Также можно посчитать общее количество писем в очереди
mailq | wc -l
Как очистить почтовую очередь
При использовании Postfix удалить всю почтовую очередь можно выполнив
postfix flush
Но чаще используется утилита postsuper, при помощи которой можно удалить все письма или часть из них передав их через pipe-line из вывода grep
postsuper -d ALL
Полезной может оказаться и команда, удаляющая все сообщения в статусе deferred
postsuper -d ALL deferred
Иногда возникают ситуации, когда от одного и того же адресата практически постоянно идут сообщения, не представляющие ценности, которые не могут быть отправлены. Они забивают очередь, а удалять их вручную постоянно трудоемко, поэтому соответствующую задачу можно добавить в CRON
bash скрипт для удаления писем из очереди по CRON
#!/bin/bash -eu
mailq-stat | \
grep '[email protected]' | \
stripq | \
sudo postsuper -d —
exit 0
При установке скрипта и добавлении его с правами на исполнение в качестве CRON задания с указанной периодичностью будут письма, отправленные на [email protected] или с этого адреса будут удалятся из почтовой очереди