Когда на VPS или выделенном сервере неожиданно растёт нагрузка на почтовую систему, одной из первых проверок становится очередь писем. Если она забита спамом или «зависшими» письмами, сервер может замедлиться, а репутация IP-адреса ухудшится. Иногда быстрее всего восстановить работоспособность помогает очистка очереди писем.
В Linux это делается по-разному в зависимости от используемого почтового агента (MTA): Exim, Postfix или Sendmail. Ниже — практические команды и пояснения.
Введение
Очередь писем — это временное хранилище сообщений, которые не удалось отправить сразу. Обычно письма из очереди отправляются повторно через заданные промежутки времени. Но бывают ситуации, когда очередь нужно срочно очистить:
- на сервере обнаружена массовая рассылка спама из-за скомпрометированного сайта;
- письма «зависли» из-за некорректной конфигурации DNS или проблем у получателя;
- нужно освободить ресурсы и перезапустить корректную работу MTA.
Важно понимать: удаление очереди — это временное решение. Если не устранить причину накопления писем, проблема вернётся.
Очистка очереди в Exim
Exim хранит очередь писем в каталоге /var/spool/exim/. Для работы с ней есть утилита exipick, которая позволяет фильтровать письма по статусу.
Удалить все письма из очереди
Используйте команду:
exipick -i | xargs exim -Mrm
Удалить только «замороженные» письма
«Замороженные» сообщения — это письма, которые Exim больше не пытается доставить (например, из-за неправильного адреса):
exipick -zi | xargs exim -Mrm
Проверка очереди
Перед удалением полезно посмотреть, что именно находится в очереди:
exim -bp
Эта команда выведет список сообщений с деталями.
Очистка очереди в Postfix
Postfix управляет очередью через встроенный инструмент postsuper.
Удалить все письма из очереди
Используйте команду:
postsuper -d ALL
Удалить только «замороженные» письма
В Postfix нет прямого аналога «frozen» писем, но можно удалять сообщения по ID или фильтрам:
postsuper -d [ID]
Чтобы сначала посмотреть содержимое очереди:
mailq
Очистка очереди в Sendmail
Sendmail хранит очередь в каталоге /var/spool/mqueue/
. Это один из самых «прямолинейных» MTA.
Удалить всю очередь
Используйте это:
rm -rf /var/spool/mqueue/*
Перед удалением стоит убедиться, что процесс Sendmail остановлен, иначе новые письма будут добавляться прямо во время очистки.
Проверка очереди
Отобразит список писем в очереди:
mailq
Полезные советы
Сначала выясните причину. Массовый спам может указывать на уязвимость сайта или скомпрометированный пароль почтового ящика.
Проверьте логи.
- В Exim:
/var/log/exim/mainlog
- В Postfix:
/var/log/maillog
- В Sendmail:
/var/log/maillog
Настройте ограничения. Ограничение на количество писем в час или за сессию помогает снизить риски.
Включите мониторинг. Интеграция почтовых логов в Zabbix или Grafana позволит быстрее реагировать на инциденты.
Используйте fail2ban. Он может блокировать IP-адреса, с которых идёт массовая рассылка.
Заключение
Очистка почтовой очереди в Linux — простой, но мощный инструмент администратора. Команды для Exim, Postfix и Sendmail позволяют мгновенно убрать сотни или тысячи застрявших сообщений. Но важно помнить: удаление очереди — это экстренная мера. Чтобы сервер снова не оказался в «чёрных списках», необходимо устранить корневую причину — проверить логи, исправить конфигурацию и закрыть уязвимости.
Для владельцев VPS это особенно критично: почтовая репутация напрямую влияет на доставку писем клиентам. Потратив немного времени на диагностику после очистки очереди, вы сохраните и работоспособность сервера, и доверие ваших пользователей.
Читайте в блоге:
- Как настроить защиту от спама через DNSBL в ISPmanager
- Интеграция WordPress с Nginx и MariaDB на Ubuntu 24.04: от базы данных до SSL
- Высокая нагрузка на VPS/VDS: как обнаружить и устранить причины