В SMTP, должны ли RCPT TO: и TO: соответствовать? - программирование
Подтвердить что ты не робот

В SMTP, должны ли RCPT TO: и TO: соответствовать?

При отправке электронного письма список получателей предоставляется во время диалога SMTP с помощью команды RCTP TO :. Далее в команде DATA указываются поля заголовка, такие как "To", "Cc", "bcc". Должен ли этот список получателей RCPT TO соответствовать заголовкам, указанным в команде DATA?

Кроме того, если получатель указан не в RCPT TO, а в поле "Кому" заголовка электронной почты, будет ли он доставлен получателю не в RCPT TO?

4b9b3361

Ответ 1

Нет, они не должны совпадать. Когда сообщение отправляется, SMTP-сервер (aka Message Transfer Agent или MTA) создает так называемый SMTP-конверт, который содержит получателей и отправителя сообщения (см. RFC5321):

SMTP переносит почтовый объект. Почтовый объект содержит конверт и содержимое. Конверт SMTP отправляется в виде серии SMTP-протокола   единиц (описано в Разделе 3). Он состоит из создателя   адрес (к которому должны направляться отчеты об ошибках), один или несколько   адреса получателей и дополнительный материал расширения протокола.

На самом деле, часто, что RCPT TO: Command имеет больше получателей, что заголовок сообщения - один общий случай - использование "слепых копий" bcc: (см. RFC5321):

Адреса, которые не отображаются в разделе заголовка сообщения, могут появляться в командах RCPT для SMTP-сервера по ряду причин. два наиболее распространенных включают использование почтового адреса в качестве "списка exploder" (один адрес, который разрешается на несколько адресов) и появление "слепых копий".

Ответ 2

Этот список RCPT для списка получателей должен совпадать с заголовками указано в команде DATA?

Неа.

если получатель не указан в RCPT TO, но в поле To заголовок электронной почты, он будет доставлен получателю не в RCPT TO?

RCPT. Здесь (измененный) расшифровка с моего собственного клиента SMTP, где я делаю то, что вы спрашиваете:

CLIENT: MAIL FROM:<[email protected]>
SERVER: 250 2.1.0 OK 
CLIENT: RCPT TO:<[email protected]>
SERVER: 250 2.1.5 OK 
CLIENT: DATA
SERVER: 354  Go ahead 
CLIENT: Subject: Test email
CLIENT: From:'John Doe'<[email protected]>
CLIENT: To:'John Doe'<[email protected]>
CLIENT: This is a test...
CLIENT: .

Сообщение успешно отправлено на адрес "[email protected]".

Ответ 3

Протокол SMTP (RFC 2821) указывает следующее:

Когда используется формат RFC 822 [7, 32], почтовые данные включают в себя элементы заголовка заметки, такие как Дата, Тема, Кому, Копия, От. Сервер SMTP
системы НЕ ДОЛЖНЫ отклонять сообщения на основе воспринимаемых дефектов в RFC 822 или MIME [12] заголовка сообщения или тела сообщения.

И это:

Команда DATA может выйти из строя только в двух точках протокола обмен:

  • Если не было MAIL или команды RCPT, или все такие команды   были отклонены, сервер МОЖЕТ вернуть "команду из последовательности",   (503) или "нет действительных получателей" (554) ответ в ответ на DATA   команда. Если один из этих ответов (или любой другой ответ 5yz)   полученный клиент НЕ ДОЛЖЕН отправлять данные сообщения; Больше   как правило, данные сообщений НЕ ДОЛЖНЫ быть отправлены, если ответ 354   получен.

Из этих утверждений заголовки и RCPT TO: командный контент не должны совпадать (хотя они должны совпадать), а не с использованием RCPT TO: МОЖЕТ привести к ошибке, чтобы предотвратить продолжение с помощью команды DATA.