Расшифровка статусов SMTP

Анализатор кодов отказа email

Извлекайте стандартные трёхзначные и расширенные коды состояния из диагностического сообщения сервера и отделяйте временные ответы от постоянных, не придумывая причину.

Вставляйте только нужные строки диагностики. Предварительно удалите адреса получателей и другие персональные данные.

Расширенные коды состояния

Коды вида 5.1.1 или 4.2.2 состоят из трёх частей: класс, тема и детализация. Первая цифра означает успех (2), устойчивую временную ошибку (4) или постоянную ошибку (5). Остальные цифры уточняют категорию.

Осторожно с текстом получающего сервера

Диагностический текст формирует получающая система, и он бывает разным. Сохраняйте исходное событие для поддержки, но не делайте на основании одного ответа выводов о качестве адреса или доставляемости за пределами этой конкретной попытки доставки.

Выбирайте стратегию повторов осознанно

Временные ответы ставьте в очередь и повторяйте с ограниченной экспоненциальной задержкой. Постоянные ответы, как правило, не следует повторять без изменений. Добавляйте получателей в стоп-лист только по задокументированной политике и сохраняйте безопасный путь для ручной проверки неоднозначных ответов провайдера.

Вопросы об этом инструменте

Любой ответ 550 означает несуществующий адрес?

Нет. 550 — постоянный ответ SMTP, но его причина может быть связана с адресацией, политикой, содержимым, аутентификацией или другим условием. Ориентируйтесь на расширенный код и текст сервера.

Нужно ли повторять отправку после ответа 4xx?

Это класс временных ошибок, поэтому ограниченное число повторов может быть уместно. Соблюдайте рекомендации провайдера по повторам и не создавайте дублирующиеся задачи в приложении.

Доказывает ли отказ, что адреса никогда не существовало?

Нет. Он фиксирует лишь результат, который получающая система выдала для конкретной попытки в конкретный момент.