RFC 3798
RFC 3798 — это запрос комментариев (Request for Comments) под номером 3798, опубликованный в мае 2004 года в статусе «Предложенный стандарт» (Proposed Standard) Инженерным советом Интернета (IETF). Документ определяет формат сообщения о диспетчеризации (Message Disposition Notification, MDN), также известного как уведомление о прочтении или уведомление о доставке на стороне получателя. RFC 3798 является расширением протокола электронной почты и описывает механизм, с помощью которого почтовый клиент получателя может автоматически уведомить отправителя о том, что сообщение было прочитано, обработано, отклонено или удалено без прочтения.
История и предпосылки
Потребность в механизмах подтверждения получения электронных писем возникла практически одновременно с появлением самой электронной почты. В отличие от традиционной почтовой связи, где отправитель мог получить уведомление о вручении, в электронной почте отсутствовал стандартизированный способ узнать, было ли письмо доставлено до адресата и прочитано ли им. До появления RFC 3798 существовали различные проприетарные и нестандартизированные решения, такие как запросы на чтение (Read Receipts) в Microsoft Outlook и других почтовых клиентах, которые часто были несовместимы между собой.
IETF начала работу над стандартизацией уведомлений о диспетчеризации в конце 1990-х годов. Предшественником RFC 3798 стал RFC 2298, опубликованный в марте 1998 года, который также описывал формат MDN, но имел статус «Экспериментальный». Накопленный опыт использования RFC 2298 выявил ряд недостатков и неоднозначностей, что привело к разработке уточнённой версии. RFC 3798 был создан для замены RFC 2298 и получил статус «Предложенный стандарт», что означало его более высокий уровень зрелости и готовности к широкому внедрению. Авторами документа выступили Т. Хансен (T. Hansen) и П. Вольф (P. Voula).
Формат и структура сообщения MDN
Сообщение о диспетчеризации (MDN) представляет собой многосоставное (multipart) MIME-сообщение, которое отправляется в ответ на исходное письмо. Оно состоит из нескольких частей, каждая из которых выполняет свою функцию.
Заголовки MDN
MDN содержит специальные заголовки, которые отличают его от обычных писем. Ключевыми из них являются:
- Disposition-Notification-To: заголовок, добавляемый отправителем в исходное сообщение. Он содержит адрес электронной почты, на который должно быть отправлено уведомление. Если этот заголовок отсутствует, почтовый клиент получателя не должен генерировать MDN.
- Original-Message-ID: идентификатор исходного сообщения, на которое формируется ответ. Это позволяет отправителю связать уведомление с конкретным письмом.
- Disposition-Notification-Options: заголовок, который позволяет отправителю указать предпочтительный формат уведомления (например, только в случае отказа от прочтения).
Тело сообщения MDN
Тело MDN состоит из двух частей:
- Текстовое описание (text/plain): человекочитаемое сообщение, объясняющее суть уведомления. Например: «Ваше сообщение было прочитано получателем».
- Машиночитаемое описание (message/disposition-notification): структурированный блок, содержащий ключевые поля для автоматической обработки. Основные поля:
- Disposition: указывает действие, выполненное с сообщением. Может принимать значения, такие как
displayed(прочитано),deleted(удалено),processed(обработано) и другие. - Original-Recipient: адрес получателя, которому было доставлено сообщение.
- Final-Recipient: конечный адресат, если сообщение было переадресовано.
- Error: описание ошибки, если действие не удалось выполнить.
Пример структуры MDN
``` MIME-Version: 1.0 Content-Type: multipart/report; report-type=disposition-notification; boundary="boundary123"
--boundary123 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit
Ваше сообщение было прочитано получателем.
--boundary123 Content-Type: message/disposition-notification
Content-Transfer-Encoding: 7bit
Reporting-UA: MailClient/1.0 Original-Recipient: rfc822; recipient@example.com Final-Recipient: rfc822; recipient@example.com Original-Message-ID: 12345@sender.example.com Disposition: manual-action/MDN-sent-automatically; displayed
--boundary123-- ```
Классификация уведомлений
RFC 3798 определяет несколько типов действий (dispositions), которые могут быть указаны в MDN:
- displayed: сообщение было открыто и прочитано получателем.
- deleted: сообщение было удалено без прочтения.
- processed: сообщение было обработано автоматически (например, передано в систему документооборота).
- denied: получатель отказался от отправки уведомления.
- failed: произошла ошибка при обработке сообщения.
Действия могут быть дополнены модификаторами, такими как manual-action (действие выполнено вручную) или automatic-action (действие выполнено автоматически).
Применение и реализация
RFC 3798 нашёл широкое применение в корпоративных почтовых системах, где требуется подтверждение получения и прочтения важных писем. Он поддерживается большинством современных почтовых клиентов, включая Microsoft Outlook, Mozilla Thunderbird, Apple Mail и веб-интерфейсы, такие как Gmail и Яндекс.Почта. Однако реализация часто отличается: некоторые клиенты запрашивают разрешение пользователя перед отправкой MDN, другие отправляют его автоматически, а третьи игнорируют заголовок Disposition-Notification-To по умолчанию.
В России RFC 3798 используется в государственных и коммерческих организациях для документооборота, где требуется подтверждение получения юридически значимых сообщений. Однако российские стандарты электронного документооборота (например, ГОСТ Р 53898-2013) часто опираются на собственные форматы уведомлений, что ограничивает применение MDN в этой сфере.
Критика и ограничения
Несмотря на стандартизацию, RFC 3798 имеет ряд недостатков и критикуется как со стороны разработчиков, так и со стороны пользователей:
- Конфиденциальность: MDN раскрывает отправителю информацию о действиях получателя (например, время прочтения), что может нарушать приватность. Многие пользователи отключают отправку уведомлений или игнорируют запросы.
- Надёжность: MDN не гарантирует, что сообщение было действительно прочитано человеком. Например, почтовый клиент может автоматически отметить письмо как прочитанное при предварительном просмотре.
- Спам: злоумышленники могут использовать MDN для подтверждения существования активных почтовых адресов, что способствует распространению спама.
- Несовместимость: некоторые почтовые серверы и клиенты не поддерживают RFC 3798 или реализуют его с ошибками, что приводит к некорректной работе уведомлений.
Связь с другими стандартами
RFC 3798 тесно связан с рядом других документов IETF:
- RFC 5321 (SMTP): протокол передачи почты, по которому доставляются как исходные сообщения, так и MDN.
- RFC 5322 (Internet Message Format): формат сообщений электронной почты, на основе которого строится MDN.
- RFC 3461 (DSN): уведомления о статусе доставки (Delivery Status Notifications), которые информируют о доставке письма на почтовый сервер получателя, в отличие от MDN, которые сообщают о действиях на стороне клиента.
- RFC 2045-2049 (MIME): стандарты многосоставных сообщений, используемые для структурирования MDN.
Интересные факты
- RFC 3798 был опубликован 20 мая 2004 года и до сих пор не был заменён более новой версией, хотя некоторые его положения считаются устаревшими.
- В русскоязычной среде термин «уведомление о прочтении» часто смешивают с «уведомлением о доставке», хотя RFC 3798 и RFC 3461 описывают разные механизмы.
- Некоторые почтовые серверы, такие как Microsoft Exchange, могут генерировать MDN даже без явного запроса отправителя, что противоречит спецификации.
Источники
- RFC 3798 — Message Disposition Notification, IETF, 2004.
- RFC 2298 — An Extensible Message Format for Message Disposition Notifications, IETF, 1998.
- RFC 3461 — Simple Mail Transfer Protocol (SMTP) Service Extension for Delivery Status Notifications, IETF, 2003.
- RFC 5321 — Simple Mail Transfer Protocol, IETF, 2008.
- RFC 5322 — Internet Message Format, IETF, 2008.
- Книга: «Электронная почта: протоколы, стандарты, реализация» под редакцией Д. Крокера, 2010.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →