VyÜlo v t²denφku: COMPUTERWORLD
╚φslo:17/94
RoΦnφk:1994
Rubrika/kategorie: Co je Φφm ... v poΦφtaΦov²ch sφtφch
Dφl:82

zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ dφl | nßsledujφcφ dφl

Ji°φ Peterka: Co je Φφm ... v poΦφtaΦov²ch sφtφch (82):

Elektronickß poÜta III.

V minul²ch dvou dφlech, v∞novan²ch problematice elektronickΘ poÜty, jsme se zab²vali poÜtovnφmi schrßnkami, adresami, a principißlnφm zp∙sobem p°φstupu u₧ivatele k elektronickΘ poÜt∞. Dnes se podrobn∞ji zastavφme u n∞kter²ch funkΦnφch mo₧nostφ elektronickΘ poÜty.

Zßkladnφ funkcφ ka₧dΘho systΘmu elektronickΘ poÜty je doruΦovßnφ jednotliv²ch zprßv od jejich odesilatel∙ a₧ ke koncov²m adresßt∙m. S tφm ovÜem m∙₧e souviset i celß °ada dalÜφch zajφmav²ch a u₧iteΦn²ch funkcφ, jako nap°φklad mo₧nost rozesφlßnφ zprßv na vφce adres, mo₧nost zasφlßnφ kopiφ zprßv na v∞domφ, mo₧nost potvrzovßnφ p°φjmu, mo₧nost p°ipojovßnφ p°φloh ke zprßvßm, mo₧nost automatickΘho t°φd∞nφ doÜl²ch zprßv, vedenφ adresß°∙ a archiv∙ zprßv apod. Abychom si vÜechny tyto zajφmavΘ mo₧nosti mohli popsat a vhodn∞ zasadit do kontextu, je dobrΘ si znovu p°ipomenou to nejd∙le₧it∞jÜφ, o Φem jsme si povφdali v minulΘm dφlu: toti₧ ₧e v souvislosti s elektronickou poÜtou se m∙₧eme setkat se dv∞ma zßkladnφmi kategoriemi program∙ - s tzv. p°enosov²mi slo₧kami (MTA, Message Transfer Agents), kterΘ zajiÜ¥ujφ vlastnφ p°enos zprßv (ale nikoli ji₧ komunikaci s u₧ivatelem), a s tzv. u₧ivatelsk²mi slo₧kami (User Agents), kterΘ naopak s u₧ivatelem bezprost°edn∞ komunikujφ, umo₧≥ujφ mu Φφst doÜlΘ zprßvy, sestavovat novΘ zprßvy atd., ale ke skuteΦnΘmu odeslßnφ je p°edßvajφ p°enosov²m slo₧kßmn. Pro naÜe dneÜnφ povφdßnφ je pov∞domφ o existenci t∞chto dvou kategoriφ program∙ podstatnΘ proto, abychom si mohli uv∞domit, "kde" jsou r∙znΘ funkce realizovßny, a z toho si pak odvodit i to, co p°edurΦuje jejich dostupnost.

HlaviΦka a t∞lo zprßvy

DalÜφ p°edstava, kterß nßm znaΦn∞ zjednoduÜφ naÜe povφdßnφ, je p°edstava o vnit°nφm Φlen∞nφ zprßv elektronickΘ poÜty - tyto majφ v₧dy dv∞ zßkladnφ Φßsti: hlaviΦku (header) a t∞lo (body).

T∞lo obsahuje vlastnφ text zprßvy, a z pohledu systΘmu elektronickΘ poÜty nenφ nijak strukturovßno - ani u₧ivatelskΘ slo₧ky, ani p°enosovΘ slo₧ky tuto Φßst zprßvy nijak neinterpretujφ (krom∞ n∞kter²ch specißlnφch p°φpad∙, jako nap°φklad p°i pot°eb∞ konverze z jednΘ znakovΘ sady do druhΘ): interpretace toho, co je obsa₧eno v t∞le zprßvy, je ponechßvßna pln∞ na u₧ivatelφch.

