Ответ 1
Начнем с простого примера. Скажем, у вас есть список адресов электронной почты, который отправит следующий контент 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.
Теперь опишите разные "ОТ".
-
Возвращаемый путь (иногда называемый обратным путем или Envelope-FROM) - все эти термины могут использоваться взаимозаменяемо) - это значение, используемое во время сеанса SMTP. Как вы можете видеть, это не должно быть того же значения, которое действительно найдено в заголовках писем. Предполагается, что только почтовый сервер получателя должен добавить заголовок Return-Path в начало сообщения электронной почты. Это записывает фактический отправитель Return-Path во время сеанса SMTP. Если заголовок Return-Path уже существует в письме, этот заголовок должен быть удален и заменен почтовым сервером получателя.
Все отскоки, возникающие во время сеанса SMTP, должны возвращаться к значению Return-Path. Некоторые серверы могут принимать всю электронную почту, а затем размещать ее локально, пока у нее не будет свободного потока, чтобы доставить его в почтовый ящик получателя. Если получатель не существует, он должен вернуть его обратно к записанному значению Return-Path.
Обратите внимание, что не все почтовые серверы подчиняются этому правилу. Некоторые почтовые серверы возвратят его обратно на адрес FROM.
-
Адрес FROM - это значение, фактически найденное в заголовке FROM. Предполагается, что это сообщение FROM. Это то, что вы видите как "ОТ" в большинстве почтовых клиентов. Если в письме нет заголовка Reply-To, все ответы на человеческий (почтовый клиент) должны возвращаться к адресу FROM.
-
Заголовок Reply-To добавляется отправителем (или программным обеспечением отправителя). Здесь также должны быть затронуты все ответы человека. В основном, когда пользователь нажимает "ответить", значение Reply-To должно быть значением, используемым как реципиент вновь созданного письма. Значение Reply-To не должно использоваться ни одним сервером. Он предназначен для использования на стороне клиента.
Однако, как вы можете сказать, не все почтовые серверы подчиняются стандартам или рекомендациям RFC.
Надеюсь, это должно помочь прояснить ситуацию. Однако, если я что-то пропустил, дайте мне знать, и я постараюсь ответить.