Переменный обратный путь конверта - Variable envelope return path

Переменный обратный путь конверта (ВЕРП) - техника, используемая некоторыми список электронной рассылки программное обеспечение для автоматического обнаружения и удаления недоставленных адрес электронной почты. Он работает с использованием другого Обратный путь (также называемый «отправитель конверта») для каждого получателя сообщения.

Мотивация

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

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

Однако большинство сообщений о недоставке исторически создавались для чтения пользователями-людьми, а не обрабатывались автоматически программным обеспечением. Все они передают одну и ту же основную идею («сообщение от X к Y не могло быть доставлено по причине Z»), но с таким количеством вариаций, что было бы почти невозможно написать программу, которая надежно интерпретировала бы значение каждого сообщения о недоставке. RFC 1894 (устарело RFC 3464 ) определяет стандартный формат для решения этой проблемы, но поддержка этого стандарта далеко не универсальна. Однако существует несколько распространенных форматов (например, RFC 3464, qmail qsbmf и формат DSN Microsoft для Обмен ), которые покрывают большую часть отказов.

Microsoft Exchange может иногда возвращать сообщение без указания адреса, на который было отправлено исходное сообщение. Когда Exchange знает предполагаемого получателя, но не желает принимать от него электронную почту, он пропускает их адрес. Если сообщение отправлено на [email protected] и сервер знает, что это «Пользователь Джо», он вернет сообщение о том, что сообщение «Пользователю Джо» не может быть доставлено, не указав [email protected] адрес вообще. VERP - единственный жизнеспособный способ правильно обрабатывать такие отскоки.

Как VERP решает проблему обработки отказов

Сложная часть обработки отказов - сопоставление сообщения о недоставке с недоставленным адресом, который вызвал отказ. Если программа списка рассылки видит, что отказ был вызван попыткой отправить сообщение на [email protected], то ему не нужно понимать остальную информацию в сообщении. Он может просто подсчитать, сколько сообщений было недавно отправлено [email protected], и сколько получилось отказов, и если доля возвращенных сообщений слишком высока, адрес удаляется из списка.

Хотя форматы сообщений о недоставке в целом сильно различаются, есть один аспект сообщения о недоставке, который очень предсказуем: адрес, на который он будет отправлен. VERP в полной мере использует это. В списке рассылки, который использует VERP, для каждого получателя используется свой адрес отправителя.

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

Источник

Первым серьезным сторонником этого решения и создателем термина VERP для его описания был Дэниел Дж. Бернштейн, который первым претворил идею в жизнь в своем qmail MTA и ezmlm менеджер списков рассылки.[1]обновить

Пример

Предположим, существует список рассылки под названием [email protected] и что человек, [email protected] подписался на него, но позже Боб покинул example.org, поэтому его адрес больше не действителен. Подумайте, что происходит, когда кто-то отправляет сообщение в список.

Без VERP

Без VERP менеджер списков рассылки может отправить сообщение со следующими характеристиками:

Это приведет к отскоку, вызванному MTA на example.net или example.org со следующими характеристиками:

  • отправитель конверта: пустой
  • получатель: [email protected]
  • content: example.org не удалось доставить bob следующее сообщение: ...

От менеджера списка рассылки нельзя ожидать, что он поймет содержимое этого сообщения о недоставке, и он не может ничего вывести из адреса получателя, потому что сотни других людей, кроме Боба, также получали сообщения от [email protected].

С VERP

С VERP исходное сообщение было бы другим:

Тогда отскок будет более полезным:

  • отправитель конверта: пустой
  • получатель: [email protected]
  • content: example.org не удалось доставить bob следующее сообщение: ...

Из этого сообщения о недоставке менеджер списка рассылки может сделать вывод, что сообщение отправлено [email protected] должно быть не удалось.

В этом примере показан простейший возможный метод сопоставления VERP с подписчиком списка: весь адрес получателя включен в путь возврата, при этом знак at заменен знаком равенства, поскольку путь возврата с двумя знаками at будет недопустимым. Возможны другие схемы кодирования.

Программное обеспечение, поддерживающее VERP

Недостатки

Использование VERP требует, чтобы каждое сообщение отправлялось один раз каждому получателю, а не один раз каждому получателю. SMTP сервер. Это связано с ограничением SMTP, который позволяет указывать несколько адресов получателей в одной транзакции, но только один адрес отправителя. Когда много подписчиков в одном домен, список рассылки, не использующий VERP, может объединить несколько доставок в одну транзакцию. Он подключается к соответствующему сервер для домена дает единый адрес отправителя, адреса получателя, а затем отправляет содержимое сообщения только один раз.

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

Другая проблема с VERP (и с любой схемой автоматической обработки отказов) заключается в том, что есть MTA в Интернете, которые не соответствуют основным стандартам SMTP. VERP зависит от MTA получателей, следуя правилу, что отказы отправляются на отправитель конверта. Это стандартное требование с момента появления SMTP в 1982 г. (см. RFC 821 ), но все же есть MTA, которые ошибаются, обычно переходя по адресу в Из: заголовок.

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

Смотрите также

Рекомендации

  1. ^ Д. Дж. Бернштейн qmail, 1 февраля 1997 г.
  2. ^ https://meta.discourse.org/t/handling-bouncing-e-mails/45343
  3. ^ «Доставка электронной почты для ИТ-специалистов. Руководство по MailChimp» (PDF). Mailchimp.
  4. ^ http://compgroups.net/comp.mail.sendmail/sendmail-verp-ruleset/1311680