Naproti tomu obsah hlaviΦky musφ b²t velmi p°esn∞ strukturovßn - prßv∞ zde jsou toti₧ obsa₧eny veÜkerΘ informace, podle kter²ch jsou jednotlivΘ zprßvy odesφlßny, p°enßÜeny a doruΦovßny. Ka₧d² systΘm elektronickΘ poÜty (MHS, Message Handling System) musφ p°esn∞ definovat, co mß b²t v hlaviΦce obsa₧eno, a jak²m konkrΘtnφm zp∙sobem to mß b²t vyjßd°eno. To proto, aby si jak u₧ivatelskΘ slo₧ky (User Agents), tak i p°enosovΘ slo₧ky (Message Transfer Agents) dokßzaly v hlaviΦce najφt ty informace, kterΘ ke svΘ Φinnosti pot°ebujφ.

┌daje, obsa₧enΘ v hlaviΦkßch zprßv

JakΘ konkrΘtnφ ·daje jsou tedy obsa₧eny v hlaviΦkßch zprßv? Zßvisφ to samoz°ejm∞ na konkrΘtnφm systΘmu elektronickΘ poÜty a na jφm pou₧φvanΘm standardu, kter² p°esn² formßt hlaviΦky definuje. Prakticky v₧dy jsou ale v hlaviΦce obsa₧eny mimo jinΘ i nßsledujφcφ ·daje:

Jednu konkrΘtnφ mo₧nost naznaΦuje nßsledujφcφ p°φklad:

        From: Jiri Peterka <peterka@kki.ms.mff.cuni.cz>
        To: Jan Pavelka <pav@dcit.cz>
        Date: Mon, 28 Mar 1994 18:42:01 MET
        Subject: Jak se dari?

V∞tÜinu polo₧ek v hlaviΦce vypl≥uje u₧ivatelskß slo₧ka (User Agent) na stran∞ odesilatele, podle pokyn∙, kterΘ vhodn²m zp∙sobem zφskß od svΘho u₧ivatele. P°i samotnΘm p°enosu zprßv vÜak mohou b²t do hlaviΦky pr∙b∞₧n∞ p°idßvßny jeÜt∞ dalÜφ ·daje, ve kter²ch je zaznamenßn pr∙b∞h p°enosu zprßv. Nap°φklad:

        Received: from einar.dcit.cz by frode.dcit.cz (Mercury 1.11); Tue, 8 Mar 94 11:27:16 CET
        Received: from ns.ms.mff.cuni.cz by einar.dcit.cz (AIX 3.2/UCB 5.64/4.07) id AA13120; Tue, 8 Mar 1994 11:23:46 +0100
Z t∞chto ·daj∙ je pak mo₧nΘ vysledovat skuteΦn² "pr∙chod" zprßvy p°es r∙znΘ p°enosovΘ slo₧ky na mezilehl²ch uzlov²ch poΦφtaΦφch. Tato mo₧nost vÜak pamatuje spφÜe na sprßvce sφtφ, ne₧ na b∞₧nΘ u₧ivatele - t∞m jejich u₧ivatelskß slo₧ka (User Agent) hlaviΦku v∞tÜinou nezobrazuje (alespo≥ ne v jejφ skuteΦnΘ podob∞). Mφsto toho jsou u₧ivatel∙m p°edklßdßny jen n∞kterΘ vybranΘ ·daje (nap°.: o odesilateli a p°edm∞tu zprßvy), a to navφc v takovΘ form∞, jakou p°φsluÜn² program, vystupujφcφ v roli u₧ivatelskΘ slo₧ky, poklßdß za nejvhodn∞jÜφ.

Nap°φklad bezprost°edn∞ po "v²b∞ru" poÜtovnφ schrßnky m∙₧e b²t u₧ivateli nabφdnut p°ehledn² seznam doÜl²ch zprßv (ve kterΘm je ka₧dΘ zprßv∞ v∞novßna jedna °ßdka, a na nφ je uvedeno nap°φklad jen jmΘno odesilatele a p°edm∞t zprßvy, p°φpadn∞ i datum apod.). U₧ivatel-p°φjemce m∙₧e takov²mto seznamem listovat, a kdy₧ si n∞jakou zprßvu ze seznamu vybere, poÜtovnφ program (User Agent) mu zobrazφ jejφ obsah (tj. t∞lo zprßvy).

Rozesφlßnφ zprßv na vφce adres

Jednou z velk²ch p°ednostφ elektronickΘ poÜty je mo₧nost rozeslßnφ jednΘ a tΘ₧e zprßvy vφce p°φjemc∙m - kolika, to pro odesilatele vlastn∞ nenφ v∙bec relevantnφ, proto₧e jeho "nßmaha", spojenß s takov²mto ·konem, m∙₧e b²t ·pln∞ stejnß, jako p°i odesφlßnφ zprßvy jedinΘmu u₧ivateli.

Mo₧nost rozesφlßnφ m∙₧e b²t realizovßna vφce r∙zn²mi zp∙soby. Jeden z nich, kter² je v²hodn∞jÜφ spφÜe pro p°φle₧itostnΘ vyu₧itφ, spoΦφvß v tom, ₧e mφsto jednoho konkrΘtnφho p°φjemce se p°i sestavovßnφ zprßvy uvedou dva p°φjemci, t°i, Φty°i atd. Toho, kdo by tuto mo₧nost cht∞l vyu₧φvat Φast∞ji, by vÜak z°ejm∞ brzy omrzelo opakovanΘ ruΦnφ rozepisovßnφ stejn²ch adres. Program, prost°ednictvφm kterΘho takov² u₧ivatel svΘ zprßvy sestavuje a odesφlß, mu m∙₧e vyjφt vst°φc a umo₧nit mu p°edem sestavit seznam p°φsluÜn²ch adresßt∙ (resp. tolik takov²chto distribuΦnφch seznam∙, kolik pot°ebuje). P°i samotnΘm odesφlßnφ pak mφsto adresßta u₧ivatel uvede jen jmΘno (identifikßtor, oznaΦenφ) distribuΦnφho seznamu, a poÜtovnφ program (User Agent) se pak ji₧ sßm postarß o pot°ebnΘ "rozepsßnφ".

Tuto mo₧nost, p°i kterΘ ji₧ od odesilatele odchßzφ vφce jednotliv²ch zprßv, je t°eba odliÜit od tzv. elektronick²ch konferencφ. Ty jsou zalo₧eny na myÜlence, ₧e na urΦitΘm uzlovΘm poΦφtaΦi je veden seznam u₧ivatel∙ (·Φastnφk∙ konference), a tento seznam mß vlastnφ adresu pro elektronickou poÜtu. Kdy₧ n∞kdo poÜle zprßvu (tj. jednu zprßvu) na tuto adresu, pak je tato zprßva, obvykle zcela automaticky, rozeslßna vÜem u₧ivatel∙m, uveden²m na p°φsluÜnΘm seznamu.

Potvrzenφ o p°φjmu - doporuΦenß elektronickß poÜta?

Jednφm z velmi Φast²ch po₧adavk∙, kterΘ u₧ivatelΘ vznßÜφ na elektronickou poÜtu, je mo₧nost zφskat v∞rohodnou informaci o tom, ₧e urΦitß zprßva byla v po°ßdku doruΦena.

V principu to nenφ ₧ßdn² problΘm: do hlaviΦky odesφlanΘ zprßvy se za°adφ polo₧ka, po₧adujφcφ takovΘto potvrzenφ. Na stran∞ p°φjemce pak m∙₧e b²t na zßklad∞ tohoto po₧adavku automaticky vygenerovßna krßtkß zprßva o doruΦenφ, a odeslßna zp∞t odesilateli p∙vodnφ zprßvy.

Otßzkou ovÜem je, kdy vlastn∞ mß b²t takovΘto potvrzenφ generovßno? Tehdy, kdy₧ je zprßva ulo₧ena do poÜtovnφ schrßnky p°φjemce? Pak nevypovφdß nic o tom, kdy je zprßva skuteΦn∞ p°eΦtena. Nebo mß b²t potvrzenφ generovßno a₧ v okam₧iku, kdy si p°φjemce zprßvu skuteΦn∞ p°eΦte? Pak se ale odesilatel zase nemusφ vΦas dozv∞d∞t, ₧e zprßva byla ·sp∞Ün∞ p°enesena (resp. ₧e se p°i p°enosu nikde neztratila), a ₧e ji tudφ₧ nemusφ posφlat znovu.

