Почему для электронной почты нужен конверт, и что означает “конверт”?

Лучше использовать StringBuilder (это - несинхронизируемая версия; когда Вы создаете строки параллельно?) в эти дни, почти в каждом случае, но вот то, что происходит:

, Когда Вы используете + с двумя строками, это компилирует код как это:

String third = first + second;

К чему-то вроде этого:

StringBuilder builder = new StringBuilder( first );
builder.append( second );
third = builder.toString();

Поэтому для просто небольших примеров, это обычно не имеет значения. Но когда Вы создаете сложную строку, Вы часто добирались намного больше для контакта с, чем это; например, Вы могли бы использовать много различных операторов добавления или цикл как это:

for( String str : strings ) {
  out += str;
}

В этом случае, новое StringBuilder экземпляр и новое String (новое значение out - String с неизменны) требуются в каждом повторении. Это очень расточительно. При замене этого синглом StringBuilder средства можно просто произвести сингл String и не заполнить "кучу" String с, о которой Вы не заботитесь.

16
задан Peeja 6 February 2014 в 16:53
поделиться

3 ответа

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

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

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

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

27
ответ дан 30 November 2019 в 16:14
поделиться

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

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

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

8
ответ дан 30 November 2019 в 16:14
поделиться

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

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

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

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

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

7
ответ дан 30 November 2019 в 16:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: