Nahlédněte i do Diskuse pod čarou!

Co je to 8BITMIME

Elektronická pošta vznikla v počátcích Internetu a kolébku má tudíž v USA. A jelikož se původně nepředpokládalo takovéto rozšíření Internetu (protokoly rodiny TCP/IP byly původně vyvíjeny pro americkou armádu, později uplatněny v síti superpočítačů sponzorovaná opět ministerstvem obrany), nesou si v sobě standardy z této doby mnoho implicitních předpokladů. Jedním z nich je používání pouze sedmi bitů bajtu pro znaky. Toto omezení vyšlo jednak ze situace (v té době existovaly i sedmibitové linky), ovšem vliv mělo i očekávání programátorů, kteří používali kód US-ASCII, který obsahuje pouze sedmibitové znaky (podobné očekávání se objevuje dnes, kdy se často v programech ze západní Evropy nebo z USA předpokládá, že osmibitové znaky mohou být pouze v kódování ISO Latin 1, popř. v programech pro Windows ve stránce Windows-1252, která je nadmnožinou ISO Latin 1). Když se Internet začal šířit mimo USA a Kanadu, vyvstal problém, který byl řešen různě. V zemích, kde bylo používání osmi bitů nutností (nelatinské abecedy, tj. Taiwan, Řecko, Izrael, ...) se začaly všechny programy související s poštou houfně upravovat tak, aby pracovaly s osmibitovými znaky. V zemích píšících latinkou se začala písmena s diakritickými znaménky nahrazovat písmeny, aby se tak programátoři vyhli práci, které se jiné země vyhnout nemohly (tzv. "cestina").

Tato situace ale byla neudržitelná. Lidé ze zemí, kde programy byly průchozí, se nikdy nemohli spolehnout, že cesta k adresátovi je průchozí pro osmibitové znaky; zvláště, byl-li adresát v latinkou píšící zemi nebo dokonce v USA. Psát hodně hlásek stejnými písmeny také není ono; přišly na to všechny evropské národy už začátkem tohoto tisíciletí (což způsobilo zrod spřežkového pravopisu, který pak byl někde nahrazen diakritickým).

O řešení se pokusil standard MIME (Multiporpose Internet Mail Extension), poprvé popsaný v RFC 1341-2, který se pokusil definovat způsob, jak po sedmi nebo osmibitových linkách skrze textově orientované poštovní programy třeba i deset let staré přenášet národní texty i binární soubory všeho typu (obrázky, zvuk, video) a neporušit žádné platné standardy. Zda to vůbec šlo bez někdy krkolomných obratů je otázka; v každém případě vznikl systém, který je poměrně stabilní (MIME je nyní popisováno v RFC 2045-9) a který je poměrně široce akceptován jak tou části internetovské veřejnosti, která cítí potřebu takovéto možnosti, tak i komerčními společnostmi (jejichž implementace ale občas mají chyby).

MIME definuje přenos po osmibitové lince (typ 8bit), ovšem neříká, jak se má zjistit, zda je takováto linka dostupná. To ponechává na RFC 1652, které definuje rozšíření SMTP (přenosového protokolu) podle mechanismu popsaného v RFC 1651. Nazývá toto rozšíření 8BITMIME a říká, že chce-li program zapojený v řetězci předávání nebo zpracování pošty podporovat rozšíření 8BITMIME, musí:

Splní-li předchozí podmínku, může pak:

  1. Deklarovat sám o sobě, že podporuje 8BITMIME pomocí standardního mechanismu deklarace rozšíření SMTP.
  2. Obdrží-li textovou sedmibitovou zprávu a předává-li ji programu, který podporuje 8BITMIME, může ji převést na osmibitovou (pouze ale textové části).

Takto je zaručeno, ani při průchodu zastaralými poštovními programu nedojde k odstranění osmého bitu a tím ke zničení zprávy a současně se uživatelský program v systému, kde mají 8BITMIME server, nemusí zajímat o tom, jak je na tom adresát, jen si ověří, že místní server je 8BITMIME, a může odesílat osmibitově. Je-li celá cesta osmibitová a 8BITMIME podporující, tak zpráva dojde osmibitově a ušetří se jak strojový čas na kódování a dekódování, tak i přenosová kapacita. Podle několik let starého údaje ze zahraniční redakce Českého rozhlasu se jim po přechodu na rozesílání českých zpráv osmibitově via 8BITMIME server zmenšila doba rozesílání o více než jednu třetinu (a to bylo v době, kdy se teprve nedávno objevila implementace 8BITMIME v programu sendmail).

Ještě upozornění:

Kdo 8BITMIME umí?

8BITMIME podporuje Berkeley sendmail od verze 8.7.0 (aka 8.7) výše. Co se tyče sendmailu jednotlivých výrobců, tam je to různé; třeba HP podporují 8BITMIME od verze sendmailu dodávaného se systémem 10.00 a vyššími. 8BITMIME podporují také novější verze zmaileru, jen nevím, jaké.

Jako opačný případ je jedna verze qmailu, která se deklaruje jako 8BITMIME, ale není (je jen to, čemu se anglicky říká 8bit-clean).

Předpokládám, že jakákoliv rozumně nová distribuce linuxu bude obsahovat verzi sendmailu podporující 8BITMIME (slackware 3.0.0 měla, tuším, ještě 8.6.12, ve kterém je ale díra, takže je dobré přejít na 8.8.7). Pro RadHat např. budou existovat RPM na známých úložištích (sunsite.mff.cuni.cz), pro ostatní je možno si sendmail přeložit; zdrojáky jsou také na SUNsite nebo přímo na ftp.cs.berkeley.edu v adresářo (tuším) /pub/ucb/sendmail.