N∞kterΘ systΘmy elektronickΘ poÜty °eÜφ toto dilema tak, ₧e zavßdφ dva druhy potvrzenφ - potvrzenφ o ulo₧enφ zprßvy do poÜtovnφ schrßnky p°φjemce, a potvrzenφ o jejφm skuteΦnΘm p°eΦtenφ.

Potvrzenφ o ulo₧enφ zprßvy p°itom m∙₧e generovat ji₧ samotnß p°enosovß slo₧ka (Message Transfer Agent), kterß mß p°enos zprßv na starosti. Naproti tomu potvrzenφ o skuteΦnΘm p°eΦtenφ m∙₧e generovat a₧ program, prost°ednictvφm kterΘho u₧ivatel zpracovßvß svou poÜtu - tedy program, kter² plnφ ·lohu u₧ivatelskΘ slo₧ky (User Agent).

V praxi ovÜem neb²vß generovßnφ takov²chto potvrzenφ v₧dy zaruΦeno. Ne vÜechny programy, zajiÜ¥ujφcφ fungovßnφ elektronickΘ poÜty, toti₧ generovßnφ takov²chto potvrzenφ podporujφ. JinΘ programy zase dßvajφm u₧ivatel∙m mo₧nost individußlnφ volby. Pokud tedy n∞komu poÜlete zprßvu s po₧adavkem na potvrzenφ jejφho p°ijetφ (a¥ ji₧ ve smyslu ulo₧enφ do poÜtovnφ schrßnky Φi skuteΦnΘho p°eΦtenφ), a toto potvrzenφ nedostanete, jeÜt∞ nemusφ b²t zdaleka vÜe Üpatn∞!

Kopie na v∞domφ

V b∞₧nΘm ·°ednφm styku, vedenΘm pφsemnou formou, b²vß zvykem posφlat originßly dopis∙ jejich konkrΘtnφm adresßt∙m, a kopie t∞chto dopis∙ tzv. na v∞domφ jin²m osobßm (nejΦast∞ji osobßm nad°φzen²m). TakΘ v elektronickΘ poÜt∞ existuje obdobnß mo₧nost: ka₧dß zprßva m∙₧e mφt jednoho Φi n∞kolik adresßt∙, ale krom∞ toho m∙₧e b²t poslßna "na v∞domφ" jednomu Φi n∞kolika dalÜφm u₧ivatel∙m, ve form∞ kopie (anglicky: Carbon Copy, zkratkou CC).

Kopie zprßvy se od originßlu nijak neliÜφ. Je v nφ v₧dy uveden "hlavnφ" p°φjemce (resp. p°φjemci), zatφmco p°φjemci kopiφ jsou v hlaviΦce uvedeni takΘ, ale v rßmci samostatnΘ polo₧ky, nap°φklad:

        From: Jiri Peterka <peterka@kki.ms.mff.cuni.cz>
        To: Jan Pavelka <pav@dcit.cz>
        Cc: spravce site <admin@dcit.cz>

P°φjemce "kopie na v∞domφ" tedy mß mo₧nost dozv∞d∞t se, ₧e p°φsluÜnß zprßva je pouze kopiφ, a stejn∞ tak mß mo₧nost zjistit, komu byl odeslßn jejφ originßl, p°φpadn∞ kter²m dalÜφm u₧ivatel∙m byly odeslßny dalÜφ kopie - pot°ebnΘ informace jsou v hlaviΦce obsa₧eny, a zßle₧φ na pou₧itΘm programu pro zpracovßnφ poÜty (realizujφcφm u₧ivatelskou slo₧ku), zda a v jakΘ form∞ tyto informace svΘmu u₧ivateli poskytne.

