Настройка программ электронной почты и чтения новостей для
распознавания кириллицы не очень сложна, хотя вам следует
знать основные принципы работы электронной почты и новостей.
Обычно программы 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).
Мы начнем с настройки пользовательской программы электронной почты,
потому что именно с этой программой вы работаете непосредственно.
Ей нужно указать:
- что письма будут содержать 8-битные символы,
- с какой кодировкой вы работаете, и
- с какой кодировкой письма будут посылаться.
Кодировки нужно обозначать не произвольными именами, а
согласно рекомендаций
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"
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
В "природе" существует несколько программ рассылки электронной почты (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ми битный текст, вы вероятно хотите
посылать просто текст и быть уверенным, что все работает нормально.
Другие программы рассылки электронной почты
Я немного знаю о других программах рассылки почты. Если вы что-то
знаете, что может быть важно для настройки кириллицы, то пожалуйста,
сообщите мне.
Читать новостные группы можно с помощью Emacs (раздел
Emacs и XEmacs) или pine
(раздел
pine), но лучше воспользоваться
специализированными программами -- такими как tin.
tin
Установите переменную окружения MM_CHARSET
равную
KOI8-R и закомментируйте переменную mm_charset
в файле конфигурации ~/.tin/tinrc
, или
просто приравняйте mm_charset
из ~/.tin/tinrc
KOI8-R (эта опция "перебивает" установку MM_CHARSET).
Вперед
Назад
Содержание