Next Previous Contents

7. Использование кириллицы в программах электронной почты и чтения новостей

Настройка программ электронной почты и чтения новостей для распознавания кириллицы не очень сложна, хотя вам следует знать основные принципы работы электронной почты и новостей.

Обычно программы Internet электронной почты состоят из двух частей: MUA (Mail User Agent -- пользовательская программа электронной почты) и MTA (Mail Transfer Agent -- программа рассылки электронной почты). MUA - это программа, которую вы используете для чтения, составления и посылки электронных сообщений. Однако пользовательская программа электронной почты сама письма не посылает; вместо этого она вызывает программу рассылки электронной почты, которая отвечает за посылку сообщения в соответствующем направлении, используя соответствующий протокол. Пример пользовательской программы электронной почты -- Pine, программы рассылки электронной почты -- qmail.

До недавнего времени и MTA, и MUA по умолчанию не были чисто 8-ми битными программами. Поэтому, когда вы посылаете сообщение, скажем, из Америки в Россию, то вы никогда не будете уверены в том, что какая-нибудь промежуточная программа рассылки электронной почты не "откусит"  в вашем сообщении 8-ой бит у каждой буквы в вашем сообщении. Поэтому был разработан ряд протоколов, которые позволяют закодировать любой тип данных с использованием только печатаемых символов из 7-ми битного ASCII. Эта группа протоколов зовется MIME (MultimedIa Mail Encoding -- мультимедийная кодировка электронных сообщений).

Так как MIME обычно сконфигурирован по умолчанию довольно правильно, мы не будем обсуждать его здесь. Мы поговорим о MIME, когда будет обсуждаться совместимость между русскими кодировками (См. раздел mime).

Мы начнем с настройки пользовательской программы электронной почты, потому что именно с этой программой вы работаете непосредственно. Ей нужно указать:

  1. что письма будут содержать 8-битные символы,
  2. с какой кодировкой вы работаете, и
  3. с какой кодировкой письма будут посылаться.
Кодировки нужно обозначать не произвольными именами, а согласно рекомендаций IANA.

Конечно, указывая кодировку для посылаемых писем, вы должны действовать в соответствии с существующими стандартами. Стандарт для России: для электронной почты используется KOI8-R, именем этой кодировки согласно рекомендаций IANA является koi8-r. В Болгарии же для электронной почты используется кодировка cp1251, имя согласно IANA -- windows-1251.

(Письма, которые получал (и посылал) Антон Зиновьев в Сербию и Македонию, использовали кодировку ISO-8859-5. Но пользователи Windows вряд ли используют ISO-8859-5 -- так что какая кодировка является стандартом для этих стран, совершенно непонятно.)

Дополнение: Довольно часто случается так, что те, кто посылают вам письма, неправильно настраивают (или не настраивают вообще, а по умолчанию стоит черте-че -- пример Outlook) свои почтовые программы. В заголовках писем вместо windows-1251 чаще всего стоит iso-8859-1, US-ASCII или UNKNOWN-8BIT. Для исправления получаемых писем создайте файл ~/.procmailrc со следующим содержанием (но я предупреждаю вас, что после ошибки в ~/.procmailrc вы можете потерять всю вашу почту):


:0 fHw
* ^Content-Type: *text/plain; *charset="?(iso-8859-1|US-ASCII|UNKNOWN-8BIT)"?
| formail -i "Content-Type: text/plain; charset=windows-1251"

7.1 Настройка пользовательской программы электронной почты (MUA)

Emacs

Если вы уже настроили emacs как таковой, то вам не нужно специально настраивать программу электронной почты, которая обеспечивается средствами Emacs. (Для настройки Emacs смотрите раздел Emacs и XEmacs).

elm

Добавьте следующую запись в ваш ~/.elm/elmrc:

CHARSET=koi8-r

pine

Добавьте следующую запись в ~/.pinerc для персональной настройки или в /usr/lib/pine.conf для настройки всей системы (эту опцию можно настроить прямо из pine):

character-set=koi8-r

Вы можете также изменить настройку вашего Pine для того, чтобы предотвратить посылку письма в quoted-printable кодировке.

enable-8bit-nntp-posting
enable-8bit-esmtp-negotiation

Кроме того, удостоверьтесь, что вы имеете свежую версию pine. До недавнего времени эта программа имела различные проблемы с русским кодировками.

Дополнение: Чтобы настроить перекодировку win в koi в pine в .pinerc следует прописать нечто вроде (это можно сделать и из самого pine):


  display-filters=_CHARSET(iso8859-5)_ /usr/local/bin/icat,
          _CHARSET(utf-8)_ /usr/local/bin/ucat,
          _CHARSET(windows-1251)_ /usr/local/bin/wcat

Вместо icat, wcat и ucat можно написать, скажем, iconv -from что-надо -to что-надо, или recode. Главное -- писать с полным путем, а то у нее паранойя (и это правильно).

mutt

Добавьте следующую запись в ваш ~/.muttrc:

set charset=koi8-r
set allow_8bit

Эта программа автоматически перекодирует получаемые письма, если они написаны не в стандартной кодировке. Кроме того, она умеет перекодировать отправляемые письма, если вы используете кодировку, отличную от стандартной для электронной почты в вашей стране -- если вы хотите воспользоваться этой особенностью, то укажите это в ~/.muttrc.

Например, если вы живете в России и используете cp1251, то, чтобы ваши письма отправлялись в KOI8-R, поместите следующие три строки в ~/.muttrc:

set charset=windows-1251
set send_charset=koi8-r
set allow_8bit

Если версия sendmail старше 8, то, вероятно, в ~/.muttrc следует добавить директиву:

set use_8bitmime

7.2 Настройка вашей программы рассылки электронной почты (MTA)

В "природе"  существует несколько программ рассылки электронной почты (MTA), доступных для вас. Это sendmail, qmail, smail, exim, и так далее.

sendmail

Начиная с версии 8, sendmail по умолчанию правильно обрабатывает 8ми битные данные. Если этого не происходит -- проверьте опцию EightBitMode и опцию 7 в разделе mailers в вашем файле /etc/sendmail.cf. Подробнее смотрите руководство "Sendmail. Operation and Installation Guide".

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

Другие программы рассылки электронной почты

Я немного знаю о других программах рассылки почты. Если вы что-то знаете, что может быть важно для настройки кириллицы, то пожалуйста, сообщите мне.

7.3 Настройка программы чтения новостей

Читать новостные группы можно с помощью Emacs (раздел Emacs и XEmacs) или pine (раздел pine), но лучше воспользоваться специализированными программами -- такими как tin.

tin

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

Про mime: Так нужен или не нужен mime?

Сергей Дубров:В news-ах -- скорее нет, чем да -- с mime проблем больше, с тем же "сабжектом". Пишите себе в KOI8-R, без mime -- вас поймут. А вот в e-mail лучше mime все-таки использовать.


Next Previous Contents
Используются технологии uCoz