Stejnou mo₧nost mß samoz°ejm∞ i p°φjemce originßlu - takΘ on se m∙₧e dozv∞d∞t, ₧e p°φsluÜnß zprßva byla odeslßna ve form∞ kopie jin²m u₧ivatel∙m.

To ovÜem nemusφ b²t v n∞kter²ch situacφch p°φliÜ ₧ßdoucφ. Proto existuje jeÜt∞ jedna varianta "kopie na v∞domφ", a to tzv. slepß kopie (Blind Copy, zkratkou Bcc:). LiÜφ se v tom, ₧e o existenci tΘto kopie se p°φjemce originßlu (a v∞tÜinou ani p°φjemce "b∞₧nΘ" kopie) nemß Üanci dozv∞d∞t - v hlaviΦce zprßvy, kterou obdr₧φ, nejsou p°φjemci slep²ch kopiφ uvedeni.

Komfort poÜtovnφch program∙

Mo₧nost zasφlßnφ "kopiφ na v∞domφ" je p°φkladem mechanismu, kter² musφ b²t podporovßn ji₧ samotn²m systΘmem p°enosu zprßv (MTS, Message Transfer System), neboli soustavou vzßjemn∞ propojen²ch p°enosov²ch slo₧ek (MTA, Message Transfer Agents), resp. protokolem, na zßklad∞ kterΘho tyto slo₧ky pracujφ.

Existuje vÜak takΘ celß °ada dalÜφch "doprovodn²ch" slu₧eb, realizovan²ch v²hradn∞ t∞mi programy, kterΘ slou₧φ u₧ivatel∙m k bezprost°ednφmu zpracovßnφ elektronickΘ poÜty (tedy u₧ivatelsk²mi slo₧kami, User Agents).

Obvyklou samoz°ejmostφ b²vß vedenφ vÜelijak²ch adresß°∙, ve kter²ch si koncovφ u₧ivatelΘ zaznamenßvajφ elektronickΘ adresy sv²ch p°ßtel, koleg∙, spolupracovnφk∙, partner∙ apod. DalÜφ u₧iteΦnou funkcφ je mo₧nost vytvß°enφ distribuΦnφch seznam∙, citovanß v²Üe (pro pot°eby rozesφlßnφ zprßv vφce p°φjemc∙m).

Tomu, kdo elektronickou poÜtu vyu₧φvß intenzivn∞ji a mß bohatou korespondenci, p°ijde velmi vhod mo₧nost za°azovat jednotlivΘ zprßvy do odd∞len²ch "foch∙" (pomysln²ch p°ihrßdek, Ükatulek apod., anglicky: folders). Takto si nap°φklad m∙₧e shroma₧∩ovat na jednom mφst∞ (v jednom "folderu") korespondenci s jednφm konkrΘtnφm u₧ivatelem, zatφmco do jinΘho "folderu" si bude uklßdat poÜtu, t²kajφcφ se urΦitΘho konkrΘtnφho tΘmatu apod.

Za°azovßnφ poÜty do jednotliv²ch "folder∙", kterΘ si u₧ivatel vytvß°φ podle svΘ pot°eby, b²vß nejΦast∞ji °eÜeno ruΦn∞. N∞kterΘ poÜtovnφ programy vÜak nabφzφ i mo₧nost automatickΘho t°φd∞nφ, nap°φklad na zßklad∞ adresy odesilatele, na zßklad∞ v²skytu urΦitΘho klφΦovΘho slova v p°edm∞tu zprßvy apod.

Velmi praktickß b²vß i mo₧nost p°φmΘ odpov∞di, spojenß s vklßdßnφm citacφ z p∙vodnφho dopisu. Pokud se nap°φklad p°i Φtenφ urΦitΘ zprßvy rozhodnete na ni okam₧it∞ odpov∞d∞t (co₧ b²vß dobr²m zvykem), pak v∞tÜinou staΦφ zmßΦknout jedinou horkou klßvesu, a vßÜ poÜtovnφ program vßm p°ipravφ zßklad odpov∞di: sßm si nap°φklad vyplnφ adresu p°φjemce (kterou si odvodφ z p°ijatΘ zprßvy), sßm si zvolφ p°edm∞t zprßvy (v∞tÜinou vezme p∙vodnφ p°edm∞t, a p°ed n∞j p°ipφÜe v²mluvnΘ Re:). Krom∞ toho vÜak m∙₧e vlo₧it do textu odpov∞di takΘ p∙vodnφ text (uvozen² n∞jak²m specißlnφm znakem, obvykle pravou ÜpiΦatou zßvorkou), a vßm pak staΦφ jen vhodn∞ p°ipisovat svΘ odpov∞di. Nap°φklad:

        > Kdy uz konecne napises dalsi dil serialu "Co je cim ..
        > v pocitacovych sitich?"
        Uz se na tom pracuje.
        > A o cem to bude?
        No porad jeste o elektronicke poste

