Druhým typom protokolov, ktoré úzko súvisia s elektronickou poštou sú protokoly POP3 a IMAP4. Okrem nich existujú aj ich staršie verzie napr. POP2, IMAP2, IMAP2BIS, IMAP3 a pod. Tieto protokoly zabezpečujú prenos správ zo servera (MTA) ku klientovi (UA). Najznámejší a najpoužívanejší protokol POP3 je definovaný v dokumente RFC 1725.
:: Spojenie: Klient otvorí spojenie a server odpovie pozitívne - napríklad S: +OK POP3 server ready.
:: Autorizácia: Po vytvorení spojenia server vyžaduje, aby sa klient identifikoval. Pre tieto účely sú dostupné dva mechanizmy; jeden z nich zahrňuje šifrovanie a je použitý v prípade, že užívateľ nechce posielať heslá.
:: Aktualizácia: Keď užívateľ pošle príkaz QUIT, server prejde do štádia aktualizácie. Sú vykonané všetky aktualizácie súborov (napríklad mazanie), o ktoré užívateľ požiadal. Pokiaľ má byť spojenie ukončené ešte pre zadaním príkazu QUIT, server vynechá aktualizačnú fázu a ponechá súbory v stave, v akom boli pred začatím relácie.
Príkazy protokolu POP3V ďalšom texte budem používať označenie "C:" pre klienta a "S:" pre server.
- USER name
Argument "name" je reťazec identifikujúci poštovú schránku. Po vytvorení spojenia server vyžaduje, aby sa klient identifikoval. Príkazom "USER name" sa serveru posiela prihlasovacie meno užívateľa. Server odpovedá +OK, ak mailbox so zadaným menom existuje a -ERR, ak mailbox neexistuje.Príklad:
C: USER peterg
S: +OK
...
C: USER xyz
S: -ERR
- PASS string
Argument "string" je reťazec umožňujúci prístup k poštovej schránke. Po vytvorení spojenia server vyžaduje, aby sa klient identifikoval. Príkazom "PASS string" sa serveru posiela heslo užívateľa.Príklad:
C: USER peterg
S: +OK
C: PASS qwerty
S: +OK
...
C: USER xyz
S: -OK
C: PASS qwerty
S: -ERR maildrop already locked
- QUIT
Príkaz sa používa na uzatvorenie komunikačného kanála.Príklad:
C: QUIT
S: +OK
- STAT
Tento príkaz sa používa na zistenie aktuálneho stavu komunikácie.Príklad:Prvé číslo nás informuje o počte správ, ktoré sa nachádzajú v poštovej schránke (mailbox). V poradí druhá hodnota predstavuje súčet veľkostí správ, ktoré sa v tom čase nachádzajú v poštovej schránke (táto hodnota sa udáva v oktetoch).
C: STAT
S: +OK 2 320
- LIST [msg]
Príkaz LIST umožňuje zistiť počet správ uložených na serveri (v poštovej schránke daného užívateľa) a veľkosť správ v oktetoch. Argument príkazu je voliteľný a obsahuje číslo správy.Príklad:
C: LIST
S: +OK 2 messages (320 octets)
S: 1 120
S: 2 200
...
C: LIST 2
S: +OK 2 200
...
C: LIST 3
S: -ERR no such message, only 2 messages in maildrop
- RETR msg
Príkazom sa prenesie požadovaná správa zo servera ku klientovi. Argument príkazu musí obsahovať číslo správy.Príklad:
C: RETR 1
S: +OK 120 octets
- DELE msg
Príkaz vymaže zadanú správu zo servera. Argument príkazu musí obsahovať číslo správy.Príklad:
C: DELE 1
S: +OK messages 1 deleted
...
C: DELE 2
S: -ERR message 2 already deleted
- NOOP
Tento príkaz nemá žiadnu funkciu, žiadne argumenty, používa sa na otestovanie spojenia; server POP3 posiela odpoveď +OK.Príklad:
C: NOOP
S: +OK
- RSET
Príkaz umožňuje predčasne ukončiť aktuálnu poštovú transakciu; server POP3 posiela odpoveď +OK.Príklad:
C: RSET
S: +OK maildrop has 2 messages (320 octets)
- APOP name digest
Je voliteľný príkaz, ktorý sa používa v priebehu autorizácie užívateľa na serveri. Argumentom príkazu je reťazec identifikujúci poštovú schránku a MD5 string, ktorý je definovaný v dokumente RFC 1321 [20] (obidva argumenty musia byť zadané).Príklad:
S: +OK POP3 sever ready <1896.697170952@dbc.mtview.ca.us>
C: APOP peterg c4c9334bac560ecc979e58001b3e22fb
S: +OK maildrop has 1 message (369 octets)
- TOP msg n
Argument "msg" označuje číslo správy, argument "n" označuje počet riadkov tela správy. Napr. po zadaní príkazu TOP 1 10 server POP3 pošle záhlavie správy, prázdny riadok a prvých 10 riadkov tela správy.Príklad:
C: TOP 1 10
S: +OK
...
C: TOP 100 3
S: -ERR no such message
- UIDL [msg]
Ak bol argument zadaný, server POP3 vydá pozitívnu odpoveď s riadkom obsahujúcim informáciu pre danú správu. Tento riadok sa nazýva "unique-id listing" správy a vyjadruje ľubovoľný, serverom určený reťazec, zostavený zo znakov z rozsahu 33 až 126, ktorý je jedinečným identifikátorom správy v "maildrop" a ktorý trvá počas spojenia. Server "unique-id" nemôže použiť, kým ho používa iný objekt. Maximálna dĺžka tohto reťazca je 70 znakov.Príklad:Dokument RFC 1725 [16] stanovuje minimálnu konfiguráciu príkazov protokolu POP3 takto: USER, PASS, QUIT, STAT, LIST, RETR, DELE, NOOP a RSET. Zostávajúce tri príkazy sú voliteľné a server POP3 ich nemusí podporovať. Každý príkaz protokolu POP3 môže poslať klientovi odpoveď buď: "+OK" - kladná odpoveď, príkaz bol úspešne vykonaný, alebo "-ERR" - záporná odpoveď, chybový stav. Server nesmie poslať tieto odpovede takto: !"+ok, -err"!, t.j. konvertované do malých písmen ASCII.
C: UIDL
S: +OK
S: 1 whqtswo00WBw418f9t5JxYwZ
S: 2 QhdPYR:00WBw1Ph7x7
...
C: UIDL 2
S: +OK 2 QhdPYR:00WBw1Ph7x7
...
C: UIDL 3
S: -ERR no such message, only 2 messages in maildrop
V nasledujúcom príklade uvidíte, ako prebieha spojenie s poštovým serverom, t.j. v akom poradí treba posielať vyššie popísané príkazy, aby ste získali došlé správy.
Príklad POP3 spojenia
S: <wait for connection on TCP port 110>
C: <open connection>
S: +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
C: APOP mrose c4c9334bac560ecc979e58001b3e22fb
S: +OK mrose's maildrop has 2 messages (320 octets)
C: STAT
S: +OK 2 320
C: LIST
S: +OK 2 messages (320 octets)
S: 1 120
S: 2 200
S: ...
C: RETR 1
S: +OK 120 octets
S: <the POP3 server sends message 1>
S: ...
C: DELE 1
S: +OK message 1 deleted
C: RETR 2
S: +OK 200 octets
S: <the POP3 server sends message 2>
S: ...
C: DELE 2
S: +OK message 2 deleted
C: QUIT
S: +OK dewey POP3 server signing off (maildrop empty)
C: <close connection>
S: <wait for next connection>
Protokol IMAP4
Bol predstavený v decembri 1994 pod označením IMAP4 (RFC 1730). Predchádzajúce protokoly, ktoré vykonávali rovnaké úlohy, mali rovnakú skratku, ale iné prípony: IMAP2 (RFC 1176) a IMAP3 (RFC 1203) sa pokladali za "Interactive Mail Access Protocols" (Interaktívne protokoly pre prístup k pošte). IMAP beží na vrchole TCP/IP. Nejde však o protokol pre vlastné posielanie elektronickej pošty.
IMAP (Internet Mail Access Protocol) je novým poštovým protokolom, ktorý má tendenciu konkurovať dnes používanému protokolu POP3. IMAP sa od POP3 podstatne líši - zatiaľ čo POP3 iba prehrá celý mailbox z poštového servera na lokálny počítač, IMAP ponúkne svojmu klientovi na začiatku spojenia len zoznam správ. Klient si potom má možnosť vybrať správu, ktorú chce vidieť a IMAP mu ju dodá. Rozdiel je teda ten, že IMAP neprenáša mailbox z jedného počítača na druhý, mailbox je stále na serveri a klient s ním môže pracovať, ako keby bol mailbox na jeho vlastnom počítači. Výhodou protokolu IMAP je, že môže pracovať navlas rovnako ako protokol POP3.
Podstatnou nevýhodou tohoto protokolu je jeho výrazne menšie rozšírenie oproti POP3.
Najnovšia verzia tohto protokolu pochádza z decembra 1996 a má označenie IMAP4rev1. Protokol IMAP4rev1 má pridelený port 143 a je definovaný v dokumente RFC 2060.
Názov protokolu
Skratka
Dokument RFC
Port
Simple Mail Transfer Protocol SMTP RFC 821 (Postel, August 1982) 25 Post Office Protocol Version 2 POP2 RFC 937 (Butler et al, Február 1985) 109 Post Office Protocol Version 3 POP3 RFC 1939 (Myers & Rose, Máj 1996) 110 Post Office Protocol Version 3 Authentication command POP3 AUTH RFC 1734 (Myers, December 1994) 110 Post Office Protocol Version 3 Extended Service Offerings POP3 XTND RFC 1082 (Rose, November 1988) 110 Distributed Mail Service Protocol DMSP Pcmail RFC 1056 (Lambert, Jún 1988) 158 Interactive Mail Access Protocol, Version 2 IMAP2 RFC 1176 (Crispin, August 1990) 143 Interactive Mail Access Protocol, Version 2bis IMAP2bis RFC 1732 (Crispin, December 1994) 143 Interactive Mail Access Protocol, Version 3 IMAP3 RFC 1203 (Rice, Február 1991) 220 Internet Messages Access Protocol, Version 4 IMAP4 RFC 1730 (Crispin, December 1994) 143 Internet Messages Access Protocol, Version 4rev1 IMAP4rev1 RFC 2060 (Crispin, December 1996) 143 Application Configuration Access Protocol ACAP RFC 2244 (Newman & Myers, November 1997) 674 Interactive Mail Support Protocol IMSP RFC ? (Myers, Jún 1995) 406
Tab. 1: Prehľad používaných protokolov na prenos elektronickej pošty
Vysvetlivky
RFC (Request for Comments) - Sada článkov, v ktorých sa dokumentujú a zverejňujú štandardy Internetu, návrhy štandardov a obecne odsúhlasené myšlienky.
Port, Software - Pamäťové miesto, ktoré je spojené s hardwarovým portom alebo komunikačným kanálom. Poskytuje pamäť pre informácie prenášané medzi pamäťou a kanálom. V súvislosti s Internetom port (pozri tab. 2) predstavuje hodnotu v transportnej vrstve, ktorá rozlišuje medzi niekoľkými aplikáciami, ktoré môžu vlastniť spojenie s jediným hostiteľom. Podrobnejšie informácie o tejto téme nájdete v dokumente RFC 1700.
Názov služby
Port
Význam
ftp 21 File Transfer Protocol ssh 22 SSH Remote Login Protocol telnet 23 Telnet smtp 25 Simple Mail Transfer Protocol nameserver 42 Host Name Server domain 53 Domain Name Server http 80 World Wide Web HTTP pop2 109 Post Office Protocol – Version 2 pop3 110 Post Office Protocol – Version 3 ntp 123 Network Time Protocol imap 143 Internet Message Access Protocol imap4–ssl 585 IMAP4+SSL (use 993 instead) imaps 993 imap4 protocol over TLS/SSL
Tab. 2: Prehľad portov používaných pre niektoré základné služby
(c) 2004 Ing. Peter Gašparovič - www.pgasparovic.com
Literatúra
[1] Feiber, W.: Encyklopedie počítačových sítí. Praha, Computer Press, 1996.
[2] Břehovský, P.: Praktický úvod TCP/IP. České Budějovice, KOPP, 1994 .
[3] Mrázek, L.: První kroky INTERNETEM aneb Je to na WWW!. České Budějovice, KOPP, 1995.
[4] Šmrha, P. – Rudolf, V.: Internetworking pomocí TCP/IP. České Budějovice, KOPP, 1995.
[5] Hejna, L.: Lokální počítačové síte. Praha, GRADA, 1994.
[6] Falk, B.: Průvodce světem Internetu. Praha, Computer Press, 1995.
[7] Lhotka, L.: SERVER v INTERNETU. České Budějovice, KOPP, 1997.
[8] Peterka, J.: Co je čím ... v počítačových sítích. COMPUTERWORLD, 1994, č. 4, 7, 9, 17, 21, 35, 44.
[9] Sterling, B.: Short History of the Internet. The Magazine of Fantasy and Science Fiction, 1993.
[10] Dostálek, L. - Kabelová, A.: MIME – Multipurpose Internet Mail Extension. http://info.pvt.net/mime.htm, 1997.
[11] Postel, J. B.: Simple Mail Transfer Protokol. RFC # 821, August 1982.
[12] Crocker, D. H.: Standard For The Format Of Arpa Internet Text Messages. RFC # 822, August 1982.
[13] Borenstein, N. - Freed, N.: MIME (Multipurpose Internet Mail Extension) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies. RFC # 1521, September 1993.
[14] Borenstein, N. - Freed, N.: Multipurpose Internet Mail Extension (MIME) Part One: Format of Internet Message Bodies. RFC # 2045, November 1996.
[15] Rose, M.: Post Office Protocol – Version 3. RFC # 1225, May 1991.
[16] Rose, M. - Myers, J.: Post Office Protocol – Version 3. RFC # 1725, November 1994.
[17] Dresslerová, B. - Veselský, J. - Gombik, G.: LINUX Dokumentační projekt. Praha, Computer Press, 1998.
[18] Šovčík, J.: Login. PC Revue, 1995, č. 4 až 8.
[19] Palúch, P.: Poznáte LINUX?. PC Revue, 1998, č. 2.
[20] Rivest, R.: The MD5 Message–Digest Algorithm. RFC # 1321, Apríl 1992.
[21] Dostálek, L. a kol.: Velký průvodce protokoly TCP-IP Bezpečnost. Praha, Computer Press, 2001.