Настройка программ электронной почты и чтения новостей для распознавания кириллицы не очень сложна, хотя вам следует знать основные принципы работы электронной почты и новостей.
Обычно программы 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).
Мы начнём с настройки пользовательской программы электронной почты, потому что именно с этой программой вы работаете непосредственно. Ей нужно указать:
Кодировки нужно обозначать не произвольными именами, а согласно рекомендаций IANA.
Конечно, указывая кодировку для посылаемых писем, вы должны действовать в соответствии с существующими стандартами. Стандарт для России: для электронной почты используется KOI8-R, именем этой кодировки согласно рекомендаций IANA является koi8-r. В Болгарии же для электронной почты используется кодировка cp1251, имя согласно IANA -- windows-1251.
Дополнение: Довольно часто случается так, что те, кто посылают вам письма,
неправильно настраивают (или не настраивают вообще, а по умолчанию стоит
чёрте-что -- пример 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 и XEmacs).
Добавьте следующую запись в ваш ~/.elm/elmrc
:
CHARSET=koi8-r
Добавьте следующую запись в ~/.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
. Главное -- писать с полным
путём, а то у неё паранойя (и это правильно).
Добавьте следующую запись в ваш ~/.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
, и так далее.
Начиная с версии 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.
В отличии от электронной почты в программах чтения новостей лучше не пользоваться mime, а писать сразу в в KOI8-R - вас поймут и без mime.
Если ваш tin работает, то есть вы можете читать/вводить кириллицу, то лучше ничего не менять, если же у вас возникают проблемы, то выполните следующие действия:
~/.tin/tinrc
сделайте
post_mime_encoding=8bit mail_mime_encoding=8bit
MM_CHARSET
равную
KOI8-R и закомментируйте переменную mm_charset
в файле конфигурации
~/.tin/tinrc
, или просто приравняйте mm_charset
из
~/.tin/tinrc
KOI8-R (эта опция "перебивает" установку
MM_CHARSET).
mm_charset=koi8-r
Для начала надо настроить MULE (См. раздел MULE).
Далее в .emacs добавить фразу:
(gnus-mule-add-group "fido7" 'cyrillic-koi8)