Obsah
Časová náročnost kapitoly: 30 minut
Protokol
IMAP přechází do autentizovaného stavu, buď po autentizaci příkazem
LOGIN, nebo AUTHENTICATE, nebo přímo po navázání TCP spojení, pokud
server odeslal zprávu PREAUTH. V autentizovaném stavu může uživatel
provádět veškeré operace s e-mailovými zprávami a poštovními
složkami. Na rozdíl od protokolu POP umožňuje protokol IMAP vytvářet
na serveru složky a do nich jednotlivé zprávy zařazovat a dále s nimi
pracovat.
Příkaz CREATE vytvoří složku zadaného
jména.
parametry: jméno složky
data: nejsou
specifikována žádná data pro tento příkaz
výsledek:
OK -
složka vytvořena
NO
- vytváření selhalo: nemohu vytvořit složku s tímto názvem
BAD -
neznámý příkaz nebo špatný argument
Příklad:
C: A003 CREATE vyridit/
S: A003 OK CREATE completed
C:
A004 CREATE wiridit/tonda
S: A004 OK
CREATE completed
Příkaz DELETE trvale odstraní složku
zadaného jména.
parametry: jméno složky
data:
nejsou specifikována žádná data pro tento příkaz
výsledek:
OK -
složka smazána
NO
- mazání selhalo: nemohu smazat složku s tímto názvem
BAD
- neznámý příkaz nebo špatný argument
Příklad:
C: A683 DELETE viridit
S: A683 OK DELETE completed
Příkaz SELECT vybere složku, se kterou
bude klient dále pracovat. Server vrátí neoznačené odpovědi s
informacemi o poštovní složce a dále vlastní odpověď na příkaz
SELECT.
parametry: jméno složky
data:
neoznačená odpověď
s povinnými položkami
FLAGS definuje
vlastnosti složky
<n>
EXISTS počet zpráv ve složce
<n>
RECENT počet zpráv přidaných do složky od
posledního čtení
OK
[UIDVALIDITY <n>] Hodnota platného
unikátního identifikátoru.
s volitelnými
položkami
UNSEEN Identifikátor
první nepřečtené zprávy ve složce
PERMANENTFLAGS seznam
nastavení, které může klient změnit permanentně
výsledek:
OK -
výběr dokončen, přechází se do vybraného stavu
NO
- výběr selhal, zůstává v autentizovaném stavu: žádná taková složka,
není možno přistupovat ke schránce
BAD
- neznámý příkaz nebo špatný argument
Příklad:
C: A142 SELECT INBOX
S: * 172 EXISTS
S:
* 1 RECENT
S: * OK [UNSEEN 12] Message 12
is first unseen
S: * OK [UIDVALIDITY
3857529045] UIDs valid
S: * FLAGS
(\Answered \Flagged \Deleted \Seen \Draft)
S:
* OK [PERMANENTFLAGS (\Deleted \Seen \*)] Limited
S:
A142 OK [READ-WRITE] SELECT completed
Příkaz EXAMINE je obdobný příkazu
SELECT s tím rozdílem, že se složka otevře pouze v modu pro čtení.
parametry: jméno složky
data: neoznačená
odpověď
FLAGS definuje
vlastnosti složky
<n>
EXISTS počet zpráv ve složce
<n>
RECENT počet zpráv přidaných do složky od
posledního čtení
OK
[UIDVALIDITY <n>] Hodnota platného
unikátního identifikátoru.
s volitelnými
položkami
UNSEEN Identifikátor
první nepřečtené zprávy ve složce
PERMANENTFLAGS seznam
nastavení, které může klient změnit permanentně
výsledek:
OK -
výběr dokončen, přechází se do vybraného stavu
NO
- výběr selhal, zůstává v autentizovaném stavu: žádná taková složka,
není možno přistupovat ke schránce
BAD
- neznámý příkaz nebo špatný argument
Příklad:
C: A932 EXAMINE pracovni
S: * 17 EXISTS
S:
* 2 RECENT
S: * OK [UNSEEN 8] Message 8
is first unseen
S: * OK [UIDVALIDITY
3857529045] UIDs valid
S: * FLAGS
(\Answered \Flagged \Deleted \Seen \Draft)
S:
* OK [PERMANENTFLAGS ()] No permanent flags permitted
S:
A932 OK [READ-ONLY] EXAMINE completed
Příkaz RENAME přejmenuje složku
zadaného jména na nové jméno.
parametry: jméno existující
složky, nové jméno složky
data: nejsou specifikována žádná
data pro tento příkaz
výsledek:
OK
- přejmenování dokončeno
NO
- přejmenování selhalo: nemohu přejmenovat složku s tímto názvem
BAD -
neznámý příkaz nebo špatný argument
Příklad:
C: A683 RENAME pracovni
vyridit
S: A683 OK RENAME completed
Příkaz SUBSCRIBE přidá poštovní složku
do seznamu aktivních nebo odebíraných schránek, které vrací příkaz
LSUB.
parametry: jméno složky
data: nejsou
specifikována žádná data pro tento příkaz
výsledek:
OK -
přidání dokončeno
NO
- přidání selhalo
BAD
- neznámý příkaz nebo špatný argument
Příklad:
C: A002 SUBSCRIBE
#news.comp.mail.mime
S: A002 OK SUBSCRIBE
completed
Příkaz UNSUBSCRIBE odebere poštovní
složku ze seznamu aktivních nebo odebíraných schránek.
parametry:
jméno složky
data: nejsou specifikována žádná data pro
tento příkaz
výsledek:
OK
- odebrání dokončeno
NO
- odebrání selhalo
BAD
- neznámý příkaz nebo špatný argument
Příklad:
C: A002 UNSUBSCRIBE
#news.comp.mail.mime
S: A002 OK
UNSUBSCRIBE completed
Příkaz APPEND přidá zadanou zprávu na
konec určené poštovní složky. Pokud jsou použity volitelné parametry,
nastaví se zprávě jejich parametry.
parametry:
jméno
složky
volitelně
příznaky
volitelně
datum/čas
zpráva
ve formátu RFC 822
data: nejsou specifikována žádná data
pro tento příkaz
výsledek:
OK
- přidání dokončeno
NO
- přidání selhalo
BAD
- neznámý příkaz nebo špatný argument
Příklad:
C: A003 APPEND
saved-messages (\Seen) {310}
C: Date:
Mon, 7 Feb 1994 21:52:25 -0800 (PST)
Zde klient odesílá
vlastní zprávu vytvořenou podle standardů popsaných v kapitole
Aplikační protokoly Internetu
C:
From: Fred Foobar <foobar@Blurdybloop.COM>
C:
Subject: afternoon meeting
C: To:
mooch@owatagu.siam.edu
C: Message-Id:
<B27397-0100000@Blurdybloop.COM>
C:
MIME-Version: 1.0
C: Content-Type:
TEXT/PLAIN; CHARSET=US-ASCII
C:
C:
Hello Joe, do you think we can meet at 3:30 tomorrow?
C:
S: A003 OK APPEND completed
Příkaz LIST vrátí podmnožinu jmen z
množiny všech dostupných jmen složek uživatele.
parametry:
kontext doplňuje
serveru potřebný kontext schránky
jméno
schránky znak "%" má v tomto případě
shodný význam jako znak "*"
data: neoznačená
odpověď: LIST
výsledek:
OK
- seznam vytvořen
NO
- vytvoření seznamu selhalo
BAD
- neznámý příkaz nebo špatný argument
Příklad:
C: A202 LIST "~/Mail/"
"%"
S: * LIST (\Noselect) "/"
~/Mail/foo
S: * LIST () "/"
~/Mail/meetings
S: A202 OK LIST completed
Příkaz LSUB je shodný s příkazem LIST
ale zobrazí pouze složky přihlášené příkazem SUBSCRIBE.
parametry:
kontext
jméno
schránky
data: neoznačená odpověď: LSUB
výsledek:
OK -
seznam vytvořen
NO
- vytvoření seznamu selhalo
BAD
- neznámý příkaz nebo špatný argument
Příklad:
C: A002 LSUB "#news."
"comp.mail.*"
S: * LSUB () "."
#news.comp.mail.mime
S: * LSUB () "."
#news.comp.mail.misc
S: A002 OK LSUB
completed
Příkaz STATUS vyžádá informace o stavu
poštovní složky zadaného jména.
parametry: jméno složky
data: neoznačená odpověď: STATUS
výsledek:
OK -
STATUS dokončen
NO
- STATUS selhal
BAD
- neznámý příkaz nebo špatný argument
Příklad:
C: A042 STATUS pracovni
(UIDNEXT MESSAGES)
S: * STATUS pracovni
(MESSAGES 231 UIDNEXT 44292)
v odpovědi je počet zpráv a
první nepoužitý unikátní identifikátor
S:
A042 OK STATUS completed