2009-08-05 7 views
136

На нашей рассылке приложения мы отправка электронной почты со следующим заголовком:Какова разница в поведении между обратным трактом, ответом и от?

FROM: [email protected] 
TO: [email protected] 
Return-PATH: [email protected] 

Проблема, с которой мы сталкиваемся в том, что некоторые почтовых сервера сразу отскакивают назад сообщение и использовать с или обратным путем (маркетинг @ клиент .com) вместо нашего сервера bounce mgmt. Мы хотим знать, изменим ли мы в заголовке ответ, чтобы он был таким же, как обратный путь, если мы сможем поймать все отскоки.

Любые другие идеи приветствуются?

Мы используем следующие документы в качестве ссылок: VERP RFC Bounce Messages

SMTP Log Parsing to get Bounces

EDIT 1: Несколько более битов информации, чтобы увидеть, если мы можем получить эту решимость.

Мы хотим знать, в какой момент сервер электронной почты, ретранслирующий сообщение, будет использовать ответ-по отношению к обратному пути. Мы заметили, что когда первый SMTP-сервер, ретранслирующий сообщение, отклоняется, он отправляет его в ответ-на, но когда это происходит после одного перехода, он отправляет его на обратный путь.

+1

Как насчет указания Отправителя: и Приоритет: поля?Я хотел бы узнать больше о том, как они влияют на разные почтовые серверы, когда дело доходит до отказов и аутсорсетов офисного типа. Кто-нибудь? – PapaFreud

+0

https://www.postmastery.com/blog/about-the-return-path-header/ –

ответ

213

Начнем с простого примера. Допустим, у вас есть список адресов электронной почты, который отправит следующий контент RFC2822.

From: <[email protected]> 
To: <[email protected]> 
Subject: Super simple email 
Reply-To: <[email protected]> 

This is a very simple body. 

Теперь предположим, что вы собираетесь отправить его из списка рассылки, который реализует VERP (или какой-то другой механизм отслеживания отказов, который использует другой обратный адрес). Допустим, у него будет обратный путь [email protected] SMTP сессия может выглядеть следующим образом:

{S}220 workstation1 Microsoft ESMTP MAIL Service 
{C}HELO workstation1 
{S}250 workstation1 Hello [127.0.0.1] 
{C}MAIL FROM:<[email protected]> 
{S}250 2.1.0 [email protected] OK 
{C}RCPT TO:<[email protected]> 
{S}250 2.1.5 [email protected] 
{C}DATA 
{S}354 Start mail input; end with <CRLF>.<CRLF> 
{C}From: <[email protected]> 
To: <[email protected]> 
Subject: Super simple email 
Reply-To: <[email protected]> 

This is a very simple body. 
. 

{S}250 Queued mail for delivery 
{C}QUIT 
{S}221 Service closing transmission channel 

Где {C} и представляют собой команды {S} клиента и сервера, соответственно.

почта получателя будет выглядеть так:

Return-Path: [email protected] 
From: <[email protected]> 
To: <[email protected]> 
Subject: Super simple email 
Reply-To: <[email protected]> 

This is a very simple body. 

Теперь опишем различные "FROM" с.

  1. Возвращение-Путь (иногда называемый обратный путь или конверт-ОТ - все эти термины могут быть использованы как взаимозаменяемые) является значением, используемым во время SMTP-сессии. Как вы можете видеть, это не должно быть того же значения, которое действительно найдено в заголовках писем. Предполагается, что почтовый сервер получателя должен добавить заголовок Return-Path в начало письма. Это записывает фактический отправитель Return-Path во время сеанса SMTP. Если заголовок Return-Path уже существует в письме, этот заголовок должен быть удален и заменен почтовым сервером получателя.

    Все отскоки, возникающие во время сеанса SMTP, должны возвращаться к значению Return-Path. Некоторые серверы могут принимать всю электронную почту, а затем локализовать ее локально, пока у нее не будет свободного потока, чтобы доставить его в почтовый ящик получателя.Если получатель не существует, он должен вернуть его обратно к записанному значению Return-Path.

    Обратите внимание, что не все почтовые серверы подчиняются этому правилу. Некоторые почтовые серверы возвратят его обратно на адрес FROM.

  2. Адрес FROM - это значение, фактически найденное в заголовке FROM. Предполагается, что это сообщение FROM. Это то, что вы видите как «ОТ» в большинстве почтовых клиентов. Если в письме нет заголовка Reply-To, все ответы на человеческий (почтовый клиент) должны возвращаться к адресу FROM.

  3. Заголовок ответа добавляется отправителем (или программным обеспечением отправителя). Здесь также должны быть затронуты все ответы человека. В основном, когда пользователь нажимает «ответить», значение Reply-To должно быть значением, используемым как реципиент вновь созданного письма. Значение Reply-To не должно использоваться ни одним сервером. Он предназначен для использования на стороне клиента.

    Однако, как вы можете судить, не все почтовые серверы подчиняются стандартам или рекомендациям RFC.

