Электронная почта по-русски

(Продолжение. Начало в №12)

А как же с почтой

Итак, мы назвали четыре кодировки кириллицы. Все они объективно существуют, всеми пользуются. А почта? Internet - это то место, где вопрос, какую кодировку применять, перестает быть личным делом каждого. Если вы отправляете кому-то сообщение, то затем, вероятно, чтобы его прочитали. Если ваш получатель работает в DOS, а вы - в Windows, то простая пересылка текста вам вряд ли поможет. Даже если письмо, отправленное в Альтернативной кодировке из DOS, дойдет до адресата в неискаженном виде, получателю придется:

  • либо также запустить программу для DOS, чтобы его прочитать,
  • либо каким-то образом перекодировать полученный текст, чтобы его смогла отобразить программа для Windows,
  • либо обучить программу для Windows отображать "неродную" кодировку кириллицы,
  • либо любоваться "зюками" на экране.

Проще говоря, для того, чтобы обмениваться почтой по-русски, НАДО ЧТО-ТО НАЛАДИТЬ. Об этом мы и поговорим.


А если не налаживать

Для тех, кто не хочет ничего налаживать, есть готовые решения. Например, для DOS - пакет под названием UUPC. Вам придется его установить и пользоваться только им, и только в DOS, и только в сочетании с модемом. Зато он будет конвертировать отправляемую корреспонденцию в кодировку КОИ-8, а приходящую - в Альтернативную. Вам об этом думать не надо. Если хочется чего-нибудь покрасивее - читайте дальше.

Для остальных сообщаем...

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

user agent - delivery agent - (delivery agent) - delivery agent - user agent

Пользователь взаимодействует с почтовой программой (user agent), которая позволяет ему вводить и читать письма, организовывать хранение пришедших писем, вести адресные книги и так далее. Можно сказать, что основная функция user agent - предоставить удобный пользовательский интерфейс. Чтобы доставить или получить письмо, user agent обращается к ДОСТАВЩИКУ (delivery agent), который пользовательского интерфейса не имеет, зато владеет тонкостями маршрутизации корреспонденции. ДОСТАВЩИК напрямую или через промежуточные машины передает письмо другому ДОСТАВЩИКУ, который обслуживает адресата. Тот кладет письмо в персональный почтовый ящик, откуда его забирает user agent (почтовая программа) получателя. Это схема общая, в реальной жизни пользовательская почтовая программа может включать в себя часть функций ДОСТАВЩИКА. Мы рассмотрим некоторые варианты ниже.

Итак, где-то надо перекодировать письма. Уходящие - в КОИ-8, приходящие - в ту кодировку, которую предпочитает пользователь. Исходя из нашей схемы, это может сделать: - user agent - delivery agent

Рассмотрим каждый вариант.


Перекодировка в почтовой программе

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

Как вы, наверное, заметили, модульность приведенной выше схемы предоставляет нам свободу выбора почтовой программы. Таких программ достаточно много. Их десятки для UNIX и сотни для Windows. Один этот факт должен нас насторожить, если мы собираемся выработать сколько-нибудь общее решение. Ведь все это изобилие создано другими людьми, в большинстве своем американцами (см. выше), которые не подозревали о нашей с вами потребности почту перекодировать. И никак не приспособили свои (в большинстве - просто чудесные) программы к такой перекодировке.

Здесь стоит упомянуть одну замечательную почтовую программу - Zmail, в которую с самого начала была заложена возможность автоматической обработки приходящей, уходящей и сохраняемой в папках корреспонденции. Однако все усилия автора и его коллег использовать эту возможность для перекодировки пошли в свое время прахом. Этого Zmail не смогла.

Большой выбор означает, что даже если мы научим конкретную программу почту перекодировать, это все равно будет частное решение - мы не сможем заставить всех пользоваться именно этой программой (даже если мы - Microsoft), а нам ведь с ними (всеми) переписываться...

Тем не менее, бывают ситуации, когда оторванный от Родины простой русский человек, не имеющий ни понимающего его проблемы провайдера, ни UNIX на своей машине, просто вынужден что-то предпринимать. Давайте сразу дадим таким пользователям пару советов:

  • если сможете, найдите почтовую программу, умеющую перекодировать корреспонденцию. Или напишите такую программу сами, если это дело вам по душе;
  • иначе достаньте руссификатор для Windows (пользователи DOS перестали читать раньше, а пользователи UNIX и локальных сетей будут обслужены далее по тексту), который позволяет вводить и отображать (т.е. имеет соответствующий набор шрифтов) кодировку КОИ-8. В качестве такого руссификатора мы можем скромно предложить наш собственный. Настройте почтовую программу таким образом, чтобы она использовала шрифты КОИ-8, а для ввода текста переключайте клавитуру не на стандартную для Windows кодировку 1251, а на ту же КОИ-8.

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

В большинстве случаев почтовые программы пугаются любых 8-битных символов и начинают их шифровать при отправке так, что потом 90% народа прочесть не может. Это гордо называется MIME, "quoted-printable" и проч. Если вы хотите быть понятыми, ОТКЛЮЧАЙТЕ шифровку 8-битных символов. Далеко не все почтовые программы могут автоматически и корректно восстановить текст из бессодержательного набора букв, цифр и знаков препинания.

Посылая подобные письма неизвестному вам адресату (с которым вы не успели договориться о вашем общем формате писем), вы проявляете к нему неуважение. Я лично воспринимаю такие послания не как неуважение, а как проявление технической безграмотности, не знаю, что для отправителя лучше. Обычно подобными вещами грешат торговцы, заваливающие наши почтовые ящики своими объявлениями.

Наиболее одиозный случай из моей практики - письмо, содержащее зашифрованный программой UUENCODE ZIP-архив, содержащий в свою очередь текст в Альтернативной кодировке. Сколько надо потратить времени, чтобы его прочесть пользователю Windows? При этом письмо не очень большое, компрессия дает экономию только отправителю, рассылающему его по сотням, если не тысячам адресов.

(Продолжение следует)

Сергей Мелихов,
DataX/FLORIN, Inc.

Версия для печатиВерсия для печати

Номер: 

13 за 1997 год

Рубрика: 

Телекоммуникации
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!