6.1. Příkaz FETCH
Příkaz FETCH načte obsah příslušné zprávy podle zadaných položek zprávy.
parametry:
množina zpráv
jméno položky zprávy ALL, BODY
data: neoznačená odpověď FETCH
výsledek:
OK - FETCH provedeno
NO - FETCH selhalo: nemohu předat požadovaná data
BAD - neznámý příkaz nebo špatný argument
Příklad:
C: A654 FETCH 2:4 (FLAGS BODY[HEADER.FIELDS (DATE FROM)])
příkaz vypíše obsah zpráv 2-4 podle nastavení
S: * 2 FETCH ....
místo znaků .... nasleduje obsah zprávy číslo 2
S: * 3 FETCH ....
S: * 4 FETCH ....
S: A654 OK FETCH completed
6.2. Příkaz STORE
Příkaz STORE změní data spojená s danou zprávou. Implicitně se změněná zpráva vrací zpět v neoznačené odpovědi.
parametry:
množina zpráv
jméno položky zprávy
data položky zprávy
data: neoznačená odpověď FETCH
výsledek:
OK - STORE provedeno
NO - STORE selhalo: nemohu uložit požadovaná data
BAD - neznámý příkaz nebo špatný argument
Příklad:
C: A003 STORE 2:4 +FLAGS (\Deleted)
S: * 2 FETCH FLAGS (\Deleted \Seen)
S: * 3 FETCH FLAGS (\Deleted)
S: * 4 FETCH FLAGS (\Deleted \Flagged \Seen)
S: A003 OK STORE completed
6.3. Příkaz CHECK
Příkaz CHECK vyžádá kontrolu vybrané schránky. Operace prováděná během kontroly je
závislá na konkrétní implementaci. Kontrola pomocí check se běžně provádí jako součást každého příkazu.
parametry: žádné
data: nejsou specifikována žádná data pro tento příkaz
výsledek:
OK - kontrola provedena
BAD - neznámý příkaz nebo špatný argument
Příklad:
C: FXXZ CHECK
S: FXXZ OK CHECK Completed
6.4. Příkaz EXPUNGE
Příkaz EXPUNGE vymaže všechny zprávy označené pro odstranění.
parametry: žádné
data: neoznačená odpověď EXPUNGE
výsledek:
OK - vymazání provedeno
NO - mazání selhalo: nemohu vymazat (např. díky omezeným přístupovým právům)
BAD - neznámý příkaz nebo špatný argument
Příklad:
C: A202 EXPUNGE
S: * 3 EXPUNGE
S: * 3 EXPUNGE
S: * 5 EXPUNGE
S: * 8 EXPUNGE
Server odpovídá neoznačenou odpovědí, která je následována identifikátorem zprávy. kterou odstraňuje
S: A202 OK EXPUNGE completed
6.5. Příkaz SEARCH
Příkaz SEARCH vyhledá ve schránce zprávy, které odpovídají zadaným kritériím.
Možná vyhledávací kritéria jsou následující:
ALL, ANSWERED, BCC <string>, BEFORE <date>, BODY <string>, CC <string>, DELETED,
DRAFT, FLAGGED, FROM <string>, HEADER <field-name> <string>, KEYWORD <flag>,
LARGER <n>, NEW, NOT <search-key>, OLD, ON <date>, OR <search-key1> <search-key2>,
RECENT, SEEN, SENTBEFORE <date>, SENTON <date>, SENTSINCE <date>, SINCE <date>,
SMALLER <n>, SUBJECT <string>, TEXT <string>, TO <string>, UID <message set>,
UNANSWERED, UNDELETED, UNDRAFT, UNFLAGGED, UNKEYWORD <flag>, UNSEEN
parametry:
volitelný: znaková sada
volitelný: vyhledávací kritéria
data: neoznačená odpověď SEARCH
výsledek:
OK - vyhledávání provedeno
NO - vyhledávání selhalo: nemohu vyhledávat podle této znakové sady nebo kritérií
BAD - neznámý příkaz nebo špatný argument
Příklad:
C: A282 SEARCH FLAGGED SINCE 1-Feb-1994 NOT FROM "Smith"
S: * SEARCH 2 84 882
v odpovědi serveru jsou obsaženy ID všech zpráv odpovídajících vstupní podmínce
S: A282 OK SEARCH completed
6.6. Příkaz COPY
Příkaz COPY vytvoří kopii zadané zprávy do určené schránky.
parametry:
množina zpráv
jméno poštovní schránky
data: nejsou specifikována žádná data pro tento příkaz
výsledek:
OK - kopie vytvořena
NO - kopírování selhalo: nemohu kopírovat tyto zprávy nebo do zadané schránky
BAD - neznámý příkaz nebo špatný argument
Příklad:
C: A003 COPY 2:4 MEETING
S: A003 OK COPY completed
6.7. Příkaz UID
Příkaz UID má dvě formy. V prvním případě má jako své parametry příkazy COPY, FETCH nebo STORE
s parametry pro vybraný příkaz. Číslo v parametru vnořeného příkazu (místo množiny zpráv) je jednoznačný identifikátor zprávy, se kterou chceme pracovat.
U příkazu UID je možné zapsat množinu zpráv také jako interval unikátních identifikátorů zpráv.
Ve druhém případě má příkaz UID jako parametr příkaz SEARCH s jeho parametry. Interpretace
parametrů je stejná jako u příkazu SEARCH s tím rozdílem, že číslo vracené v odpovědi na UID SEARCH je jednoznačný identifikátor nalezené zprávy.
parametry:
jméno příkazu
argumenty příkazu
data: neoznačená odpověď FETCH, SEARCH
výsledek:
OK - UID příkaz proveden
NO - UID příkaz: nastala chyba při vykonávání příkazu
BAD - neznámý příkaz nebo špatný argument
Příklad:
C: A999 UID FETCH 4827313:4828442 FLAGS
Klient žádá výpis všech nastavených návěští (FLAG) u zpráv s jednoznačnými identifikátory ležícími v množině 4827313 až 4828442
S: * 23 FETCH (FLAGS (\Seen) UID 4827313)
Server odpovídá, jde o zprávy se sekvenčním číslem 23 až 25, jednoznačné identifikátory 4827313, 4827943, 4828442.
S: * 24 FETCH (FLAGS (\Seen) UID 4827943)
S: * 25 FETCH (FLAGS (\Seen) UID 4828442)
S: A999 UID FETCH completed
6.8. Příkaz X
Jakýkoli příkaz s předponou X je experimetální. Příkazy X nejsou standartizovány a jsou závislé na konkrétní implementaci.
parametry:
závislé na konkrétní implementaci
data: závislá na konkrétní implementaci
výsledek:
OK - příkaz proveden
NO - nastala chyba při vykonávání příkazu
BAD - neznámý příkaz nebo špatný argument
6.9. Příkaz CLOSE
Příkaz CLOSE vymaže zprávy označené pro smazání, protokol přechází do stavu autentizovaného
parametry: žádné
data: nejsou specifikována žádná data pro tento příkaz
výsledek:
OK - uzavření provedeno, přechází se do autentizovaného stavu
NO - chyba při zavírání: není vybraná žádná schránka
BAD - neznámý příkaz nebo špatný argument
Příklad:
C: A341 CLOSE
S: A341 OK CLOSE completed
6.10. Cvičení
Vymyslete sekvenci příkazů, která zjistí zprávu a její jednoznačný identifikátor
označíte zprávu jako vymazanou, odstraníte ji, zkontroluje, zda je odstraněna a přejděte do stavu autentizovaného. Předpokládáme, že protokol je
ve vybraném stavu.