- 03.04.2025
- MailerQ
Обработка отказов в MailerQ:
MailerQ автоматически обрабатывает "отказы" (bounces) — письма, возвращенные почтовыми серверами из-за ошибок доставки (например, несуществующий ящик, переполненный inbox или блокировка антиспамом).
Процесс включает парсинг bounce-сообщений, классификацию ошибок и применение политик ретраев/отписок. Рассмотрим его детально.
1. Как MailerQ получает bounce-сообщения?
Когда удаленный сервер (например, Gmail или Yahoo) не может доставить письмо, он отправляет DSN (Delivery Status Notification) — техническое сообщение с кодом ошибки.
MailerQ обрабатывает такие письма через специальный SMTP-интерфейс (обычно на том же сервере), который:
- Принимает входящие письма от удаленных серверов. 
- Определяет, что это bounce (а не обычное письмо), по: - Заголовкам ( - Auto-Submitted: auto-replied).
- Специфичным кодам ошибок в теле (например, - 5.1.1 User unknown).
- Формату MDN (Message Disposition Notification) или DSN. 
 
2. Парсинг и классификация ошибок
MailerQ анализирует bounce и присваивает ему одну из категорий:
A. Hard Bounces (Фатальные ошибки)
- Причины: - 5.1.1— почтовый ящик не существует.
- 5.2.1— аккаунт отключен.
- 5.4.4— домен не резолвится (DNS error).
 
- Действия MailerQ: - Письмо не переотправляется. 
- Адрес автоматически заносится в suppression-list (если настроено). 
- Данные передаются в систему аналитики (например, ClickHouse). 
 
B. Soft Bounces (Временные ошибки)
- Причины: - 4.2.2— переполненный ящик.
- 4.4.7— таймаут доставки (сервер получателя перегружен).
- 4.7.1— временный блок антиспамом.
 
- Действия MailerQ: - Письмо ставится в очередь для ретраев (по умолчанию — 3 попытки с экспоненциальной задержкой). 
- Если после N попыток ошибка повторяется — адрес считается "мертвым". 
 
C. Blocklist Bounces (Блокировки)
- Примеры: - 5.7.1— IP/домен в черном списке (Spamhaus, Barracuda).
- 5.7.9— политика сервера (например, только TLS).
 
- Действия: - MailerQ может сменить IP-пул или отложить отправку. 
 
3. Где хранятся данные об отказах?
MailerQ интегрируется с внешними системами для логирования:
- RabbitMQ: Очередь - bouncesдля обработки в реальном времени.
- ClickHouse/MySQL: Хранение истории для отчетов. 
- Elasticsearch: Поиск по ошибкам. 
Пример записи в лог:
 
															4. Настройка обработки отказов
Конфигурация задается в config.json:
 
															5. Интеграция с внешними системами
A. Вебхуки для мгновенных уведомлений
MailerQ может отправлять POST-запросы при обнаружении hard bounce:
 
															B. RabbitMQ + CRM
- Bounce попадает в очередь - bounces_queue.
- CRM (например, Salesforce) забирает сообщения и обновляет статус контакта. 
C. ClickHouse для аналитики
Запросы для отчетов:
 
															6. Важные нюансы
- False Positives: Некоторые серверы (например, Exchange) могут ошибочно помечать письма как bounces. MailerQ использует алгоритмы проверки (анализ заголовков - Return-Path).
- Обратная связь (FBL): Для жалоб "спам" (не bounce!) MailerQ поддерживает Feedback Loop от ESP (Mailchimp, Yahoo). 
- Кастомные скрипты: Через Lua можно добавить свою логику (например, игнорировать временные ошибки для VIP-клиентов). 
MailerQ предлагает гибкую систему обработки отказов с:
- Автоматической классификацией ошибок. 
- Поддержкой ретраев и стоп-листов. 
- Интеграцией с аналитическими инструментами. 
Для максимальной эффективности важно:
- Регулярно чистить базу адресов по данным hard bounces. 
- Мониторить статистику (например, резкий рост soft bounces может указывать на проблемы с IP-репутацией). 



 
				 
		 
		 
		 
		
