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 будет рассматривать его как завершение почты, и, следовательно, будет отправлена только часть почты.
Итак, вся идея состоит в том, чтобы избежать такой ситуации, добавив дополнительную точку.