P°φlohy ke zprßvßm

Elektronickß poÜta je urΦena p°edevÜφm k p°enosu zprßv, kterΘ majφ textovou podobu, a o kter²ch se p°edpoklßdß, ₧e nejsou p°φliÜ velkΘ. S textov²m charakterem zprßv pak souvisφ i to, ₧e p°enosovΘ slo₧ky, kterΘ zprßvy skuteΦn∞ p°enßÜejφ, se na n∞ dφvajφ jako na posloupnost znak∙, a jako takovΘ je i p°enßÜφ.

To mß ovÜem n∞kterΘ v²znamnΘ d∙sledky: nap°φklad ten, ₧e p°φsluÜn² p°enosov² protokol m∙₧e vychßzet z p°edpokladu, ₧e p∙jde v²hradn∞ o anglick² text, a ₧e tedy jednotlivΘ znaky m∙₧e znßzornit jen v sedmi bytech (Φeho₧ pak vyu₧ije pro efektivn∞jÜφ p°enos). Pokud tak skuteΦn∞ Φinφ, pak nenφ mo₧nΘ pou₧φvat v textu zprßv nap°φklad naÜe proslavenΘ hßΦky a Φßrky.

DalÜφm d∙sledkem, kter² vypl²vß z textovΘho charakteru zprßv, je nemo₧nost p°enßÜet tφmto zp∙sobem takΘ binßrnφ soubory, kterΘ je nutnΘ chßpat nikoli jako posloupnost znak∙, ale jako posloupnost jednotliv²ch bit∙. Za binßrnφ soubory je nutnΘ pova₧ovat nap°φklad takΘ soubory ve vnit°nφm formßtu r∙zn²ch textov²ch editor∙ a procesor∙.

V praxi by se ale takovßto mo₧nost velmi hodila - kdybychom nap°φklad mohli p°ipojit k odesφlanΘ zprßv∞ jako p°φlohu binßrnφ soubor. N∞kterΘ systΘmy elektronickΘ poÜty tΘto mo₧nosti vychßzφ vst°φc: umo₧≥ujφ p°ipojovat ke zprßvßm p°φlohy (attachments), kterΘ mohou b²t i binßrnφmi soubory. S textov²m charakterem p°enosu se pak vyrovnßvajφ tφm, ₧e tyto binßrnφ soubory pro pot°eby p°enosu vhodn∞ zak≤dujφ (tj. p°evedou do "Φist∞ textovΘho" tvaru), a p°i p°φjmu je zase p°evßdφ zp∞t do jejich p∙vodnφho tvaru.

Tak₧e a₧ budete n∞komu p°φÜt∞ psßt elektoronickou poÜtou, m∙₧ete mu ke svΘ zprßv∞ "p°ibalit" nap°φklad hezk² obrßzek ve form∞ binßrnφho souboru. Zase ale jenom tehdy, pokud vßÜ poÜtovnφ program (User Agent) tuto mo₧nost podporuje, a stejn∞ tak i poÜtovnφ program na stran∞ adresßta.


zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ dφl | nßsledujφcφ dφl
Tento Φlßnek m∙₧e b²t voln∞ Üφ°en, pokud se tak d∞je pro studijnφ ·Φely, na nev²d∞leΦnΘm zßklad∞ a se zachovßnφm tohoto dov∞tku. Podrobnosti hledejte zde, resp. na adrese http://archiv.czech.net/copyleft.htm