Глава 12. Программы электронной почты и чтения новостей
Содержание
Настройка программ электронной почты и чтения новостей для распознавания кириллицы не очень сложна, хотя вам следует знать основные принципы работы электронной почты и новостей.
Обычно программы 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 является UTF-8. В Болгарии же для электронной почты используется кодировка 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”).
Добавьте следующую запись в ˜/.pinerc для персональной настройки или в /usr/lib/pine.conf для настройки всей системы (эту опцию можно настроить прямо из pine):
character-set=UTF-8
Вы можете также изменить настройку вашего 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=UTF-8 set allow_8bit
Эта программа автоматически перекодирует получаемые письма, если они написаны не в стандартной кодировке. Кроме того, она умеет перекодировать отправляемые письма, если вы используете кодировку, отличную от стандартной для электронной почты в вашей стране — если вы хотите воспользоваться этой особенностью, то укажите это в ˜/.muttrc.
Например, если вы живёте в России и используете cp1251, то, чтобы ваши письма отправлялись в KOI8-R, поместите следующие три строки в ˜/.muttrc:
set charset=windows-1251 set send_charset=UTF-8 set allow_8bit
Если версия sendmail старше 8, то, вероятно, в ˜/.muttrc следует добавить директиву:
set use_8bitmime