Очередь Postfix растет, когда сервер принимает письма локально, но не может передать их дальше. Причина содержится в статусе конкретного queue id: временная DNS-ошибка, отказ TLS, блокировка IP, лимит получателя или неверный transport.
Не запускайте принудительную повторную доставку всей очереди без анализа. Сгруппируйте deferred-письма по домену и тексту последней ошибки — обычно несколько причин объясняют большую часть накопления.
Что сделать в первую очередь
- Запишите размер очереди, возраст старейшего письма и скорость роста.
- Получите список deferred reason без вывода содержимого сообщений.
- Проверьте свободное место, inode и нагрузку сервера.
- Убедитесь, что сервер не используется для несанкционированной рассылки.
Почему возникает проблема
Симптом обычно появляется не из-за одной настройки. Сначала разделите путь данных на этапы и найдите место, где фактическое поведение расходится с ожидаемым.
- Не разрешается MX или недоступен внешний DNS.
- Получатель временно ограничивает скорость или отклоняет репутацию IP.
- TLS negotiation завершается ошибкой сертификата или шифра.
- Неверная карта transport направляет письма на недоступный relay.
Пошаговая диагностика
- Проверьте postqueue и postcat для нескольких queue id.
- Сгруппируйте ошибки connect, host not found, 4xx и 5xx.
- Проверьте MX, A, PTR, SPF и доступность порта 25 с сервера.
- Сравните время системы и срок сертификатов.
- Посмотрите mail log и состояние активных процессов Postfix.
Как исправить
Исправляйте подтвержденную первопричину и сохраняйте возможность отката. После каждого изменения повторяйте один и тот же контрольный сценарий, чтобы не спутать результат нескольких правок.
- Исправьте DNS, маршрут или relay согласно подтвержденной ошибке.
- Для временных ограничений оставьте штатный backoff и снизьте скорость.
- Удаляйте только явно нежелательные или окончательно ошибочные письма по точному критерию.
- После исправления повторите доставку ограниченной группы и проверьте ответ.
- Настройте лимиты отправителей, авторизацию и защиту от open relay.
Как проверить результат
- Возраст старейшего deferred-письма уменьшается, а очередь стабильно сокращается.
- Новые транзакционные письма доставляются без ожидания массовой очереди.
- В журнале нет повторяющейся причины отказа и всплеска неизвестных отправителей.
Как не допустить повторения
- Мониторьте размер очереди, oldest age и частые SMTP-коды.
- Разделяйте сервисные и массовые потоки по политикам и приоритетам.
- Следите за диском, DNS, сертификатами и репутацией адресов.
Частые вопросы
Можно ли удалить всю очередь?
Технически можно, но это уничтожит и корректные письма. Сначала нужно определить причину и состав очереди.
Почему письмо долго висит с кодом 4xx?
4xx означает временный отказ, поэтому Postfix повторяет доставку по расписанию. Причину нужно читать в полном ответе сервера.
Когда стоит обратиться за помощью
Для первичной диагностики достаточно статистики очереди, нескольких обезличенных ошибок и DNS домена. Содержимое писем и пароли пользователей передавать не нужно.
Итог
Очередь Postfix лечат по причине отказа, а не массовым flush. Я могу проверить DNS, маршруты, TLS, репутацию и настроить мониторинг, чтобы накопление замечалось сразу.