В нашем почтовом приложении мы отправляем электронные письма со следующим заголовком:
FROM: marketing@customer.com
TO: subscriber1@domain1.com
Return-PATH: bouncemgmt@ourcompany.com
Проблема, с которой мы сталкиваемся, заключается в том, что некоторые почтовые серверы немедленно возвращают сообщение и используют вместо него обратный путь от (marketing@customer.com) к нашему серверу bounce mgmt. Мы хотим знать, изменим ли мы в заголовке значение response-to, чтобы оно совпадало с путем возврата, если мы сможем перехватить все возвраты.
Любые другие идеи приветствуются?
В качестве ссылок мы используем следующие документы: VERP RFC Bounce Messages
Разбор протокола SMTP для получения отказов
РЕДАКТИРОВАТЬ 1: Еще несколько битов информации, чтобы увидеть, сможем ли мы получить это решение.
Мы хотим знать, в какой момент почтовый сервер, передающий сообщение, выберет использование ответа на запрос вместо пути возврата. Мы заметили, что, когда первый SMTP-сервер, ретранслирующий сообщение, отклоняется, он отправляет его в ответ на запрос, но когда это происходит после одного прыжка, он отправляет его в обратный путь.
Ответы:
Давайте начнем с простого примера. Допустим, у вас есть список адресов электронной почты, который рассылает следующий контент RFC2822 .
Теперь предположим, что вы собираетесь отправить его из списка рассылки, который реализует VERP (или какой-то другой механизм отслеживания отказов, который использует другой путь возврата). Допустим, у него будет обратный путь
coolstuff-you=yourcompany.com@mymailinglist.com
. Сеанс SMTP может выглядеть так:Где {C} и {S} представляют команды клиента и сервера соответственно.
Почта получателя будет выглядеть так:
Теперь давайте опишем различные «ОТ».
MAIL FROM
команде. Как видите, это не обязательно должно быть то же значение, что и в заголовках сообщений. Только почтовый сервер получателя должен добавлять заголовок Return-Path в начало письма. Это записывает фактического отправителя Return-Path во время сеанса SMTP. Если заголовок Return-Path уже существует в сообщении, этот заголовок удаляется и заменяется почтовым сервером получателя.Все отскоки, которые происходят во время сеанса SMTP, должны возвращаться к адресу Return-Path. Некоторые серверы могут принимать всю электронную почту, а затем ставить ее в очередь локально, пока у нее не появится свободная нить для доставки ее в почтовый ящик получателя. Если получатель не существует, он должен вернуть его обратно к записанному значению Return-Path.
Обратите внимание, что не все почтовые серверы подчиняются этому правилу; Некоторые почтовые серверы возвращают его обратно на адрес FROM.
Адрес FROM - это значение, найденное в заголовке FROM. Предполагается, что это сообщение от кого. Это то, что вы видите как «ОТ» в большинстве почтовых клиентов. Если электронное письмо не имеет заголовка Reply-To, то все ответы человека (почтового клиента) должны возвращаться на адрес FROM.
Заголовок Reply-To добавляется отправителем (или программным обеспечением отправителя). Это где все человеческие ответы должны быть рассмотрены тоже. По сути, когда пользователь нажимает «ответить», значение Reply-To должно быть значением, используемым в качестве получателя вновь составленного электронного письма. Значение Reply-To не должно использоваться никаким сервером. Он предназначен только для клиентского использования (MUA).
Однако, как вы можете сказать, не все почтовые серверы подчиняются стандартам или рекомендациям RFC.
Надеюсь, это должно помочь прояснить ситуацию. Однако, если я что-то пропустил, дайте мне знать, и я постараюсь ответить.
источник
return-path
это используется. Еслиreturn-path
предполагается, что это обратный адрес, почему почтовый сервер получателя заполняет это поле вместо отправителя? Как сервер получателя мог бы знать, что туда поместить? Разве это не кажется задом наперед?Sender:
заголовок вписывается во все это?Еще один способ думать о
Return-Path
противReply-To
- это сравнить его с обычной почтой.Когда вы отправляете конверт по почте, вы указываете обратный адрес . Если получатель не существует или отказывается от вашей почты, почтмейстер возвращает конверт обратно на обратный адрес. Для электронной почты, то обратный адрес является
Return-Path
.Внутри конверта может быть письмо, а внутри письма он может указать получателю: «Отправить корреспонденцию на примерный адрес». ». Для электронной почты, то пример адрес является
Reply-To
.По сути, адрес возврата почтового отправления сопоставим с
Return-Path
заголовком SMTP, аReply-To
заголовок SMTP аналогичен инструкциям ответа, содержащимся в письме.источник
Return-Path
заголовок добавляется получающим почтовым сервером, а не отправителем . Так что это выглядит примерно так: вы можете написать любой адрес внутри конверта, но чтобы доставить его, вы должны взять его с собой на почту и показать свои водительские права (или другое удостоверение личности), и они поместят этот адрес в конверт. перед отправкой. Другими словами,Return-Path
заголовок так же надежен, как и проверки, выполняемые принимающим SMTP-сервером, где другие могут быть легко подделаны.для тех кто попал сюда из-за заголовка вопроса:
Я использую
Reply-To:
адрес с веб-формами. когда кто-то заполняет форму, веб-страница автоматически отправляет электронное письмо владельцу страницы. адресFrom:
автоматического почтового отправителя, поэтому владелец знает, что он из веб-формы. ноReply-To:
адрес является тем, который заполняется в форме пользователем, поэтому владелец может просто нажать «Ответить», чтобы связаться с ним.источник
Мне пришлось добавить заголовок Return-Path в электронные письма, отправленные экземпляром Redmine. Я согласен с greatwolf, только отправитель может определить правильный (не по умолчанию) Return-Path. Дело в следующем: электронные письма отправляются с адресом электронной почты по умолчанию: admin@yourcompany.com. Но мы хотим, чтобы реальный пользователь, инициирующий действие, получал отказные электронные письма, потому что он будет единственным, кто знает, как исправить неправильные электронные письма получателей. (а не администраторы приложений, у которых есть другие кошки, чтобы взбить :-)). Мы используем это, и это прекрасно работает с exim на сервере приложений и zimbra в качестве конечного почтового сервера компании.
источник