Obs│uga MIME w Pegasus Mail

W standardowej dystrybucji PMAILa powinny znajdowaµ siΩ nastΩpuj▒ce pliki: basic.r, enhanced.r, pm-char.r, pm-lmtt.r, pm-menu.r, pm-mime.r, remail.r, reminder.r, rquotes.r, tphone.r, defines.rh, forms.rh, rescom.exe (nas interesowaµ bΩd▒ jedynie: rescom.exe, *.rh oraz pm-lmtt.r, pm-char.r i pm-mime.r).

PMAIL mo┐e wysy│aµ listy w jednym z dwu tryb≤w: MIME i standardowym (nie-MIME). Wyboru trybu dokonuje sie naciskaj▒c klawisz F9 i wpisuj▒c Y w polu "MIME features?".

Poniewa┐, w trybie standardowym nie s▒ dopuszczane znaki o kodach powy┐ej 128 musz▒ byµ one przekodowane. Do przekodowywania wychodz▒cych list≤w "nie-MIME" u┐ywana jest tabela znak≤w (smtp_table) zawarta w pliku pm-char.r: umieszczone s▒ tam po kolei wszystkie znaki o kodach wiΩkszych ni┐ 127, zaraz obok 7 bitowy odpowiednik (jeden lub wiΩcej znak≤w). Wszystko oczywiscie dla u┐ywanej tabeli znakow! Znakiem oddzielaj▒cym poszczegolne pary jest odstΩp (ascii 32). Na przyk│ad tak:

...<a_z_ogonkiem>a<space>...
albo
...<a_z_ogonkiem>a,<space>...
lub
...<a_z_ogonkiem>/a<space>
W pierwszym przypadku nast▒pi zamiana wszystkich znak≤w narodowych najbli┐szym odpowiednikiem ASCII, w drugim przypadku kombinacja znak≤w "najbardziej podobna" w trzecim korzystamy z notacji "ciachowej".

Pozosta│e dwie tabele (ps_banner i ps_header) mog▒ byµ wykorzystane do odpowiedniego skonfigurowania drukarki postscriptowej. (Nie mam, nie probowa│em).

Do wysy│ania/odczytu poczty MIME u┐ywane s▒ tablice zawarte w pliku pm-lmtt.r. Dla ka┐dego standardu ISO-8859-X trzeba przygotowaµ odpowiedni▒ tabelΩ. W tym celu bΩd▒ jeszcze potrzebne tabele znak≤w w obu systemach kodowania (oczywiscie tabele obejmuj▒ znaki o kodach wiΩkszych od 127). I rozpoczynamy pracowite przekodowywanie (tu przyk│ady iso-88592<->cp852): w pozycji odpowiadaj▒cej literze "latin capital letter a with ogonek" umieszczamy znak o kodzie 164; w pozycji 162 (breve) umieszczamy znak o kodzie 244, itd.

Wszystkie znaki o kodach wiΩkszych od 128 bΩd▒ zamieniane przez PMAIL (zgodnie z t▒ tabel▒) na ISO-8859-2, a nastΩpnie ┐eby przes│aµ zamieniane na specjaln▒ postaµ: litera ma│e a z ogonkiem (kod b1 szesnastkowo, 161 dziesiΩtnie) zostanie zapisana jako =B1, znak = zostanie zamieniony na =3D. Dodatkowo wiersze d│u┐sze niz 74 znaki zostan▒ z│amane (miejsce z│amania zaznaczone bΩdzie znakiem = na ko±cu wiersza.

Wreszcie mo┐emy zaj▒µ siΩ plikiem o nazwie pm-mime.r. Cech▒ charakterystyczn▒ wiadomo╢ci MIME s▒ nag│≤wki zawieraj▒ce informacje o zawarto╢ci zbioru i o sposobie kodowania. Szczeg≤│y podaje rfc1341. W pliku pm-mime padajemy programowi PMAIL jakich narzΩdzi ma u┐yµ do "przegl▒dania" kodowanych wiadomo╢ci.

I tak na przyk│ad do przegl▒dania obrazk≤w (Content-Type: image/gif) u┐ywam dostΩpnego w pakiecie NC programu bitmap, do przegl▒dania plikow "zzipowanych" (Content-Type: application/zip) programu shez. (Zero w pierwszej kolumnie tabeli w tym pliku informuje, ┐e u┐ytkownik zostanie zapytany czy chce wiadomo╢µ obejrzeµ za pomoc▒ odpowiedniego narzΩdzia (po rozkodowaniu), zapisaµ do pliku, czy tez rozkodowaµ i mimo wszystko obejrzeµ za pomoc▒ PMAILa); jedynka mowi ze nie bΩdzie pytany - zostanie u┐yte zadeklarowane narzΩdzie do "obejrzenia" wiadomo╢ci.

Na koniec kompilujemy pliki o rozszerzeniu .r za pomoc▒ programu rescom i wynik kompilacji (*.res) kopiujemy do kartoteki PMAILa, a w pliku pmail.ini wpisujemy w linii: Default MIME character set iso-8859-2. (Uwaga, linijka ta mo┐e powt≤rzyµ siΩ dwukrotnie). Wszystkie pliki, o ktorych tu pisa│em (w wersji w jakiej ja ich u┐ywam) zosta│y umieszczone jako ftp://ftp.immt.pwr.wroc.pl/pub/mime/pm_mime.zip.


Wojciech Myszka, W.Myszka@immt.pwr.wroc.pl