Вперед Назад Содержание

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

- Установите последнюю версию tin -- можно пропустить
- Для включения возможности отображения кириллицы в файле конфигурации `~/.tin/tinrc` сделайте

        post_mime_encoding=8bit
        mail_mime_encoding=8bit

- Для включения mime (смотрите раздел mime ) установите переменную окружения `MM_CHARSET` равную KOI8-R и закомментируйте переменную `mm_charset` в файле конфигурации `~/.tin/tinrc`, или просто приравняйте `mm_charset` из `~/.tin/tinrc` KOI8-R (эта опция "перебивает" установку MM_CHARSET).

       mm_charset=koi8-r

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

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

### gnus

Для начала надо настроить MULE (См. раздел MULE).

Далее в .emacs добавить фразу:

    (gnus-mule-add-group "fido7" 'cyrillic-koi8)

Вперед Назад Содержание