Автор работы: Пользователь скрыл имя, 13 Февраля 2012 в 14:37, реферат
Электронная почта - это основное средство коммуникаций Internet.
Она во многом похожа на обычную почту. С ее помощью письмо - текст, снабженный стандартным заголовком (конвертом) - доставляется по указанному адресу, который определяет местонахождение сервера и имя адресата, который имеет почтовый ящик на этом сервере, с тем, чтобы адресат мог его достать и прочесть в удобное время.
Электронная почта оказалась во многом удобнее обычной, "бумажной". Кроме того,
Ответ MTA-сервера может состоять из нескольких строк специального формата. Каждая строка (кроме последней) многострочного ответа начинается с кода ответа, дефиса (-), текста и комбинации CRLF. Последняя строка многострочного ответа начинается с кода ответа, за которым следует пробел:
123-Первая
строка сообщения из
123-Код ответа, 123, не изменяется
123-1 сообщение может начинаться с цифры
123 Последняя строка начинается не с дефиса, а с пробела
За кодом
каждой строки, кроме последней, следует
знак дефиса (-). Это необходимо, чтобы
клиент MTA смог отличить строку-продолжение
ответа от последней строки. За кодом
ответа в последней строке всегда
следует пробел.
Ограничения по размерам.
В стандарте SMTP сказано, что реализации SMTP не должны ограничивать максимальную длину обрабатываемых объектов (возможно, для будущих ра ширений стандарта).
Ограничения на размеры объектов SMTP
|
Если клиент МТА превысил ограничения на размер передаваемой информации, сервер МТА отвечает одним из следующих кодов:
500 Line too long.
(слишком
длинная строка)
501 Path too long.
(слишком
длинный путь)
552 Too many recipients.
(слишком
много получателей)
552 Too much mail data.
(слишком
много данных в сообщении)
При кодировании текста могут применяться следующие методы кодирования:
Метод UUENCODE является самым "старым", поэтому он часто используется в программах с давней историей, в частности, для почты off-line (UUCP), и, наоборот, в современных программах этот метод часто не поддерживается, но может включаться для "совместимости" с другими программами.
Методы кодирования по стандарту MIME применяются практически во всех современных программах для on-line почты (по протоколу POP).
Поддержка методов кодирования (UUENCODE/MIME) никак не связана с типом используемой почты (например, UUCP/POP), а определяется только возможностями почтовой программы. Более "старому" сервису (UUCP) часто служат более "старые" программы, то получается, что многие клиенты UUCP почты могут понять в лучшем случае UUENCODE-кодирование, а абоненты почтового ящика POP, наоборот, чаще работают с современным MIME-стандартом.
Таким образом, метод UUENCODE старайтесь использовать, если у Вашего абонента "старая" программа (например, Bmail для Dos), а если у него современная программа под Windows (например, Internet Mail, почтовый модуль в Netscape Navigator), то почти наверняка подойдет кодирование по стандарту MIME.
Стандарт MIME определяет 2 метода кодирования - Quoted Printable иBase64. метод Quoted Printable, когда большая часть текста набрана латинским шрифтом с небольшим "вкраплением" 8-битных символов (буквы русского алфавита, в частности), т.к. в этом методе кодируются только 8-битные символы, но количество их увеличивается не меньше чем вдвое.
Метод кодирования "Quoted-Printable"
Этот механизм
предназначен для представления
данных, в основном состоящих из
байтов, соответствующих символам,
имеющим изображение в
В Quoted-Printable байты должны быть представлены в соответствии со следующими правилами:
ПРАВИЛО #1: (обычное
8-битное представление). Каждый байт, кроме
тех, которые используются для обозначения
конца строки, может быть представлен
с помощью двух шестнадцатеричных
цифр, предваряемых знаком "=". При
написании шестнадцатеричных
ПРАВИЛО #2: (Буквенное представление). Байты с десятичным значением с 33 по 60 и с 62 по 126 МОГУТ быть представлены ASCII-символами, соответствующими этим значениям (с '!' по '<' и с '>' по '~').
ПРАВИЛО #3: (Пробелы):
Байты со значениями 9 и 32 МОГУТ быть
представлены как ASCII-символы "Табуляция"
и "Пробел", но НЕ ДОЛЖНЫ быть представлены
так в конце строки. Везде, где
они представлены соответствующими
ASCII-символами, за ними должен следовать
символ, имеющий графическое
ПРАВИЛО #4: (Конец строки): Конец строки в тексте письма должен быть представлен (в соответствии с RFC 822) последовательностью CRLF. Так как в каноническом представлении текста не требуется визуального отображения символов конца строки, в Quoted-Printable не используется видимых символов для обозначения конца строки. Для представления бинарных данных более предпочтительной является кодировка base64.
Необходимо заметить, что многие реализации почтовых программ могут кодировать по-своему. В частности, при представлении текста в системах, использующих другие соглашения по обозначению конца строки (отличные от CRLF). Такие реализации недопустимы, и генерация концов строки должна быть стандартизована везде, чтобы не требовалось распознавать, используется ли какое-либо альтернативное представление.
ПРАВИЛО #5: (Мягкий конец строки): В соответствии с Quoted-Printable длина строки не должна превышать 76 символов. В противном случае используется 'мягкий' перевод строки, представимый знаком равенства. Например, если исходная строка имела вид:
Now's the time for all folk to come to the aid of
their country.
то в Quoted-Printable encoding он может быть представлена следующим образом:
Now's the time =
for all folk to come=
to the aid of their country.
Это обеспечивает механизм восстановления исходной длины строки пользовательским почтовым агентом.
Поскольку символ
дефиса ("-") представляется в Quoted-Printable
в обычном виде, особую осторожность
нужно соблюдать при заключении
тела в Quoted-Printable в многочастное письмо,
чтобы удостовериться, что граница
этого включения не проявляется
нигде внутри этого включения (лучше
всего выбрать обозначение
ЗАМЕЧАНИЕ: Quoted-Printable
представляет собой нечто вроде
компромисса между
!"#$@[\]^`{|}~
в соответствии с правилом #1.
Так как данные в quoted-printable являются строчно-ориентированными, можно ожидать, что представление концов строки в Quoted-Printable будет изменено почтовым транспортом таким же образом, как и обычный текст может измениться при пересылке по Internet-почте между системами с разными соглашениями по представлению концов строки. Если подобные изменения могут нарушить целостность данных, то имеет смысл пользоваться кодировкой base64, а не Quoted-Printable.
Вниманию создателей ПО: Если двоичные данные пересылаются в Quoted-Printable, то надо соблюдать осторожность при кодировании символов CR и LF. В частности, последовательность CRLF должна быть представлена как "=0D=0A", в противном случае, если CRLF означает конец строки, то она может быть неверно интерпретирована в платформах с другими соглашениями по концу строки.
Синтаксис данных в quoted-printable описывается следующим образом:
quoted-printable := ([*(простой текст / ПРОБЕЛ / ТАБУЛЯЦИЯ) простой текст]
["="] CRLF)
; Максимальная длина строки - 76 символов, включая CRLF
простой текст := байт /<любой ASCII-символ "=", ПРОБЕЛ или ТАБУЛЯЦИЯ>
; символы, не перечисленные в приложении B к RFC 1521 как безопас-
; ные для почты, также не рекомендуются к использованию
байт := "=" 2(ФИФРА / "A" / "B" / "C" / "D" / "E" / "F")
; байт используется для символов > 127, =, ПРОБЕЛ, или ТАБУЛЯЦИЯ,
; и рекомендуется для
; ных в приложении B к RFC 1521 как безопасные для почты
Метод кодирования Base64
Этот алгоритм разработан для представления произвольных последовательностей байтов в форму, читаемую для человека. Кодирующий и декодирующий алгоритмы очень просты, но закодированные данные примерно на 33% больше, чем не кодированные. этот метод идентичен тому, который используется в приложениях PEM (Privacy Enhanced Mail), описанной в RFC 1421 с одним отличием: base64 не приемлет встроенного "чистого" текста.
Base64 использует 65-символьный поднабор из US-ASCII, выделяя 6 бит на каждый печатный символ. (65-й символ "=" используется для обозначения функции спец. обработки).
ПРИМЕЧАНИЕ: этот поднабор имеет важное свойство: он идентичен всем версиям языковой кодировки ISO 646, включая US ASCII, а также всем версиям EBCDIC. Другие популярные механизмы кодирования (uuencode, base85 - часть уровня 2 PostScript) не разделяют этих свойств и поэтому не удовлетворяют требованиям переносимости для двоичных данных электронной почты.
Процесс кодирования преобразует 3 входных символа в виде 24-битной группы, обрабатывая их слева направо. Эти группы затем рассматриваются как 4 соединенные 6-битные группы, каждая из которых транслируется в одиночную цифру алфавита base64. При кодировании base64, входной поток байтов должен быть упорядочен старшими битами вперед.
Каждая 6-битная
группа используется как индекс для
массива 64-х печатных символов. Символ,
на который указывает значение индекса,
помещается в выходную строку. Эти
символы выбраны так, чтобы быть
универсально представимыми и исключают
символы, имеющие специальное значение
для SMTP-транспорта (".", CR, LF) и для
синтаксиса вложенных тел MIME ("-").
Информация о работе Развитие стандартов кодирования сообщений электронной почты