Переменный путь возврата конверта
Переменный путь возврата конверта ( VERP ) — это метод, используемый некоторыми программами электронных списков рассылки для автоматического обнаружения и удаления недоставленных адресов электронной почты . Он работает, используя разные пути возврата (также называемые «отправителями конвертов») для каждого получателя сообщения.
Мотивация
[ редактировать ]Любой долгоживущий список рассылки рано или поздно содержит адреса, до которых невозможно добраться. Адреса, которые когда-то были действительными, могут стать непригодными для использования, поскольку человек, получающий почту, переключился на другого провайдера . В другом сценарии адрес может все еще существовать, но быть заброшен, а непрочитанная почта будет накапливаться до тех пор, пока не останется достаточно места для приема новых.
Когда сообщение отправляется в список рассылки, программное обеспечение списка рассылки повторно отправляет его по всем адресам в списке. Наличие недействительных адресов в списке приводит к отправке сообщений об отказе владельцу списка. Если список рассылки небольшой, владелец может прочитать сообщения о недоставке и вручную удалить недействительные адреса из списка. При большом списке рассылки это утомительная и неприятная работа, поэтому желательно автоматизировать процесс.
Однако большинство отказных сообщений исторически предназначались для чтения пользователями, а не автоматически обрабатывались программным обеспечением. Все они передают одну и ту же основную идею («сообщение от X до Y не может быть доставлено по причине Z»), но с таким количеством вариаций, что было бы практически невозможно написать программу, которая бы надежно интерпретировала значение каждого возвращенного сообщения. RFC 1894 (устаревший после RFC 3464) определяет стандартный формат для решения этой проблемы, но поддержка этого стандарта далеко не универсальна. Однако существует несколько распространенных форматов (например, RFC 3464, qsbmf от qmail и формат DSN от Microsoft для Exchange ), которые охватывают большую часть возвратов.
Microsoft Exchange иногда может вернуть сообщение без указания адреса, на который было отправлено исходное сообщение. Если Exchange знает предполагаемого получателя, но не желает принимать от него электронную почту, он опускает его адрес. Если сообщение отправлено на [email protected]
и сервер знает, что это «Пользователь Джо», он отправит сообщение о том, что сообщение «Пользователю Джо» не может быть доставлено, оставляя без внимания [email protected]
адрес вообще. VERP — единственный реальный способ правильно обрабатывать такие отскоки.
Как VERP решает проблему обработки отказов
[ редактировать ]Сложная часть обработки отказов — это сопоставление сообщения о возврате с недоставленным адресом, вызвавшим возврат. Если программное обеспечение списка рассылки видит, что отказ произошел в результате попытки отправить сообщение [email protected] , тогда ему не нужно понимать остальную информацию в ответе. Он может просто подсчитать, сколько сообщений было недавно отправлено на [электронная почта защищена] и сколько отказов было получено; и если доля возвращенных сообщений слишком высока, адрес удаляется из списка.
Хотя форматы сообщений о возврате в целом сильно различаются, есть один аспект сообщения о возврате, который очень предсказуем: адрес, на который оно будет отправлено . VERP в полной мере использует это. В списке рассылки, использующем VERP, для каждого получателя используется другой адрес отправителя.
Менеджер списка рассылки знает, что он отправил сообщение от X к Y, поэтому, если сообщение о возврате получено на адрес X, это может быть только потому, что адрес Y не был доставлен, поскольку ничего не было отправлено с X на какой-либо другой адрес. Таким образом, важная информация была извлечена из сообщения о возврате без необходимости разбираться в его содержании, а это означает, что лицу, ответственному за список, не нужно обрабатывать его вручную.
Источник
[ редактировать ]Первым серьезным сторонником этого решения и создателем термина VERP для его описания был Дэниел Дж. Бернштейн , который впервые применил эту идею на практике в своем qmail MTA и ezmlm . менеджере списков рассылки [1]
Пример
[ редактировать ]Предположим, существует список рассылки под названием [email protected]
и что человек, [email protected]
подписался на него, но позже Боб покинул example.org, поэтому его адрес больше не действителен. Рассмотрим, что происходит, когда кто-то отправляет сообщение в список.
Без ПАКЕТА
[ редактировать ]Без VERP менеджер списка рассылки может отправить сообщение со следующими характеристиками:
- отправитель конверта:
[email protected]
- получатель:
[email protected]
Это приведет к возврату, генерируемому MTA сайта example.net или example.org, со следующими характеристиками:
- конверт отправитель: пустой
- получатель:
[email protected]
- содержимое: сайту example.org не удалось доставить Бобу следующее сообщение: ...
Нельзя ожидать, что менеджер списка рассылки поймет содержимое этого возврата и не сможет сделать какие-либо выводы по адресу получателя, поскольку сотни других людей, помимо Боба, также получали сообщения от [email protected]
.
С ВЕРП
[ редактировать ]При использовании VERP исходное сообщение будет другим:
- отправитель конверта:
[email protected]
- получатель:
[email protected]
Тогда отскок будет более полезным:
- конверт отправитель: пустой
- получатель:
[email protected]
- содержимое: сайту example.org не удалось доставить Бобу следующее сообщение: ...
Из этого сообщения о возврате менеджер списка рассылки может сделать вывод, что сообщение отправлено [email protected]
должно быть, потерпел неудачу.
В этом примере показан простейший возможный метод сопоставления VERP с подписчиком списка: весь адрес получателя включается в обратный путь, при этом знак at заменяется знаком равенства, поскольку обратный путь с двумя знаками at будет недействительным. Возможны и другие схемы кодирования.
Программное обеспечение с поддержкой VERP
[ редактировать ]- ЦивиCRM
- ЭспоCRM
- Курьерский почтовый сервер
- Дискурс [2]
- exim , используя специальную комбинацию Маршрутизатор/Транспорт.
- езмлм
- GNU Почтальон
- G Suite
- Инксмейл
- Почтовая транспортная система Mercury
- млммдж [3]
- Память
- Mailchimp [4]
- Майлеон
- MediaWiki через mw:Extension:BounceHandler
- Мудл
- Plesk [5]
- постфикс
- qmail
- Sendmail с набором правил [6]
- СТЭдб
- Стронгмейл
- Хороший
- Тексиз
- Зимбра
- Целевой ящик
- УведомитьBC
- AWS SES (простая служба электронной почты)
Недостатки
[ редактировать ]Использование VERP требует, чтобы каждое сообщение отправлялось один раз каждому получателю, а не один раз каждому получающему SMTP- серверу. Это связано с ограничением SMTP, который позволяет указывать в одной транзакции несколько адресов получателей, но только один адрес отправителя. много подписчиков Когда в одном домене , список рассылки, не использующий VERP, может объединить несколько доставок в одну транзакцию. Он подключается к соответствующему серверу домена, предоставляет один адрес отправителя, адреса получателей, а затем отправляет содержимое сообщения только один раз.
С другой стороны, список рассылки, использующий VERP, должен повторно отправлять все тело сообщения, что приводит к общему увеличению использования полосы пропускания . Эта неэффективность обычно не считается большой проблемой, особенно пользователями qmail , поскольку qmail всегда отправляет сообщения одному получателю один раз, даже если VERP не используется. Некоторые пакеты смягчают влияние VERP, применяя его выборочно, например, менеджер списка рассылки может использовать VERP только в 1 из 10 рассылок. Таким образом, вы можете получить большую часть жесткого контроля отказов и точной обратной связи VERP, не неся при этом дополнительных затрат на обработку и сеть.
Другая проблема с VERP (и с любой схемой автоматической обработки возврата) заключается в том, что в Интернете есть MTA , которые не соответствуют базовым стандартам SMTP. VERP зависит от MTA получателей, следующих правилу: возвраты отправляются отправителю конверта . Это было стандартным требованием с момента появления SMTP в 1982 году (см. RFC 821), но до сих пор существуют MTA, которые делают это неправильно, обычно перенаправляясь на адрес в From:
заголовок .
Системы, реализующие серый список, отлично работают с VERP, если отправитель конверта соответствует вышеупомянутому формату. Однако некоторые реализации VERP используют номер сообщения или случайный ключ как часть VERP, что приводит к задержке каждого сообщения в списке рассылки, если только система серых списков не считает «похожие» адреса отправителя эквивалентными.
См. также
[ редактировать ]- Проверка тега адреса возврата (BATV) — для возвратов из -за обратного рассеяния
- Схема перезаписи отправителей (SRS) – для отказов от пересылки электронной почты и SPF.
- Простой протокол передачи почты (SMTP)
- проект расширения SMTP для оптимизации VERP
Ссылки
[ редактировать ]- ↑ DJ Bernstein qmail , 1 февраля 1997 г.
- ^ «Обработка возвращаемых писем» . 17 мая 2021 г.
- ^ менеджер списков рассылки mlmmj
- ^ «Доставка электронной почты для ИТ-специалистов. Руководство по MailChimp» (PDF) . Mailchimp .
- ^ «Поддержка Plesk VERP начиная с версии 18.0.30» .
- ^ «Набор правил Sendmail VERP — comp.mail.sendmail» . Архивировано из оригинала 27 октября 2014 года.
{{cite web}}
: CS1 maint: неподходящий URL ( ссылка )