SMTP-точка набивки.. когда и где это делать?

При передаче электронной почты я нашел противоречивую информацию о заполнении точек.

  • введите точку, если строка содержит одну точку (чтобы избежать преждевременного завершения)
  • введите точку в каждую строку stat начинается с точки
  • введите точку в (1) и каждую часть строки только части сообщения с цитируемой записью

Может ли кто-нибудь уточнить?

Ответ 1

Согласно стандарту SMTP RFC 5321, раздел 4.5.2:

http://tools.ietf.org/html/rfc5321#section-4.5.2

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

  • Перед отправкой строки текста почты клиент SMTP проверяет первый символ строки. Если это период, в начале строки вставлен еще один период.
  • Когда на почтовый сервер SMTP получен текст строки, он проверяет строку. Если строка состоит из одного периода, она рассматривается как индикатор конца почты. Если первый символ является периодом и в строке есть другие символы, первый символ удаляется.

Итак, из трех пунктов вашего вопроса, второй правильный.

Ответ 2

Практический ответ: если вы используете цитируемый формат для печати, всегда переводите точку в = 2E. Вы не можете полагаться на все серверы smtp, которые правильно выполняют удаление точек.

Если вы хотите, чтобы весь мир соответствовал стандартам, тогда перейдите к ответу 2 выше.

Ответ 3

В SMTP-протоколе почта заканчивается одной точкой и символом новой строки

В простых терминах что-то вроде:

\ г\п.\Г\п

Символы:

CR LF DOT CR LF

Это соответствует одной точке в начале строки.

Если почтовые данные содержат один. В начале строки и за ней следует новый символ строки, тогда протокол SMTP будет рассматривать его как завершение почты, и, следовательно, будет отправлена ​​только часть почты.

Итак, вся идея состоит в том, чтобы избежать такой ситуации, добавив дополнительную точку.