Надеюсь, это должно помочь прояснить ситуацию. Однако, если я что-то пропустил, дайте мне знать, и я постараюсь ответить.

+0

Это очень полезно. Спасибо за ваше время. Один вопрос. Может случиться так, что некоторые отказы идут к ответу, а не к обратному пути? – Geo

+0

Hi Geo, Да. Это вполне возможно. Есть много сломанных SMTP-серверов, или, по крайней мере, интерпретировать правила по-разному. Приветствия! Dave –

+0

Thx для отличного объяснения. Один вопрос о пути возврата: правильно ли я понимаю, что, когда почта покидает мой SMTP (как отправитель почты), на самом деле еще нет пути возврата? Оставляет ли почтовый сервер получателя только путь возврата к почте? – sl3dg3

115

Другой способ думать о Return-Path vs Reply-To - сравнить его с уличной почтой.

Когда вы отправляете конверт по почте, вы указываете обратный адрес. Если получатель не существует или отказывается от вашей почты, почтмейстер возвращает конверт обратно на обратный адрес. Для электронной почты обратный адрес - Return-Path.

Внутри конверта может быть буква, а внутри письма он может направить получателя на «Отправить корреспонденцию примерный адрес». Для электронной почты примерный адрес - Reply-To.

В сущности, адрес обратной почтовой корреспонденции сопоставим с заголовком Return-Path SMTP, а заголовок SMTP Reply-To похож на ответную инструкцию, содержащуюся в письме.

+11

Это хорошая аналогия. –

+0

@ Джесси Хобарт +1 за приятное объяснение, я был более смущен благодарю вас за то, что мне было легче понять меня. – Abhishek

+9

Я хотел бы указать, что первичная концепция, не захваченная в этой аналогии, состоит в том, что заголовок 'Return-Path' добавляется ** почтовым сервером ** получения ** и *** не * отправителем **. Так что это больше похоже на то, что вы можете написать любой адрес, который вы хотите внутри конверта, но для его доставки вы должны отправить его в почтовое отделение и показать им свою лицензию на драйверы (или другой идентификатор) и * они * поместите этот адрес на конверт перед отправкой. Другими словами, заголовок «Return-Path» заслуживает доверия, как проверки, выполняемые принимающим SMTP-сервером, где другие могут быть легко подделаны. – cdhowie

1

Мне пришлось добавить заголовок Return-Path в сообщениях электронной почты, отправленных экземпляром Redmine. Я согласен с greatwolf, только отправитель может определить правильный (не умолчанию) Return-Path. Дело в следующем: Электронная почта отправляется по электронной почте по умолчанию: [email protected] Но мы хотим, чтобы реальный пользователь, инициирующий действие, получил сообщения об отказе, потому что он будет знать, как исправить неправильные адресатов электронной почты (а не администраторы приложений, у которых есть другие кошки, чтобы хлынуть :-)). Мы используем это, и он отлично работает с exim на сервере приложений и zimbra в качестве конечного почтового сервера компании.

4

для тех, кто попал сюда, потому что название вопроса:

Я использую Reply-To: адрес с WebForms. когда кто-то заполняет форму, веб-страница отправляет автоматическое письмо владельцу страницы. From: - это адрес отправителя автоматической почты, поэтому владелец знает, что это из веб-формы. но адрес Reply-To: - это тот, который заполняется пользователем в форме, поэтому владелец может просто нажать на ответ, чтобы связаться с ним.