Данный пост представлен в ознакомительных целях и не может рассматриваться призывом к деструктивным действиям с последствиями или без таковых
Вводная
Организация рассылает своим подписчикам информационные сообщения (реклама, акции, новости и т.д.). Все подписчики валидировали свои емейлы в процессе регистрации кабинета пользователя. Это важный момент, для понимания дальнейшего. Все сообщения уходят через отдельный почтовый сервер. Стандартное количество сообщений в очереди, которые не ушли сразу — до 1000 штук, что считается нормой. В день обычно проходит 3-5 рассылочных сессий

Количество рассылок в течении рабочего дня
Проблема
Внезапно количество сообщений в очереди стало расти. Такое поведение считается аномальным

Внезапный лавинообразный рост количества сообщений в очереди
Разбор полетов
В результате выяснилось, что проблема связана с gmail’ом. Часть писем он принимал, а часть нет. Странное поведение. Однако, после анализа нескольких его отлупов ситуация прояснилась
Выполняем mailq и видим множество отлупов от MAILER-DAEMON. Берем для анализа несколько ID отлупов и просматриваем их командой
postcat -q F06E96150A
В результате получаем

Фрагмент заголовка одного из отлупов
Невооруженным глазом видно, что это спамерское сообщение — внутри указание на веб-сайт и rar-архив во вложении. Gmail такое не принимает
Теперь вопрос
А как оно попало к нам?
Ответ
- спамер через бот высылает сообщения, среди которых были получатели gmail. В
Return-Pathуказан валидный адрес нашего порталаservice@domain.tld - gmail блокирует доставку, потому что считает сообщение вирусным
- смотрит в
Return-Pathи видит тамservice@domain.tld, после чего высылает отлуп на этот адрес - все входящие на
service@domain.tldпересылаются десяти сотрудникам портала у которых почта на gmail. Срабатывает переадресация!!! - gmail снова не принимает уже десять копий одного и того же сообщения и возвращает письма отправителю
- и так по кругу несколько раз
В результате очередь растет как по размеру занимаемого дискового пространства, так и по количеству. Классический bounce loop
Что делать?
Во-первых не стесняемся и прибиваем все сообщения от MAILER-DAEMON. Как это сделать можно прочесть в посте «Как работать с очередью postfix«. В результате удалено более 14200 сообщений

Очередь после очистки вернулась к своему нормальному состоянию
Во-вторых, service — локальный аккаунт на мейлере. Для переадресации входящих вместо штатного /etc/postfix/aliases используется procmail. Следовательно в файле .procmailrc в домашней папке пользователя service добавляем вначало правило
:0 * ^FROM_DAEMON /dev/null
После чего мусор подобного рода улетает в /dev/null без всякого сожаления. Очередь принимает обычный размер и валидные сообщения портала уходят быстро
Почему procmail?
Потому что штатная робота алиасов в postfix — прием сообщений для пересылки без обработки. Procmail работает правилами и может не только переслать сообщение, но и обработать его изменяя заголовки, вытаскивая вложение, вставляя другое вложение и т.д. Рекомендую освоить. Тулза давно не развивается, однако в репозиториях продолжает быть

Системный администратор с 2000 года
Участник Freelancehunt, Хабр Q&A
Кейсы