Напред Назад Съдържание

8. Eлектронна поща и usenet

От това как сме настроили програмата си за електронна поща зависи доколко ще сме в състояние да четем писма с кирилица, а също и дали няма да създадем проблеми на получателя, на писмата, които ние пишем.

За съжаление няма начин електронната поща да се българизира както трябва. И причината не е в това, че Линукс не позволява това. Причината е, че обикновено само потребителите на Линукс имат българизирана както трябва електронна поща.

8.1 Кирилица в електронните писма

Кодирания

Tрябва да имаме предвид, че независимо какво кодиране използваме за кирилицата на компютъра си, за писма на български език стандартно кодиране е CP1251. Това трябва да е обозначено правилно в заглавната част на писмата, които нашата програма изпраща, в противен случай програмата, с която получателят чете писмото, което сме изпратили, може да не се справи с показването на кирилицата. За целта заглавната част на писмото трябва да съдържа ред от вида

Content-Type: text/plain; charset=windows-1251

Името на кодирането CP1251 трябва да се означи не произволно, а според изискванията на IANA, т.е. именно като "windows-1251".

За съжаление дори и да се погрижим да изпращаме правилни писма, почти със сигурност на нас ще ни изпращат неправилни. В в писмото вместо "windows-1251" ще стои "iso-8859-1" или "us-ascii". С други думи ще получаваме писма, които твърдят, че съдържат латински текст, но всъщност съдржат кирилица.

Създава ли това проблеми? В сила е следното правило: колкото по-интелигентна и умна е някоя програма, толкова по-трудно ще показва кирилицата в неправилно изпратени писма, т.е. писма в чиято заглавна част не е означено, че съдържат текст с кирилица. Има три изхода: 1) да използваме по-глупава пощенска програма, която не се интересува от кодирания; 2) да се изхитрим някакси да кирилизираме "неправилно" умната си пощенска програма и 3) с помощта на филтър писмата да се поправят автоматично. Последният изход е най-добър, но е подходящ за по-напреднали потребители.

8-битов текст

В миналото не всички сървъри, посредници при изпращането на писмата, можеха да работят с 8-битови текстове (както е известно 7 бита са недостатъчни за писане на кирилица). Това е наложило пощенските програми при изпращане на писмо да извършват кодиране на текста му, посредством 7-битови символи. При получаване на такова писмо пощенските програми декодират първоначалния текст. Днес при изпращане на писма в повечето случаи не е нужно да се прави такова преобразувание, но въпреки това много програми продължават да правят това.

Има два стандартни метода за такова кодиране: base64 и quoted-printable. Ето как изглежда един текст, кодиран по метода base64:

PvXT1MHOz9fLwSDb0snG1M/XICjO1dbFziDQwcvF1CBjb25zb2xlLXRvb2xzKQ0KPiDXIC9l
dGMvY29uc29sZS10b29scy9jb25maWcg1dPUwc7P18nU2A0KPiAgU0NSRUVOX0ZPTlQ9Q3ly
X2E4eDE2DQo+ICBBUFBfQ0hBUlNFVF9NQVA9a29pMmFsdC50cmFucw0KPiDXIC9ldGMvaXNz
dWUgxM/C2dfB1NggXGVzYyhLIMvPzcHOxM/KDQo+ICBlY2hvIC1uZSBcMDMzKEsgPj4gL2V0

Ето как изглежда текст, кодиран по метода quoted-printable:

=F7=C9=D4=D5=D3, =DE=D4=CF =D4=C1=CD =D3
=D2=D5=D3=C9=C6=C9=CB=C1=C3=C9=C5= =CA 8.2, =CF=CE=CF =D6=C9=D7=CF=C5
=C9=CC=C9 =CD=C5=D2=D4=D7=CF=C5?=20 =E1 =D4=CF =CB=C1=CB =D2=C1=DA
=DE=C5=CC=CF=D7=C5=CB =D0=CF=C4=C8=CF=C4=D1= =DD=C5
=D3=D0=D2=C1=DB=C9=D7=C1=C5=D4...

В повечето случаи няма нужда да се грижите как е кодиран текстът на писмото, защото програмите за електронна поща ще извършат декодирането автоматично, така че Вие дори няма да разберете това. А по-напредналите потребители, ако желаят, отново може да използват филтър за да декодират писмата автоматично при получаването им.

8.2 Програми

procmail

Това е един от най-разпространените филтри за обработка на пристигащи писма. Макар и не най-мощен, той има това предимство, че е инсталиран в почти всяка система.

За да поправя procmail автоматично получаваните писма, създайте файл ~/.procmailrc със следното съдържание:

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

В някои системи procmail няма да се включва автоматично. В такъв случай създайте файл ~/.forward, който съдържа единствен ред със следното съдържание: "|/usr/bin/procmail" (включително кавичките).

За съжаление дори и при най-малки грешки във файла .procmailrc може да загубите всички получавани писма. Затова е добре да редактирате този файл само ако имате представа какво точно правите или не се страхувате от загубване на писма.

mutt

Mutt е чисто текстова програма за четене на електронна поща и работи с кирилица без проблем, при положение, че терминалния прозорец или конзолата са кирилизирани по начините описани в разделите, посветени на кирилизация на конзолата и X Window. Трябва обаче да му се посочи какво кодиране използува потребителя при четене и писане. За целта ако използувате кодова таблица CP1251, в глобалния или потребителски конфигурационен файл на mutt трабва да се сложат командите:

set charset=windows-1251
set allow_8bit

При работа с mutt е добре да е зададена правилно локализацията, както това е описано. В такъв случай вероятно ще бъдете приятно изненадани, че mutt автоматично конвертира писма получени на други кодировки на кирилицата и ги показва правилно.

При използване на програмата set-bulgarian-env описаната настройка на mutt ще бъде извършена автоматично.

Mutt спада към "интелигентните" програми, така че е препоръчително да се използва съвместно с филтър, който оправя неправилните писма, които ще получавате.

elm и elm-me+

Добавете следните команди във файла ~/.elm/elmrc:

CHARSET=windows-1251
displaycharset = windows-1251
compatcharsets = windows-1251 us-ascii iso-8859-1

Elm също като mutt е текстова програма за електронна поща. Тя е достатъчно удобна за използване, но не спада към интелигентните програми, така че не е нужно да я използвате съвместно с филтър за оправяне на писмата.

pine

Поставете следните команди в личния конфигурационен файл ~/.pinerc или общосистемният pine.conf:

character-set=windows-1251
enable-8bit-nntp-posting
enable-8bit-esmtp-negotiation

mailx

Това е едновременно и най-елементарната, и най-универсалната програма за електронна поща. Тя показва писмата такива, каквито са пристигнали без да се интересува дали съдържат кирилица или нещо друго. Без да положите специални грижи тази програма няма да може да декодира писмата с base64 или quoted-printable. Със сигурност тази програма ще върши работа единствено на изключително опитни потребители, а останалите може да забравят за нея.

slrn

Slrn е чисто текстова програма за четене и писане в usenet. Тя е сравнително проста и подходяща за широк кръг потребители. Терминалният прозорец или съответно конзолата трябва да са кирилизирани по начините описани в разделите за кирилизация на конзолата и X Window. В глобалния или потребителски конфигурационен файл трябва да са зададени следните команди

set use_mime 1
set mime_charset "windows-1251"
set use_metamail 1
set metamail_command "metamail"

Slrn все още не може да прави автоматчни прекодирания от различни видове кирилица, така че ще имате проблем да четете писма написани с различна от кодирането на вашия терминал.


Напред Назад Съдържание