Что такое DSN

Оглавление

DSN (Delivery Status Notification) — стандартное уведомление о статусе доставки письма. Его формирует почтовый сервер (MTA), когда нужно сообщить отправителю: письмо доставлено, задержано или не дошло.

В рассылках DSN чаще всего встречают как «баунс» или «отлуп»: ответ сервера с причиной недоставки. Но DSN — не любое письмо «Mail Delivery Failed…», а структурированный отчёт по RFC 3464: его удобно читать и человеку, и системе (платформе, SMTP-сервису, вашему обработчику вебхуков).

Коротко: отправили письмо → принимающий или промежуточный сервер не смог (или смог) доставить → обратно уходит DSN с полями Action, Status, Final-Recipient и часто с сырым SMTP-ответом в Diagnostic-Code.

Чем DSN отличается от отлупа и FBL

Отлуп / bounce — бытовой язык. «Пришёл отлуп» значит: письмо не доставлено, в ответе есть причина. Часто это как раз DSN, но иногда — простое текстовое письмо без машинночитаемого блока message/delivery-status.

DSN — формат уведомления о статусе доставки (RFC 3464) плюс расширенные коды статуса (RFC 3463). Внутри есть стабильные поля и код вида 5.1.1, а не только фраза «User unknown».

FBL (Feedback Loop) — другое уведомление: получатель нажал «Это спам». FBL не про «ящик не существует», а про жалобу.
DSN
Отлуп
FBL
О чём
Статус доставки (успех / задержка / отказ)
Обычно «письмо не дошло»
Жалоба на спам
Формат
multipart/report; report-type=delivery-status
Может быть чем угодно
Часто ARF
Почему
Сервер не принял / отложил доставку
То же + любой «возврат»
Кнопка «Спам» у человека

Как устроен DSN

Стандартный DSN — MIME-сообщение типа multipart/report; report-type=delivery-status.

Обычно три части:
  1. Человекочитаемый текст — «не удалось доставить…», свободная формулировка провайдера.
  2. Блок message/delivery-status — машинночитаемые поля. Это ядро DSN.
  3. Фрагмент исходного письма — чаще заголовки (иногда тело), чтобы понять, о каком сообщении речь.
Важные поля в блоке статуса (на получателя):
Поле Зачем
Final-Recipient Адрес, на который не дошло (или дошло)
Original-Recipient Адрес из исходного RCPT TO, если он отличался
Action Что произошло: failed, delayed, delivered, relayed, expanded
Status Код X.Y.Z по RFC 3463 (транспортно-независимый)
Diagnostic-Code Сырой ответ SMTP, например smtp; 550 5.1.1 User unknown
Remote-MTA Какой сервер ответил
Last-Attempt-Date Когда была последняя попытка
Will-Retry-Until До какого момента будут ретраи (для delayed)
Пример ответа:

Final-Recipient: rfc822;

user@example.com


Action: failed
Status: 5.1.1


Diagnostic-Code: smtp; 550 5.1.1 User unknown


Важно: SMTP-код (550) и Status (5.1.1) — разные вещи. В одном DSN часто есть оба. Для автоматики надёжнее опираться на Status и Action; Diagnostic-Code помогает человеку и поддержке.

Отправитель DSN зависит от пути письма: это может быть сервер получателя или последний MTA, который «понял», что доставка не вышла. Отчёт уходит на адрес из Return-Path (envelope sender), а не обязательно на то, что в поле From.

Коды и действия

Код (status) — фиксирует и расшифровывает ошибку.
Пишется как класс.тема.деталь, например 5.1.1 или 4.2.2.
Класс
Смысл
На языке рассылок
2.X.X
Успех
Доставка состоялась (если Action: delivered)
4.X.X
Временная проблема
Soft bounce — сделать ретрай
5.X.X
Постоянная ошибка
Hard bounce — на адрес больше не слать
Частые примеры:
  • 5.1.1 — почтовый ящик не существует / неизвестен получатель
  • 5.2.2 / рядом с SMTP 452 — ящик переполнен (у части провайдеров формулировки «ломают» схему — классика Яндекса с 552 на переполнение; детали в разъяснительной про ошибки недоставки)
  • 5.7.1 — отказ по политике / подозрение на спам / блок
  • 4.2.1 / 4.4.x — временная недоступность, очередь, сеть
Действие (action) — короткое решение сервера:
  • failed — доставка не удалась (обычно hard или финальный soft после ретраев)
  • delayed — пока не доставлено, будут повторы
  • delivered — доставлено (успешный DSN; встречается реже в быту, чем «баунсы»)
  • relayed / expanded — передано дальше / раскрыт список рассылки
В платформе soft bounce обычно соответствует классу 4, hard — классу 5. Политика ретраев и смена статуса подписчика — в ошибках недоставки ›

Зачем DSN нужен отправителю рассылок

DSN — основной сигнал, что с адресом или доставкой что-то не так. По ним:
  1. Чистят базу. Hard bounce (5.x.x, Action: failed) — кандидат в стоп: повторные отправки на мёртвые адреса бьют по репутации и доставляемости.
  2. Отличают временное от постоянного. Soft (4.x.x) — ждут ретраи; не нужно сразу выкидывать контакт.
  3. Ловят системные проблемы. Всплеск 5.7.1 или блокировок — сигнал смотреть IP, домен, контент, прогрев, а не только «битые» имейлы.
  4. Автоматизируют обработку. ESP и SMTP-сервисы парсят DSN и отдают статусы в отчёт и вебхуки. Без стандартного формата пришлось бы разбирать свободный текст каждого провайдера.
На практике: смотрите Action + Status, при необходимости — Diagnostic-Code. Если доля недоставок растёт выше комфортного уровня (ориентир порядка 0,5% — см. разъяснительную), сначала разберите топ кодов, потом уже чистите базу и настройки.

Вам не обязательно вручную разбирать каждый RFC-блок: в Mailganer причины недоставки уже сведены в отчёт по рассылке и в историю подписчика. Если код неочевидный — напишите в поддержку с примером ответа сервера и адресом.
Помогает перевести клиентские запросы на язык, понятный команде разработки. Отслеживает баги и тестирует новые фичи. Собирает идеи по улучшению продукта — и следит, чтобы они доехали до прода.

Стать автором блога Mailganer ›
Виктор Русин
Технический специалист поддержки Mailganer
23.07.2026
дата публикации
23.07.2026
дата последнего обновления