DSN (Delivery Status Notification): формат и коды уведомлений о доставке email
Delivery Status Notification (DSN) это стандартный способ, которым почтовые серверы сообщают об исходе доставки. Когда письмо доставить не удалось или когда отправитель явно попросил подтверждение, принимающий или промежуточный MTA формирует DSN и отправляет его на адрес из конверта (Return-Path). Формат описан в RFC 3464, а сама практика таких сообщений ровесница SMTP.
Что такое DSN
DSN (Delivery Status Notification) — это стандартный формат уведомлений о статусе доставки email. Когда письмо не может быть доставлено, принимающий (или промежуточный) сервер формирует DSN-сообщение и отправляет его на адрес Envelope From. Формат описан в RFC 3464.
DSN - это и есть тот «bounce», о котором говорят маркетологи. Но в техническом смысле bounce - это не просто факт отказа, а конкретное сообщение с машиночитаемым кодом статуса, диагностической информацией и заголовками исходного письма.
Коды статуса DSN
Код статуса в DSN имеет формат класс.тема.деталь (RFC 3463). Первая цифра определяет тип:
- 2.x.x — успех. Письмо доставлено. На практике положительные DSN генерируются редко.
- 4.x.x — временная ошибка. Сервер не смог доставить сейчас, но может позже. Пример: 4.2.2 (ящик переполнен).
- 5.x.x — постоянная ошибка. Письмо не будет доставлено. Пример: 5.1.1 (пользователь не найден), 5.2.1 (ящик отключён).
Как ESP обрабатывают DSN
Email-сервисы (ESP и SMTP relay) парсят входящие DSN автоматически. Система извлекает код статуса, адрес получателя и тип ошибки. На основе этого:
- 5.1.x (hard bounce) - адрес немедленно добавляется в suppression list. Повторная отправка на него блокируется.
- 4.x.x (soft bounce) - система ставит сообщение в очередь на повторную попытку. После N неудачных попыток (обычно 3-5) адрес также подавляется.
- Данные агрегируются в статистику bounce rate, которую видно в дашборде.
Проблемы с DSN на практике
Не все серверы генерируют корректные DSN. Некоторые отклоняют письма на этапе SMTP-транзакции (до генерации DSN) - тогда bounce фиксируется не через DSN, а через SMTP-ответ. Другие серверы молча отбрасывают сообщения без уведомления, чтобы не помогать спамерам определять валидные адреса.
Кроме того, bounce-адрес (Envelope From) может быть подделан спамером. В результате DSN уходит человеку, который не отправлял письмо. Этот эффект называется backscatter и сам по себе является формой спама.
DSN и валидация email
DSN сообщает о проблеме после попытки доставки. Валидация email решает задачу до отправки. SMTP-проверка (RCPT TO без DATA) по сути запрашивает у сервера получателя тот же ответ, который он выдал бы при реальной доставке, но без передачи тела письма. Это позволяет обнаружить 5.1.1 (user unknown) заранее, не генерируя bounce и не тратя репутацию IP.
uChecker выявляет невалидные адреса до отправки, чтобы вам не приходилось разбирать DSN-уведомления постфактум. Меньше bounces - чище статистика и стабильнее репутация отправителя.
