Зачем электронной почте нужен конверт, и что означает «конверт»? - PullRequest
16 голосов
/ 17 ноября 2009

Какая разница между конвертом и письмом в smtp?

Зачем протоколу нужен конверт? В обычной почте письмо не должно содержать адресов и невидимо для почтальона (по крайней мере, это то, во что вы хотите верить), поэтому вся маршрутизация полностью основана на конверте, и это для меня ясно.

Однако в электронном письме само письмо может быть проанализировано и имеет заголовки, такие как От: и До :. Почему этого недостаточно для маршрутизации электронной почты? Зачем нам нужен конверт?

А в чем смысл расхождения между конвертом и самим письмом? Обязательно ли это означает, что кто-то пытается разыграть систему, или это при определенных обстоятельствах (при каких обстоятельствах?) Законно иметь разницу между ними.

Ваши разъяснения приветствуются.

Озадаченный приемник электронной почты.

Ответы [ 3 ]

27 голосов
/ 17 ноября 2009

Адрес получателя в команде SMTP RCPT TO: - это то, что транспорт почты использует для определения фактического получателя электронной почты. Адреса в заголовках To: и Cc: предназначены для чтения почты пользователями, которые являются получателями, но на самом деле они не используются почтовыми транспортами.

Большинство почтовых клиентов задают одинаковые адреса в командах SMTP RCPT TO: и MAIL FROM:, которые они вставляют в заголовки To :, Cc: и From:, поэтому адреса «конвертов» будут такими же, как адреса в заголовки.

Адреса конвертов и заголовков обычно согласуются для большинства законных писем. Заметными исключениями являются Bcc: адреса и списки рассылки.

Спаммеры часто подделывают адреса заголовков, пытаясь избежать спам-фильтров.

8 голосов
/ 18 ноября 2009

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

Если вы не используете конверт, вам придется отправить все сообщение на SMTP-сервер, прежде чем вы сможете узнать, нужно ли отклонить сообщение. Некоторые сообщения довольно большие (я видел сообщения размером более 100 мегагерц, работающие с изображениями ГИС).

Используя Конверт, мы можем выдавать определенные однострочные команды для почтового сервера, и почтовый сервер сообщит нам, если мы успешны или нет, прямо тогда и там.

7 голосов
/ 20 ноября 2009

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

Что не было сказано, так это то, что RCPT TO: используется для направления сообщения конкретному пользователю независимо от того, где имя пользователя появляется в заголовках. Пользователь не обязательно должен появляться в заголовках To: или даже Cc:. Подумайте о Bcc:, где единственное, что знает получатель, это то, откуда пришло сообщение. В этом случае заголовки To: и CC: должны быть пустыми - следовательно, часть вслепую BCC. В другом случае, если в сообщении электронной почты есть пользователь, упомянутый в списке CC вместе с 10 другими пользователями, как маршрутизация SMTP может выбрать подходящего пользователя. Ответ заключается в том, что для маршрутизации сообщения используется строка RCPT.

Это также используется при маршрутизации через списки рассылки. Заголовок To: будет содержать адрес электронной почты списка рассылки. Система SMTP будет генерировать отдельные сообщения для каждого пользователя в списке, каждый с определенным конвертом RCPT TO: user@host.... В этом случае имя пользователя даже не появится ни в одном из других заголовков.

...