IMAP4 - popis pouziti protokolu

IMAP4 protokol je protokol pouzivany k manipulaci se zpravami na postovnim serveru pres TCP/IP spojeni. Posledni verze IMAP protokolu je definovana v http://www.ietf.org/rfc/rfc3501.txt. Narozdil od POP3 protokolu umoznuje:

Standardne tento protokol je pristupny na portu 143, popr. 993 pro sifrovana spojeni.

IMAP relace
Imap relace ma 4 faze:

Prikazy IMAP4
prikazy jsou zadavany ve formatu XXXX Command Paramaters
XXXX je identifikator prikazu. Je to alfanumericky retezec, ktery by mel byt pro kazdy prikaz v relaci unikatni (neni tedy vazan na nejaky konkretni imap prikaz, a vetsinou v prubehu relace je to nejaka sekvence. napr. a001, a002, a003). Soucasti odpovedi serveru na tento prikaz je stejny identifikator. Predpokladam, ze toto je zde z duvodu, ze nektery prikaz (napr. server-side vyhledavani) muze trvat delsi dobu a nez je ukoncen mohou byt provedeny nejake dalsi prikazy. Pricemz podle identifikatoru v odpovedich serveru si muze klient rozpoznat ktera odpoved patri k jakemu prikazu.
Command nazev IMAP prikazu, imap prikazy jsou akceptovany jako case-insensitive, tedy nezalezi na velikosti pismen
Parameters jeden nebo vice parametru, zavisi na konkretnim prikazu

vysvetleni nekterych IMAP prikazu:

Login userName heslo : prihlaseni se k imap serveru jako uzivatel:Username s heslem:Password
Select mailboxName : zvoleni mailboxu, ve kterem budeme pracovat
Fetch messageNumber Flags : stazeni priznaku zpravy cislo: messageNumber
Fetch messageNumber Full : stazeni cele zpravy cislo: messageNumber
Store messageNumber +Flags (flagName) : ulozeni priznaku flagName zpravy messageNumber
Expunge: skutecne na serveru smaze zpravy oznacene ke smazani
Logout: odhlaseni od IMAP serveru

ukazka IMAP4 relace

telnet agent.zlutazimnice.cz 143M
Trying 81.95.102.223...
Connected to agent.zlutazimnice.cz.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready. Copyright 1998-2004 Double Precision, Inc. See COPYING for distribution information.
prihlaseni uzivatele k IMAP serveru se spatnym heslem
0001 login testaccount@zlutazimnice.cz spatneheslo 
0001 NO LOGIN failed.
0002 login testaccount@zlutazimnice.cz testovoheslo 
0002 OK LOGIN Ok.
zvoleni mailboxu
0003 select inbox
* FLAGS (\Draft \Answered \Flagged \Deleted \Seen \Recent)
* OK [PERMANENTFLAGS (\* \Draft \Answered \Flagged \Deleted \Seen)] Limited
* 1 EXISTS
* 1 RECENT
* OK [UIDVALIDITY 1126594605] Ok
* OK [MYRIGHTS "acdilrsw"] ACL
0003 OK [READ-WRITE] Ok
stazeni priznaku zpravy cislo 1
0004 fetch 1 flags
* 1 FETCH (FLAGS (\Seen \Recent))
0004 OK FETCH completed.
stazeni tela zpravy cislo 1
0005 fetch 1 body
* 1 FETCH (BODY (("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 64 3)("text" "html" ("charset" "us-ascii") NIL NIL "quoted-printable" 593 13) "alternative"))
0005 OK FETCH completed.
stazeni cele zpravy cislo 1
0006 fetch 1 full
* 1 FETCH (FLAGS (\Seen \Recent) INTERNALDATE "12-Sep-2005 05:48:36 +0200" RFC822.SIZE 2363 ENVELOPE ("Mon, 12 Sep 2005 05:46:31 +0200" "zkusebni mail #1" (("Honza Novak" NIL "kacerr" "developers.zlutazimnice.cz")) (("Honza Novak" NIL "kacerr" "developers.zlutazimnice.cz")) (("Honza Novak" NIL "kacerr" "developers.zlutazimnice.cz")) ((NIL NIL "testaccount" "zlutazimnice.cz")) NIL NILNIL"<20050912034833.7363A6EF3F@agent.zlutazimnice.cz>") BODY (("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 64 3)("text" "html" ("charset" "us-ascii") NIL NIL "quoted-printable" 593 13) "alternative"))
0006 OK FETCH completed.
nastaveni priznaku deleted zpravy cislo 1 0007 store 1 +flags (\Deleted)
* 1 FETCH (FLAGS (\Seen \Deleted \Recent))
0007 OK STORE completed.
smazani zprav oznacenych ke smazani
0008 expunge
* 1 EXPUNGE
* 0 EXISTS
* 0 RECENT
0008 OK EXPUNGE completed
zobrazeni informaci o aktualni slozce
0009 list "" *
* LIST (\Unmarked \HasNoChildren) "." "INBOX"
0009 OK LIST completed
zvoleni mailboxu
0010 select inbox
* FLAGS (\Draft \Answered \Flagged \Deleted \Seen \Recent)
* OK [PERMANENTFLAGS (\* \Draft \Answered \Flagged \Deleted \Seen)] Limited
* 0 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1126594605] Ok
* OK [MYRIGHTS "acdilrsw"] ACL
0010 OK [READ-WRITE] Ok
chyba, neexistujici prikaz
quit
quit NO Error in IMAP command received by server.
chyba, neexistujici prikaz
0011 quit
0011 NO Error in IMAP command received by server.
ukonceni relace
0011 logout
* BYE Courier-IMAP server shutting down
0011 OK LOGOUT completed
Connection closed by foreign host.