Home

Page 116
Page 116
background image

таким   механизмом   кодирования   серверу,   в   противном   случае   клиенту 
необходимо воздержаться от передачи писем с таким механизмом кодирования 
серверу. При этом клиент может поступить одним из двух способов:

• Преобразовать   письмо   таким   образом,   чтобы   оно   содержало   только 

символы   набора  US-ASCII  (например,  воспользовавшись   методом  base64 
или Quoted-printable. 

• Рассматривать   данное   событие   как   постоянную   (permanent)   ошибку   и 

действовать соответствующе. 
В RFC явно не указано, как должны вести себя почтовые сервера, которые 

получили   от   клиентов   сообщения   с   механизмом   кодирования   8bit,   и   должны 
передать   эти   сообщения   серверу,   не   поддерживающему   данное   расширение, 
однако все, что сказано выше для клиентов можно распространить и на сервера, 
ибо   эти   правила   весьма   демократичны   и   не   обязывают   сервера   выполнять 
перекодирование.

Когда клиент передает письмо, использующее механизм кодирования 8bit, 

он должен использовать дополнительный параметр SMTP команды MAIL, данный 
параметр   называется  BODY  и   его   значение   должно   быть   равно   8BITMIME. 
Пример команды MAIL:

MAIL FROM: kalashnikoff@mail.ru BODY=8BITMIME

Рассмотрим   примеры   взаимодействий   с   использованием   данного 

расширения  SMTP.   Для   начала   проанализируем,   поддерживает   ли   данное 
расширение   сервер  MS  IIS  –   для   этого   проанализируем   приведенный   выше 
пример и обнаружим там строку 250-8bitmime  – расширение поддерживается. 
Попробуем написать письмо с помощью почтового клиента  The  Bat! в котором 
были   бы   символы   национальной   кодировки.   При   этом   важно   понимать,   что 
вопрос о том, пользоваться ли данным расширением  клиенту или нет решает 
либо   автор   клиента,   либо   пользователь,   конфигурирующий   клиента.   Клиент 
может закодировать данное сообщение с помощью с помощью Content-Transfer-
Encoding: base64/Quoted-Printable и вообще НЕ пытаться использовать стандарт, 
рассматриваемый нами сейчас. Продемонстрируем передачу письма серверу MS 
IIS с помощью The Bat! (файл 8bit_bat.cap).

Видно, что хотя почтовый сервер и сообщил клиенту, что поддерживает 

расширение   8bitmime,   клиент   НЕ   сообщил   серверу,   что   письмо   использует 
данный механизм кодирования данных (хотя, как видно из заголовка и тела, оно 
действительно  использует механизм кодирования 8bitmime  и содержит байты, 
не   принадлежащие   набору  US-ASCII).   Тем   самым   клиент   потенциально 
порождает проблему – сервер не знает о том, что данное письмо кодируется 8bit 
и при отправке его следующему серверу не будет стремиться убедиться в том, 
что   он   поддерживает   этот   механизм   кодирования.   Результатом   этого   вполне 
может   стать   искажение   письма   при   передаче   через   транспортную   систему 
электронной почты, таким образом, поведение The Bat! совсем нельзя похвалить 
.   Более   того,   сервер   передает   данное   письмо   своему   релейному   серверу, 

который   как   раз   и   не   поддерживает   8bitmime(!),   причем   передает   тоже   без 
замечания о том, какой механизм кодирования используется! Самое интересное 
во всем этом – письмо БЕЗ проблем и искажений передается по транспортной 
системе электронной почты, и получатель получает его НОРМАЛЬНО!


Copyright © 2022 Файлообменник files.d-lan.dp.ua

Использование любых материалов сайта возможно только с разрешения автора.