previous up next index search

Previous: 4.4.14.2 Ïî÷òîâûé ïðîòîêîë POP3    UP: 4.4.14 Ïðîòîêîë ýëåêòðîííîé ïî÷òû SMTP
    Next: 4.4.14.4 Ìíîãîöåëåâîå ðàñøèðåíèå ïî÷òû Èíòåðíåò (MIME)

4.4.14.3 Ïðîòîêîë Èíòåðíåò äëÿ ðàáîòû ñ ñîîáùåíèÿìè IMAP
Ñåìåíîâ Þ.À. (ÃÍÖ ÈÒÝÔ)

Êîìàíäû è îòêëèêè
Ñîñòîÿíèå è äèàãðàììà èñïîëíåíèÿ
Ôîðìàò äàííûõ
Îïåðàöèîííûå ñîîáðàæåíèÿ
Êîìàíäû êëèåíòà
Îòêëèêè ñåðâåðà
Ïðèìåð ñîåäèíåíèÿ IMAP 4.1
Ôîðìàëüíûé ñèíòàêñèñ
Ñîîáðàæåíèÿ áåçîïàñíîñòè
A. Áèáëèîãðàôèÿ

Ïðîòîêîë IMAP 4.1 (INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1, V.Crispin, RFC-2060, December 1996) áàçèðóåòñÿ íà òðàíñïîðòíîì ïðîòîêîëå TCP è èñïîëüçóåò ïîðò 143. Áåçîïàñíàÿ âåðñèÿ ïðîòîêîëà IMAP èñïîëüçóåò ïîðò 993. Ïðîòîêîë IMAP ïðåäñòàâëÿåò ñîáîé àëüòåðíàòèâó POP-3. Òàêæå êàê è ïîñëåäíèé îí ðàáîòàåò òîëüêî ñ ñîîáùåíèÿìè è íå òðåáóåò êàêèõ-ëèáî ïàêåòîâ ñî ñïåöèàëüíûìè çàãîëîâêàìè.


 îòëè÷èå îò POP3 IMAP õðàíèò ïî÷òîâûå ñîîáùåíèÿ ó ñåáÿ “âå÷íî” (ïîêà êëèåíò ñàì íå ïîæåëàåò èõ ñòåðåòü).

Portable - Autodata Portable

Ñîåäèíåíèå IMAP 4.1 ïîäðàçóìåâàåò óñòàíîâëåíèå ñâÿçè ìåæäó êëèåíòîì è ñåðâåðîì. Êëèåíò ïîñûëàåò ñåðâåðó êîìàíäû, ñåðâåð êëèåíòó äàííûå è óâåäîìëåíèÿ î ñòàòóñå âûïîëíåíèÿ çàïðîñà. Âñå ñîîáùåíèÿ, êàê êëèåíòà, òàê è ñåðâåðà èìåþò ôîðìó ñòðîê, êîòîðûå çàâåðøàþòñÿ ïîñëåäîâàòåëüíîñòüþ CRLF. Ïîëó÷àòåëü (êëèåíò èëè ñåðâåð) âîñïðèíèìàåò òàêóþ ñòðîêó èëè ïîñëåäîâàòåëüíîñòü îêòåòîâ èçâåñòíîé äëèíû, çà êîòîðîé ñëåäóåò ñòðîêà.

Portable - Autodata Portable

Ëþáàÿ ïðîöåäóðà íà÷èíàåòñÿ ñ êîìàíäû êëèåíòà. Ëþáàÿ êîìàíäà êëèåíòà íà÷èíàåòñÿ ñ ïðåôèêñà-èäåíòèôèêàòîðà (îáû÷íî êîðîòêàÿ áóêâåííî-öèôðîâàÿ ñòðîêà, íàïðèìåð A0001, A0002 è ò.ä.), íàçûâàåìîãî ìåòêîé (tag). Äëÿ êàæäîé êîìàíäû êëèåíò ãåíåðèðóåò ñâîþ ìåòêó. Èìååòñÿ äâà ñëó÷àÿ, êîãäà ñòðîêà, ïîñëàííàÿ êëèåíòîì, íå ïðåäñòàâëÿåò ñîáîé çàêîí÷åííóþ êîìàíäó.  ïåðâîì - àðãóìåíò êîìàíäû ñíàáæàåòñÿ êîäîì, îïðåäåëÿþùèì ÷èñëî îêòåòîâ â ñòðîêå (ñì. îïèñàíèå ëèòåðàëüíûõ ñòðîê â ðàçäåëå “Ôîðìàòû äàííûõ”). Âî âòîðîì - àðãóìåíòû êîìàíäû òðåáóþò îòêëèêà ñî ñòîðîíû ñåðâåðà (ñì. îïèñàíèå êîìàíäû authenticate).  îáîèõ âàðèàíòàõ ñåðâåð ïîñûëàåò çàïðîñ ïðîäîëæåíèÿ êîìàíäû, åñëè îí ãîòîâ. Òàêîé îòêëèê ñåðâåðà íà÷èíàåòñÿ ñ ñèìâîëà "+".

Çàìå÷àíèå: Åñëè, âìåñòî ýòîãî, ñåðâåð äåòåêòèðóåò îøèáêó â êîìàíäå, ïîñûëàåòñÿ îòêëèê çàâåðøåíèÿ bad ñ ìåòêîé, òðåáóþùåé èãíîðèðîâàíèÿ êîìàíäû è ïðåäîòâðàùåíèÿ ïîñûëêè êëèåíòîì êàêèõ-ëèáî åùå çàïðîñîâ.

Îòïðàâèòåëü ìîæåò ïîñëàòü îòêëèê çàâåðøåíèÿ è â ñëó÷àå íåêîòîðûõ äðóãèõ êîìàíä (åñëè îäíîâðåìåííî èñïîëíÿåòñÿ íåñêîëüêî êîìàíä) èëè åñëè äàííûå íå èìåþò ìåòîê.  ëþáîì ñëó÷àå, îæèäàåòñÿ çàïðîñ ïðîäîëæåíèÿ, êëèåíò ïðåäïðèíèìàåò â îòâåò ñîîòâåòñòâóþùèå äåéñòâèÿ è ÷èòàåò ñëåäóþùèé îòêëèê ñåðâåðà. Âî âñåõ âàðèàíòàõ êëèåíò äîëæåí çàâåðøèòü îòïðàâêó îäíîé êîìàíäû ïðåæäå ÷åì ïîñëàòü íîâóþ.

Ïðîòîêîëüíûé ïðèåìíèê IMAP 4.1 ñåðâåðà ÷èòàåò ñòðîêó êîìàíäû, ïðèøåäøåé îò êëèåíòà, îñóùåñòâëÿåò åå ðàçáîð, âûäåëÿåò åå ïàðàìåòðû è ïåðåäàåò ñåðâåðó äàííûå. Ïî çàâåðøåíèè êîìàíäû ñåðâåð ïîñûëàåò îòêëèê.

Portable - Autodata Portable

Äàííûå, ïåðåäàâàåìûå ñåðâåðîì êëèåíòó, à òàêæå ñòàòóñíûå îòêëèêè, êîòîðûå íå óêàçûâàþò íà çàâåðøåíèå âûïîëíåíèÿ êîìàíäû, èìåþò ïðåôèêñ "*" è íàçûâàþòñÿ íåïîìå÷åííûìè îòêëèêàìè.

Äàííûå ñåðâåðà ìîãóò áûòü ïîñëàíû â îòâåò íà êîìàíäó êëèåíòà èëè îòïðàâëåíû ñåðâåðîì ïî ñâîåé èíèöèàòèâå. Ôîðìàò äàííûõ íå çàâèñèò îò ïðè÷èíû ïîñûëêè.

Îòêëèê óêàçûâàåò íà óñïåøíîå âûïîëíåíèå îïåðàöèè èëè íà åå íåóäà÷ó. Îòêëèê èñïîëüçóåò òó æå ìåòêó, ÷òî è êîìàíäà êëèåíòà, çàïóñòèâøàÿ ïðîöåäóðó. Òàêèì îáðàçîì, åñëè îñóùåñòâëÿåòñÿ áîëåå ÷åì îäíà êîìàíäà, ìåòêà ñåðâåðà óêàçûâàåò íà êîìàíäó, âûçâàâøóþ äàííûé îòêëèê. Èìååòñÿ òðè âèäà îòêëèêà çàâåðøåíèÿ ñåðâåðà: ok (óêàçûâàåò íà óñïåøíîå âûïîëíåíèå), no (îòìå÷àåò íåóñïåõ) èëè bad (óêàçûâàåò íà ïðîòîêîëüíóþ îøèáêó, íàïðèìåð, íå óçíàíà êîìàíäà èëè çàôèêñèðîâàíà ñèíòàêñè÷åñêàÿ îøèáêà).

Ïðîòîêîëüíûé ïðèåìíèê êëèåíòà IMAP 4.1 ÷èòàåò ñòðîêó îòêëèêà îò ñåðâåðà. Îí äîëæåí ïðåäïðèíÿòü äåéñòâèÿ, â ñîîòâåòñòâèè ñ ïåðâûì ñèìâîëîì ìåòêè "*" èëè "+".

Êëèåíò äîëæåí áûòü ãîòîâ ïðèíÿòü ëþáîé îòêëèê ñåðâåðà â ëþáîå âðåìÿ. Ýòî êàñàåòñÿ è íå çàïðîøåííûõ äàííûõ, ïðèñëàííûõ ñåðâåðîì. Äàííûå ñåðâåðà äîëæíû áûòü çàïèñàíû òàê, ÷òîáû êëèåíò ìîã èõ íåïîñðåäñòâåííî èñïîëüçîâàòü, íå ïîñûëàÿ ñåðâåðó óòî÷íÿþùèõ çàïðîñîâ.

Êàæäîå ñîîáùåíèå èìååò íåñêîëüêî ñâÿçàííûõ ñ íèì àòðèáóòîâ. Ýòè àòðèáóòû ìîãóò áûòü îïðåäåëåíû èíäèâèäóàëüíî èëè ñîâìåñòíî ñ äðóãèìè àòðèáóòàìè.

Äîñòóï ê ñîîáùåíèÿì â IMAP 4.1 îñóùåñòâëÿåòñÿ ñ ïîìîùüþ óíèêàëüíîãî èäåíòèôèêàòîðà èëè ïîðÿäêîâîãî íîìåðà ñîîáùåíèÿ.

Portable - Autodata Portable

Êàæäîìó ñîîáùåíèþ ñòàâèòñÿ â ñîîòâåòñòâèå 32-áèòîâûé êîä, êîòîðûé ïðè èñïîëüçîâàíèè ñîâìåñòíî ñ óíèêàëüíûì èäåíòèôèêàòîðîì îáðàçóåò 64-áèòîâóþ ïîñëåäîâàòåëüíîñòü, ãàðàíòèðóþùóþ îäíîçíà÷íóþ èäåíòèôèêàöèþ ñîîáùåíèÿ â ïî÷òîâîì ÿùèêå. Ñîîáùåíèÿ, ïðèõîäÿùèå ïîçäíåå èìåþò áîëüøèé êîä UID, ÷åì ïîëó÷åííûå ðàíåå.

 îòëè÷èå îò ïîðÿäêîâîãî íîìåðà ñîîáùåíèÿ, óíèêàëüíûå èäåíòèôèêàòîðû íå îáðàçóþò óïîðÿäî÷åííîé ïîñëåäîâàòåëüíîñòè, íî îíè ðàáîòàþò è çà ïðåäåëàìè òåêóùåé ñåññèè. Ýòî ïîçâîëÿåò îñóùåñòâëÿòü ññûëêè íà ñîîáùåíèå â ñëó÷àå îáðûâà ñåññèè [IMAP-DISC].

UID àññîöèèðóåòñÿ ñ ïî÷òîâûì ÿùèêîì è ïîñûëàåòñÿ â âèäå êîäà uidvalidity îòêëèêà (ok) íà ôàçå âûáîðà ïî÷òîâîãî ÿùèêà. Åñëè UID èç ïðåäûäóùåé ñåññèè ïî êàêîé-òî ïðè÷èíå íå ìîæåò áûòü èñïîëüçîâàí, UID äîëæåí áûòü èíêðåìåíòèðîâàí.


UID äëÿ äàííîãî ïî÷òîâîãî ÿùèêà äîëæåí âñåãäà èçìåíÿòüñÿ ìîíîòîííî. Åñëè ïîðÿäîê çàïèñåé èçìåíåí âíå ðàìîê IMAP, íåîáõîäèìî ïåðåãåíåðèðîâàòü UID äëÿ äàííîãî ïî÷òîâîãî ÿùèêà, òàê êàê ïîðÿäîê ñòàðûõ çíà÷åíèé UID â ýòîì ñëó÷àå óæå íå áóäåò ìîíîòîííûì.

Åùå îäíîé ïðè÷èíîé íå ñîõðàíåíèÿ UID ìîæåò ñëóæèòü ñòèðàíèå ñòàðîãî è ñîçäàíèå íîâîãî ïî÷òîâîãî ÿùèêà ñ òåì æå èìåíåì. Òàê êàê èìÿ ïî÷òîâîãî ÿùèêà íå èçìåíèëîñü, êëèåíò ìîæåò íå çíàòü îá ýòîì è ïûòàòüñÿ èñïîëüçîâàòü ñòàðûå UID. Õîðîøèì çíà÷åíèåì UID ìîæíî ñ÷èòàòü 32-áèòíîå ïðåäñòàâëåíèå äàòû è âðåìåíè ñîçäàíèÿ ïî÷òîâîãî ÿùèêà. Âïîëíå ïðèåìëåìî è çíà÷åíèå 1, åñëè èìååòñÿ ãàðàíòèÿ, ÷òî ýòî çíà÷åíèå íèêîãäà íå áóäåò èñïîëüçîâàíî ïîâòîðíî, äàæå â ñëó÷àå ñòèðàíèÿ è ñîçäàíèÿ íîâîãî ïî÷òîâîãî ÿùèêà ñ òåì æå èìåíåì.

UID ñîîáùåíèÿ íå äîëæíî èçìåíÿòüñÿ â ïðåäåëàõ ñåññèè, åãî íå ñëåäóåò èçìåíÿòü è îò ñåññèè ê ñåññèè. Îäíàêî åñëè íåâîçìîæíî ñîõðàíèòü UID ñîîáùåíèÿ â ïîñëåäóþùåé ñåññèè, êàæäàÿ ñëåäóþùàÿ ñåññèÿ äîëæíà èìåòü íîâûé óíèêàëüíûé êîä èäåíòèôèêàòîðà, êîòîðûé áîëüøå ÷åì ëþáîé UID èñïîëüçîâàííûé ðàíåå.

Àòðèáóò ïîðÿäêîâîãî íîìåðà ñîîáùåíèÿ

Ýòîò àòðèáóò îïðåäåëÿåò ïîðÿäêîâûé íîìåð ñîîáùåíèÿ â ïî÷òîâîì ÿùèêå, íà÷èíàÿ ñ 1. Ïîñëåäóþùåå ñîîáùåíèå âñåãäà èìååò çíà÷åíèå ýòîãî àòðèáóòà íà 1 áîëüøåå, ÷åì ó ïðåäøåñòâóþùåãî.

Äîïóñêàåòñÿ èçìåíåíèå ïîðÿäêîâîãî íîìåðà ñîîáùåíèÿ íà ïðîòÿæåíèè ñåññèè. Íàïðèìåð, êîãäà ñîîáùåíèå óäàëÿåòñÿ èç ïî÷òîâîãî ÿùèêà, íîìåðà âñåõ ïîñëåäóþùèõ ñîîáùåíèé èçìåíÿþòñÿ. Àíàëîãè÷íî, íîâîìó ñîîáùåíèþ ìîæåò áûòü ïðèñâîåí íîìåð óäàëåííîãî ñîîáùåíèÿ.

Íîìåðà ñîîáùåíèé ìîãóò èñïîëüçîâàòüñÿ ïðè âû÷èñëåíèÿõ, êàñàþùèõñÿ óêàçàòåëåé. Íàïðèìåð, åñëè ñîîáùåíèå 287 â ïî÷òîâîì ÿùèêå, ñîäåðæàùåì 523 ñîîáùåíèÿ, èìååò UID 12345, èìååòñÿ 286 ñîîáùåíèé, èìåþùèõ ìåíüøåå çíà÷åíèå UID è 236 ñîîáùåíèé ñ áîëüøèìè UID.

Portable - Autodata Portable

Ýòîò àòðèáóò ïðåäñòàâëÿåò ñîáîé ñïèñîê èç íóëÿ èëè áîëåå èìåíîâàííûõ ëåêñåì, ñîîòíåñåííûé äàííîìó ñîîáùåíèþ. Ôëàã óñòàíàâëèâàåòñÿ ïóòåì åãî äîáàâëåíèÿ ê ýòîìó ñïèñêó è îáíóëÿåòñÿ ïóòåì åãî óäàëåíèÿ. Ñóùåñòâóåò äâà òèïà ôëàãîâ â IMAP 4.1. Ôëàã ìîæåò áûòü ïîñòîÿííûì èëè äåéñòâóþùèì òîëüêî íà âðåìÿ äàííîé ñåññèè.

Ñèñòåìíûì ôëàãîì ÿâëÿåòñÿ ôëàã, ÷üå èìÿ îïðåäåëåíî â äàííîé ñïåöèôèêàöèè. Âñå ñèñòåìíûå ôëàãè íà÷èíàþòñÿ ñ ñèìâîëà "\". Íåêîòîðûå ñèñòåìíûå ôëàãè (\deleted è \seen) èìåþò ñïåöèàëüíóþ ñåìàíòèêó, çàäàííóþ âíå ðàìîê äàííîãî äîêóìåíòà.  íàñòîÿùåå âðåìÿ îïðåäåëåíû ñëåäóþùèå ñèñòåìíûå ôëàãè:

\seen Ñîîáùåíèå ïðî÷èòàíî
\answered Íà ñîîáùåíèå ïîñëàí îòâåò
\flagged Ñîîáùåíèå "ïîìå÷åíî" êàê ñðî÷íîå, òðåáóþùåå îñîáîãî âíèìàíèÿ
\deleted Ñîîáùåíèå ïîìå÷åíî êàê ñòåðòîå äëÿ ïîñëåäóþùåãî óäàëåíèÿ ïîñðåäñòâîì expunge
\draft Ñîîáùåíèÿ íå ÿâëÿåòñÿ çàêîí÷åííûì (ïîìå÷åíî, êàê ïðîåêò).
\recent Ñîîáùåíèå òîëüêî ÷òî ïîëîæåíî â ïî÷òîâûé ÿùèê. Ýòà ñåññèÿ ÿâëÿåòñÿ ïåðâîé, ãäå ôèãóðèðóåò äàííîå ñîîáùåíèå; äëÿ ïîñëåäóþùèõ ñåññèé ýòî ñîîáùåíèå íå áóäåò èìåòü ôëàãà \recent. Ôëàã íå ìîæåò áûòü èçìåíåí êëèåíòîì.

Åñëè íåâîçìîæíî îïðåäåëèòü, ÿâëÿåòñÿ ëè ýòà ñåññèÿ ïåðâîé äëÿ äàííîãî ñîîáùåíèÿ, åãî ñëåäóåò ñ÷èòàòü îòíîñÿùèìñÿ ê òåêóùåé ñåññèè. Êëþ÷åâîå ñëîâî îïðåäåëÿåòñÿ ðåàëèçàöèåé ñåðâåðà. Êëþ÷åâûå ñëîâà íå íà÷èíàþòñÿ ñ ñèìâîëà "\". Ñåðâåðû ìîãóò ïîçâîëÿòü êëèåíòó ñîçäàâàòü íîâûå êëþ÷åâûå ñëîâà â ïî÷òîâîì ÿùèêå. Ïîñòîÿííûå ôëàãè êëèåíò ìîæåò óñòàíàâëèâàòü äëÿ äàííîãî ñîîáùåíèÿ èëè óäàëÿòü íà ïîñòîÿííîé îñíîâå; òàêèì îáðàçîì, ïîñëåäóþùàÿ ñåññèÿ ìîæåò âîñïîëüçîâàòüñÿ íîâûìè çíà÷åíèÿìè ôëàãîâ.


Ñèñòåìíûé ôëàã \recent èìååò ñòàòóñ ôëàãà ñåññèè. Ôëàã \recent íå ìîæåò èñïîëüçîâàòüñÿ â êà÷åñòâå àðãóìåíòà êîìàíäû store, è ïî ýòîé ïðè÷èíå íå ìîæåò áûòü èçìåíåí âîîáùå.

Âíóòðåííÿÿ äàòà è âðåìÿ ñîîáùåíèÿ íà ñåðâåðå. Ýòî íå òà äàòà è âðåìÿ, êîòîðûå óêàçàíû â çàãîëîâêå [RFC-822], à âðåìÿ è äàòà ïîëó÷åíèÿ ñîîáùåíèÿ.  ñëó÷àå äîñòàâêè ñîîáùåíèÿ ïîñðåäñòâîì ïðîòîêîëà [SMTP], ýòî äîëæíà áûòü äàòà è âðåìÿ äîñòàâêè êîíå÷íîìó àäðåñàòó.  ñëó÷àå ñîîáùåíèé, äîñòàâëåííûõ êîìàíäîé IMAP 4.1 copy, ýòî äîëæíû áûòü âíóòðåííÿÿ äàòà è âðåìÿ îòïðàâèòåëÿ ñîîáùåíèÿ.  ñëó÷àå äîñòàâêè ñîîáùåíèÿ êîìàíäîé IMAP 4.1 append, ýòî äîëæíà áûòü äàòà è âðåìÿ, çàäàííûå â îïèñàíèè êîìàíäû append.

Àòðèáóò ðàçìåðà ñîîáùåíèÿ îïðåäåëÿåò ÷èñëî îêòåòîâ â ñîîáùåíèè (ðàññìîòðåí â äîêóìåíòå [RFC-822]). Àòðèáóò ñòðóêòóðû êîíâåðòà ñîîáùåíèÿ ñîîòâåòñòâóåò òðåáîâàíèÿì äîêóìåíòà [RFC-822]. Àòðèáóò ñòðóêòóðû òåëà ñîîáùåíèÿ íåñåò â ñåáå èíôîðìàöèþ î ñòðóêòóðå ñîîáùåíèÿ â ñîîòâåòñòâèè ñ ðåãëàìåíòàöèÿìè [MIME-IMB]. Êðîìå äîñòàâêè òåêñòîâîãî ñîîáùåíèÿ, êàê ýòî îïèñàíî â RFC-822, IMAP 4.1 ïîçâîëÿåò îñóùåñòâëÿòü ïåðåäà÷ó ÷àñòè òåêñòà. Ìîæíî îòäåëüíî äîñòàâèòü çàãîëîâîê è òåëî ñîîáùåíèÿ èëè äàæå ÷àñòü òåëà ñîîáùåíèÿ.

Portable - Autodata Portable

Ñåðâåð IMAP 4.1 íàõîäèòñÿ â îäíîì èç ÷åòûðåõ ñîñòîÿíèé. Áîëüøèíñòâî êîìàíä äîïóñòèìî òîëüêî âî âïîëíå îïðåäåëåííûõ ñîñòîÿíèÿõ. Åñëè êëèåíò ïûòàåòñÿ ðåàëèçîâàòü êîìàíäó â íåïðàâèëüíîì ñîñòîÿíèè, ýòî ðàññìàòðèâàåòñÿ êàê ïðîòîêîëüíàÿ îøèáêà.  ýòîì ñëó÷àå ñåðâåð îòêëèêíåòñÿ êîìàíäîé bad èëè no â çàâèñèìîñòè îò ðåàëèçàöèè êîíêðåòíîé ïðîãðàììû.

 ñîñòîÿíèè áåç àóòåíòèôèêàöèè êëèåíò äîëæåí ïðåäîñòàâèòü èìÿ è ïàðîëü, ïðåæäå ÷åì ñòàíåò äîñòóïíî áîëüøèíñòâî êîìàíä. Ïåðåõîä â ýòî ñîñòîÿíèå ïðîèçâîäèòñÿ ïðè óñòàíîâëåíèè ñîåäèíåíèÿ, åñëè òîëüêî äëÿ äàííîãî ñîåäèíåíèÿ íå áûëà ïðîâåäåíà ïðåäâàðèòåëüíàÿ àóòåíòèôèêàöèÿ.

 ñîñòîÿíèè àóòåíòèôèêàöèè êëèåíò èäåíòèôèöèðîâàí è äîëæåí âûáðàòü ïî÷òîâûé ÿùèê, ïðåæäå ÷åì åìó ñòàíóò äîñòóïíû êîìàíäû äëÿ ðàáîòû ñ ñîîáùåíèÿìè. Ïåðåõîä â ýòî ñîñòîÿíèå ïðîèñõîäèò ïðè óñòàíîâëåíèè ñîåäèíåíèå ñ ïðåäâàðèòåëüíîé àóòåíòèôèêàöèåé, êîãäà âûäàíû âñå íåîáõîäèìûå èäåíòèôèêàöèîííûå äàííûå èëè ïðè îøèáî÷íîì âûáîðå ïî÷òîâîãî ÿùèêà.

 ñîñòîÿíèå âûáîðà ñèñòåìà ïîïàäàåò, êîãäà óñïåøíî îñóùåñòâëåí âûáîð ïî÷òîâîãî ÿùèêà.  ñîñòîÿíèå âûõîäà ñèñòåìà ïîïàäàåò ïðè ïðåðûâàíèè ñîåäèíåíèÿ â ðåçóëüòàòå çàïðîñà êëèåíòà èëè âñëåäñòâèå íåçàâèñèìîãî ðåøåíèÿ ñåðâåðà.


autodata portable

Ðèñ. 4.4.14.2.1. Ñõåìà ñîñòîÿíèé äëÿ ïðîòîêîëà IMAP

(1) Cîåäèíåíèå áåç ïðåäâàðèòåëüíîé àóòåíòèôèêàöèè (îòêëèê OK)
(2) Cîåäèíåíèå ñ ïðåäâàðèòåëüíîé àóòåíòèôèêàöèåé (îòêëèê PREAUTH)
(3) Ñîåäèíåíèå îòâåðãíóòî (îòêëèê BYE)
(4) Óñïåøíîå çàâåðøåíèå êîìàíäû LOGIN èëè AUTHENTICATE
(5) Óñïåøíîå çàâåðøåíèå êîìàíäû SELECT èëè EXAMINE
(6) Âûïîëíåíèå êîìàíäû CLOSE, èëè íåóäà÷íàÿ êîìàíäà SELECT èëè EXAMINE
(7) Âûïîëíåíèå êîìàíäû LOGOUT, çàêðûòèå ñåðâåðà, èëè ïðåðûâàíèå ñîåäèíåíèÿ

Portable - Autodata Portable

IMAP 4.1 èñïîëüçóåò òåêñòîâûå êîìàíäû è îòêëèêè. Äàííûå â IMAP 4.1 ìîãóò èìåòü îäíó èç ñëåäóþùèõ ôîðì: àòîì, ÷èñëî, ñòðîêà, ñïèñîê, çàêëþ÷åííûé â ñêîáêè èëè NIL.

Àòîì ñîñòîèò èç îäíîãî èëè áîëåå íåñïåöèàëèçèðîâàííûõ ñèìâîëîâ.

×èñëî ñîñòîèò èç îäíîé èëè áîëåå öèôð è õàðàêòåðèçóåò íåêîòîðîå ÷èñëîâîå çíà÷åíèå.

Ñòðîêà ìîæåò èìåòü îäíó èç äâóõ ôîðì: ëèòåðàë èëè ñòðîêà â êàâû÷êàõ. Ëèòåðàëüíàÿ ôîðìà ÿâëÿåòñÿ îñíîâíîé ôîðìîé ñòðîêè. Ñòðîêà â êàâû÷êàõ ÿâëÿåòñÿ àëüòåðíàòèâíîé ôîðìîé, èñêëþ÷àþùåé èçáûòî÷íîñòü ëèòåðàëüíîé ôîðìû çà ñ÷åò îãðàíè÷åíèé, íàëàãàåìûõ íà ñèìâîëû, èñïîëüçóåìûå â ñòðîêå.

Ëèòåðàë ïðåäñòàâëÿåò ñîáîé íóëü èëè áîëåå îêòåòîâ (âêëþ÷àÿ CR è LF). Ëèòåðàë íà÷èíàåòñÿ ñ îêòåòà, ãäå õðàíèòñÿ ÷èñëî ñèìâîëîâ. Ýòîò îêòåò çàêëþ÷àåòñÿ â ôèãóðíûå ñêîáêè, çà êîòîðûìè ñëåäóåò ïîñëåäîâàòåëüíîñòü CRLF.  ñëó÷àå ïåðåäà÷è ëèòåðàëîâ îò ñåðâåðà ê êëèåíòó çà CRLF ñëåäóþò íåïîñðåäñòâåííî äàííûå. Ïðè ïåðåäà÷å ëèòåðàëîâ îò êëèåíòà ñåðâåðó êëèåíò äîëæåí ïîäîæäàòü ïðèõîäà êîìàíäû ïðîäîëæåíèÿ, ïðåæäå ÷åì íà÷àòü ïåðåñûëêó äàííûõ.

Ñòðîêà â êàâû÷êàõ ïðåäñòàâëÿåò ñîáîé ïîñëåäîâàòåëüíîñòü èç íóëÿ èëè áîëåå 7-áèòîâûõ ñèìâîëîâ çà èñêëþ÷åíèåì CR è LF, íà÷èíàþùóþñÿ è çàâåðøàþùóþñÿ äâîéíîé êàâû÷êîé (<">). Ïóñòàÿ ñòðîêà ïðåäñòàâëÿåòñÿ êàê "" èëè êàê ëèòåðàë {0}, çà êîòîðûì ñëåäóåò ïîñëåäîâàòåëüíîñòü CRLF.

Çàìå÷àíèå: Äàæå åñëè ÷èñëî îêòåòîâ ðàâíî íóëþ, êëèåíò, ïåðåäàþùèé ëèòåðàë äîëæåí ïîäîæäàòü ïðèõîäà êîìàíäû ïðîäîëæåíèÿ.

Portable - Autodata Portable

8-áèòîâàÿ òåêñòîâàÿ è äâîè÷íàÿ ïî÷òà ïîääåðæèâàåòñÿ ïîñðåäñòâîì øèôðîâàíèÿ [MIME-IMB]. Ðåàëèçàöèè IMAP 4.1 ìîãóò ïåðåäàâàòü 8-áèòíûå èëè ìíîãîîêòåòíûå ñèìâîëû â ëèòåðàëàõ, íî äîëæíû ýòî äåëàòü, òîëüêî êîãäà îïðåäåëåí [CHARSET]. Åñëè äàæå îïðåäåëåíà êîäèðîâêà BINARY, íåçàêîäèðîâàííûå äâîè÷íûå ñòðîêè íå ìîãóò áûòü ðàçðåøåíû. "Äâîè÷íàÿ ñòðîêà" - ýòî ëþáàÿ ñòðîêà èç NUL ñèìâîëîâ. Ðåàëèçàöèè ïðîãðàìì äîëæíû ïåðåêîäèðîâàòü äâîè÷íûå äàííûå â òåêñòîâóþ ôîðìó, òàêóþ êàê BASE64, ïðåæäå ÷åì èõ ïåðåñûëàòü. Ñòðîêà ñ áîëüøèì ÷èñëîì ñèìâîëîâ CTL ìîæåò ðàññìàòðèâàòüñÿ êàê äâîè÷íàÿ.

Portable - Autodata Portable

Ñòðóêòóðû äàííûõ ïðåäñòàâëÿþòñÿ â âèäå ñïèñêîâ, ïîìåùåííûõ â ñêîáêè, ýëåìåíòû ñïèñêà ðàçäåëÿþòñÿ ïðîáåëàìè. Òàêîé ñïèñîê ìîæåò âêëþ÷àòü â ñåáÿ äðóãèå “ñïèñêè â ñêîáêàõ”. Ïóñòîé ñïèñîê âûãëÿäèò êàê () - “ñïèñîê â ñêîáêàõ” ñ íóëåâûì ÷èñëîì ÷ëåíîâ.

Portable - Autodata Portable

Ñïåöèàëüíûé àòîì "NIL" ïðåäñòàâëÿåò ñîáîé óêàçàíèå íà îòñóòñòâèå êàêèõ-òî îïðåäåëåííûõ äàííûõ òèïà ñòðîêà èëè “ñïèñîê â ñêîáêàõ”. Åãî ñëåäóåò îòëè÷àòü îò ïóñòîé ñòðîêè "" èëè ïóñòîãî “ñïèñêà â ñêîáêàõ” ().

Portable - Autodata Portable

Èíòåðïðåòàöèÿ èìåí ïî÷òîâûõ ÿùèêîâ ÿâëÿåòñÿ íåçàâèñèìîé îò êîíêðåòíîé ïðîãðàììíîé ðåàëèçàöèè. Îäíàêî èìÿ ïî÷òîâîãî ÿùèêà INBOX ÿâëÿåòñÿ ñïåöèàëüíûì èìåíåì, çàðåçåðâèðîâàííûì äëÿ "ïåðâè÷íîãî ïî÷òîâîãî ÿùèêà äàííîãî ïîëüçîâàòåëÿ íà äàííîì ñåðâåðå" (çíà÷åíèå íå çàâèñèò îò èñïîëüçîâàíèÿ ñòðî÷íûõ èëè ïðîïèñíûõ áóêâ). Ïî÷òîâûå ÿùèêè ìîãóò îáðàçîâûâàòü èåðàðõè÷åñêóþ ñòðóêòóðó. Åñëè æåëàòåëüíî ýêñïîðòèðîâàòü èåðàðõèþ èìåí ïî÷òîâûõ ÿùèêîâ, èìåíà ïî÷òîâûõ ÿùèêîâ äîëæíû áûòü óïîðÿäî÷åíû ïî áóêâàì ñëåâà íàïðàâî.

Portable - Autodata Portable

 ñîîòâåòñòâèè ñ ñîãëàøåíèåì ïåðâûé èåðàðõè÷åñêèé ýëåìåíò ëþáîãî èìåíè ïî÷òîâîãî ÿùèêà, êîòîðûé íà÷èíàåòñÿ ñ ñèìâîëà "#" óêàçûâàåò íà “ïðîñòðàíñòâî èìåí” îñòàëüíîé ÷àñòè èìåíè. Íàïðèìåð, ðåàëèçàöèè, êîòîðûå ïðåäëàãàþò äîñòóï ê ãðóïïàì íîâîñòåé USENET ìîãóò èñïîëüçîâàòü ïðîñòðàíñòâî èìåí "#news", äëÿ òîãî ÷òîáû îòäåëèòü ïðîñòðàíñòâî èìåí ãðóïï íîâîñòåé îò èìåí äðóãèõ ïî÷òîâûõ ÿùèêîâ. Òàêèì îáðàçîì, ãðóïïà íîâîñòåé comp.mail.misc áóäåò èìåòü èìÿ ïî÷òîâîãî ÿùèêà "#news.comp.mail.misc", à èìÿ "comp.mail.misc" ìîæåò îòíîñèòüñÿ ê äðóãîìó îáúåêòó (íàïð., ê ïî÷òîâîìó ÿùèêó ïîëüçîâàòåëÿ).

Portable - Autodata Portable

Ñîãëàñíî äîãîâîðåííîñòè èìåíà ìåæäóíàðîäíûõ ïî÷òîâûõ ÿùèêîâ ñïåöèôèöèðîâàíû â ñîîòâåòñòâèè ìîäèôèöèðîâàííîé âåðñèåé êîäèðîâêè UTF-7, îïèñàííîé â [UTF-7]. Öåëüþ ýòèõ ìîäèôèêàöèé áûëî óñòðàíåíèå ñëåäóþùèõ ïðîáëåì, ñâÿçàííûõ ñ UTF-7:

  1. UTF-7 èñïîëüçóåò ñèìâîë "+" äëÿ ñìåùåíèÿ; ýòî âûçûâàåò êîíôëèêò ñ îáû÷íûì ïðèìåíåíèåì "+" â èìåíàõ ïî÷òîâûõ ÿùèêîâ, â ÷àñòíîñòè â èìåíàõ ãðóïï íîâîñòåé USENET.
  2. Êîäèðîâêà UTF-7 áàçèðóåòñÿ íà BASE64, ãäå èñïîëüçóåòñÿ ñèìâîë "/", ÷òî âñòóïàåò â êîíôëèêò ñ ïðèìåíåíèåì "/" â êà÷åñòâå ïîïóëÿðíîãî èåðàðõè÷åñêîãî ðàçäåëèòåëÿ.
  3. UTF-7 çàïðåùàåò èñïîëüçîâàíèå "\"; ÷òî ïðîòèâîðå÷èò ïðèìåíåíèþ "\" â êà÷åñòâå ïîïóëÿðíîãî ðàçäåëèòåëÿ.
  4. UTF-7 çàïðåùàåò èñïîëüçîâàíèå "~", ýòî âñòóïàåò â êîíôëèêò ñ òåì, ÷òî íåêîòîðûå ñåðâåðû ðàññìàòðèâàþò ýòîò ñèìâîë, êàê óêàçàòåëü íà áàçîâûé êàòàëîã (home).
  5. UTF-7 äîïóñêàåò ðàçíîîáðàçíûå ôîðìû ïðåäñòàâëåíèÿ îäíèõ è òåõ æå ñòðîê, â ÷àñòíîñòè, ïå÷àòíûå ñèìâîëû US-ASCII ìîãóò èñïîëüçîâàòüñÿ â çàêîäèðîâàííîé ôîðìå.

 ìîäèôèöèðîâàííîì UTF-7, ïå÷àòíûå ñèìâîëû US-ASCII çà èñêëþ÷åíèåì "&" ïðåäñòàâëÿþòñÿ â èñõîäíîì âèäå; òî åñòü, ñèìâîëàìè ñî çíà÷åíèÿìè îêòåòîâ 0x20-0x25 è 0x27-0x7e. Ñèìâîë "&" (0x26) ïðåäñòàâëÿåòñÿ â âèäå äâóõ îêòåòíîé ïîñëåäîâàòåëüíîñòè "&-". Âñå äðóãèå ñèìâîëû (çíà÷åíèÿ îêòåòîâ 0x00-0x1f, 0x7f-0xff, è âñå óíèêîäíûå 16-áèòîâûå îêòåòû) ïðåäñòàâëÿþòñÿ â ìîäèôèöèðîâàííîé êîäèðîâêå BASE64, ñ äîïîëíèòåëüíûìè âèäîèçìåíåíèÿìè èç [UTF-7]. Ìîäèôèöèðîâàííàÿ BASE64 íå äîëæíà èñïîëüçîâàòüñÿ äëÿ ïðåäñòàâëåíèÿ ëþáûõ ïå÷àòíûõ ñèìâîëîâ US-ASCII, êîòîðûå äîëæíû ïðåäñòàâëÿòü ñàìèõ ñåáÿ.

Ñèìâîë "&" èñïîëüçóåòñÿ äëÿ ïåðåõîäà ê ìîäèôèöèðîâàííîé êîäèðîâêå BASE64 à "-" äëÿ âîçâðàòà íàçàä ê US-ASCII. Âñå èìåíà íà÷èíàþòñÿ ñ US-ASCII, è äîëæíû çàâåðøàòüñÿ US-ASCII (òî åñòü, èìÿ, êîòîðîå çàêàí÷èâàåòñÿ óíèêîäíûì 16-áèòîâûì îêòåòîì, äîëæíî áûòü çàâåðøåíî ñèìâîëîì "-"). Ïðèìåðîì ìîæåò ñëóæèòü èìÿ ïî÷òîâîãî ÿùèêà, â êîòîðîì ñìåøàíû ôðàãìåíòû òåêñòà íà àíãëèéñêîì, ÿïîíñêîì è êèòàéñêîì ÿçûêàõ: ~peter/mail/&ZeVnLIqe-/&U,BTFw-

Portable - Autodata Portable

 ëþáîå âðåìÿ ñåðâåð ìîæåò ïîñëàòü äàííûå, êîòîðûå êëèåíò íå çàïðàøèâàë. Èíîãäà, òàêîå ïîâåäåíèå ñèñòåìû ÿâëÿåòñÿ íåîáõîäèìûì. Íàïðèìåð, àãåíòû, âíåøíèå ïî îòíîøåíèþ ê ñåðâåðó, ìîãóò ïîëîæèòü ñîîáùåíèÿ â ïî÷òîâûé ÿùèê, èçìåíèòü ôëàãè ñîîáùåíèÿ â ïî÷òîâîì ÿùèêå (íàïðèìåð, îäíîâðåìåííûé äîñòóï â ïî÷òîâûé ÿùèê íåñêîëüêèõ àãåíòîâ), èëè äàæå óäàëèòü ñîîáùåíèÿ èç ïî÷òîâîãî ÿùèêà. Ñåðâåð äîëæåí àâòîìàòè÷åñêè ïîñëàòü óâåäîìëåíèå îá èçìåíåíèè ðàçìåðà ïî÷òîâîãî ÿùèêà, åñëè òàêîå èçìåíåíèå ïðîèçîøëî â ïðîöåññå âûïîëíåíèÿ êîìàíäû. Ñåðâåð äîëæåí àâòîìàòè÷åñêè ïîñëàòü óâåäîìëåíèå îá èçìåíåíèè ôëàãîâ ñîîáùåíèé, íå òðåáóÿ ñîîòâåòñòâóþùåãî çàïðîñà êëèåíòà. Èìåþòñÿ ñïåöèàëüíûå ïðàâèëà äëÿ îïîâåùåíèÿ êëèåíòà ñåðâåðîì îá óäàëåíèè ñîîáùåíèé, ÷òîáû èçáåæàòü îøèáîê ñèíõðîíèçàöèè (ñìîòðè òàêæå îïèñàíèå EXPUNGE). Ïðîãðàììà êëèåíòà äîëæíà ñâîåâðåìåííî ôèêñèðîâàòü èçìåíåíèÿ ðàçìåðà ïî÷òîâîãî ÿùèêà. Îíà íå äîëæíà ïîëàãàòüñÿ íà òî, ÷òî ëþáàÿ êîìàíäà ïîñëå íà÷àëüíîãî âûáîðà ïî÷òîâîãî ÿùèêà âîçâðàùàåò çíà÷åíèå åãî ðàçìåðà.

Portable - Autodata Portable

Ðåàëèçàöèÿì ñåðâåðà ðàçðåøàåòñÿ ïîñûëàòü íåïîìå÷åííûå îòêëèêè (çà èñêëþ÷åíèåì EXPUNGE), åñëè â ýòî âðåìÿ íå âûïîëíÿåòñÿ íè îäíîé êîìàíäû. Ðåàëèçàöèè, êîòîðûå ïîñûëàþò òàêèå îòêëèêè, äîëæíû ó÷èòûâàòü ñîîáðàæåíèÿ óïðàâëåíèÿ òðàôèêîì.  ÷àñòíîñòè, îíè äîëæíû ëèáî (1) ïðîâåðèòü, ÷òî ðàçìåð äàííûõ íå ïðåâîñõîäèò òðàíñïîðòíûå âîçìîæíîñòè, èëè (2) èñïîëüçîâàòü íåáëîêèðóþùóþ çàïèñü.

Portable - Autodata Portable

Åñëè ñåðâåð èìååò òàéìåð âûãðóçêè â ñëó÷àå äëèòåëüíîé ïàññèâíîñòè, òîãäà òàêîé òàéìåð äîëæåí áûòü íàñòðîåí íà âðåìÿ, ïî êðàéíåé ìåðå, 30 ìèíóò. Ïîëó÷åíèÿ ëþáîé êîìàíäû îò êëèåíòà â òå÷åíèå ýòîãî ïåðèîäà äîëæíî áûòü äîñòàòî÷íî äëÿ ñáðîñà ýòîãî òàéìåðà.

Portable - Autodata Portable

Êëèåíò ìîæåò ïîñëàòü äðóãóþ êîìàíäó, íå äîæèäàÿñü îòêëèêà íà ïðåäøåñòâóþùóþ, ñåðâåð ìîæåò íà÷àòü îáðàáîòêó äðóãîé êîìàíäû äî çàâåðøåíèÿ îáðàáîòêè òåêóùåé.

Èñêëþ÷åíèå ìîæåò ñîñòàâëÿòü ñëó÷àè, êîãäà ðåçóëüòàò âûïîëíåíèÿ îäíîé êîìàíäû çàâèñèò îò âûïîëíåíèÿ äðóãèõ êîìàíä. Êëèåíòû íå äîëæíû ïîñûëàòü íåñêîëüêî êîìàíä, íå äîæèäàÿñü ðåçóëüòàòà, åñëè âîçìîæíà íåîïðåäåëåííîñòü èç-çà èõ âçàèìîçàâèñèìîñòè. Åñëè ñåðâåð äåòåêòèðóåò âîçìîæíóþ íåîïðåäåëåííîñòü, îí äîëæåí èñïîëíèòü èõ ïîñëåäîâàòåëüíî â ïîðÿäêå èõ ïîëó÷åíèÿ îò êëèåíòà.

Íàèáîëåå î÷åâèäíûé ïðèìåð íåîïðåäåëåííîñòè ðåàëèçóåòñÿ, íàïðèìåð, êîãäà ïîñëåäîâàòåëüíî âûïîëíÿþòñÿ êîìàíäû FETCH äëÿ ôëàãîâ ñîîáùåíèÿ è STORE äëÿ òåõ æå ñàìûõ ôëàãîâ.

Íåî÷åâèäíûå íåîïðåäåëåííîñòè âîçíèêàþò ñ êîìàíäàìè, êîòîðûå äîïóñêàþò íåìàðêèðîâàííûé îòêëèê EXPUNGE (êîìàíäû îòëè÷íûå îò FETCH, STORE è SEARCH), òàê êàê íåìàðêèðîâàííûé îòêëèê EXPUNGE ìîæåò íàðóøèòü êîððåêòíîñòü ïîðÿäêîâûõ íîìåðîâ ñîîáùåíèé äëÿ ïîñëåäóþùèõ êîìàíä. Ýòî íå ïðåäñòàâëÿåò ïðîáëåì äëÿ êîìàíä FETCH, STORE èëè SEARCH, òàê êàê ñåðâåðàì çàïðåùåíî ïîñûëàòü îòêëèêè EXPUNGE, êîãäà èñïîëíÿåòñÿ îäíà èõ ýòèõ êîìàíä. Ñëåäîâàòåëüíî, åñëè êëèåíò ïîñûëàåò ëþáóþ êîìàíäó, îòëè÷íóþ îò FETCH, STORE èëè SEARCH, îí äîëæåí æäàòü îòêëèêà, ïðåæäå ÷åì ïîñûëàòü êîìàíäó, ñîäåðæàùóþ íîìåð ñîîáùåíèÿ. Íàïðèìåð, ñëåäóþùàÿ ïîñëåäîâàòåëüíîñòü êîìàíä (áåç îæèäàíèÿ) ÿâëÿåòñÿ íåêîððåêòíîé:

FETCH + NOOP + STORE
STORE + COPY + FETCH
COPY + COPY
CHECK + FETCH

Íèæå ïðåäñòàâëåíû ïðèìåðû ïîñëåäîâàòåëüíîñòåé, íå òðåáóþùèõ îæèäàíèÿ çàâåðøåíèÿ ïðåäøåñòâóþùèõ èíñòðóêöèé:

FETCH + STORE + SEARCH + CHECK
STORE + COPY + EXPUNGE

Portable - Autodata Portable

Íèæå îïèñàíû êîìàíäû IMAP 4.1. Êîìàíäû ðàññìàòðèâàþòñÿ ñ ó÷åòîì ñîñòîÿíèÿ, â êîòîðîì îíè äîïóñòèìû.

Portable - Autodata Portable

Ñëåäóþùèå êîìàíäû ìîãóò èñïîëüçîâàòüñÿ â ëþáîì ñîñòîÿíèè: CAPABILITY, NOOP è LOGOUT.

5.1.1. Êîìàíäà CAPABILITY

Àðãóìåíòû: îòñóòñòâóþò.
Îòêëèêè: Íåîáõîäèì íåìàðêèðîâàííûé îòêëèê: CAPABILITY.
Ðåçóëüòàò: OK - óñïåøíîå çàâåðøåíèå êîìàíäû;
BAD - êîìàíäà íåèçâåñòíà èëè íåâåðíûé àðãóìåíò<./p>

Êîìàíäà CAPABILITY çàïðàøèâàåò ïåðå÷åíü âîçìîæíîñòåé, ïîääåðæèâàåìûõ ñåðâåðîì. Ñåðâåð äîëæåí ïîñëàòü îäèí íåìàðêèðîâàííûé îòêëèê CAPABILITY ñ "IMAP 4.1" â ñïèñêå âîçìîæíîñòåé, ïðåæäå ÷åì îòïðàâëÿòü ìàðêèðîâàííûé îòêëèê OK. Ýòîò ñïèñîê íå çàâèñèò îò ñîñòîÿíèÿ ñîåäèíåíèÿ èëè ïîëüçîâàòåëÿ. Ñëåäîâàòåëüíî, íåò íåîáõîäèìîñòè íàïðàâëÿòü êîìàíäó CAPABILITY áîëåå îäíîãî ðàçà íà ñîåäèíåíèå. Íàçâàíèå âîçìîæíîñòè, êîòîðàÿ íà÷èíàåòñÿ ñ "AUTH=" óêàçûâàåò, ÷òî ñåðâåð ïîääåðæèâàåò îïðåäåëåííûé ìåõàíèçì àóòåíòèôèêàöèè. Âñå òàêèå èìåíà ïî îïðåäåëåíèþ ÿâëÿþòñÿ ÷àñòüþ äàííîé ñïåöèôèêàöèè. Íàïðèìåð, àóòåíòèôèêàöèîííûå âîçìîæíîñòè äëÿ ýêñïåðèìåíòàëüíîãî àóòåíòèôèêàòîðà "blurdybloop" ìîãóò áûòü îïèñàíû êàê "AUTH=XBLURDYBLOOP", à íå "XAUTH=BLURDYBLOOP" èëè "XAUTH=XBLURDYBLOOP".

Äðóãèå èìåíà âîçìîæíîñòåé îòíîñÿòñÿ ê ðàñøèðåíèÿì, íîâûì âåðñèÿì èëè êîððåêöèÿì äàííîé ñïåöèôèêàöèè.

Ïðèìåð: C: abcd CAPABILITY
S: * CAPABILITY IMAP 4.1 AUTH=KERBEROS_V4
S: abcd OK CAPABILITY completed

5.1.2. Êîìàíäà NOOP

Àðãóìåíòû: îòñóòñòâóþò.
Îòêëèêè: íèêàêîãî ñïåöèàëüíîãî îòêëèêà íà ýòó êîìàíäó íå òðåáóåòñÿ.
Ðåçóëüòàò: OK - êîìàíäà óñïåøíî çàâåðøåíà;
BAD - êîìàíäà íåèçâåñòíà èëè íåâåðåí àðãóìåíò;
Êîìàíäà NOOP íè÷åãî íå äåëàåò è âñåãäà óñïåøíî çàâåðøàåòñÿ.

Òàê êàê ëþáàÿ êîìàíäà ìîæåò ïðèñëàòü íåìàðêèðîâàííûå äàííûå îá èçìåíåíèè ñîñòîÿíèÿ, êîìàíäà NOOP ìîæåò èñïîëüçîâàòüñÿ, êàê ïåðèîäè÷åñêèé çàïðîñ íîâîãî ñîîáùåíèÿ èëè èíôîðìàöèè îá èçìåíåíèè ñòàòóñà â ïåðèîäû íåàêòèâíîñòè. Êîìàíäà NOOP ìîæåò òàêæå èñïîëüçîâàòüñÿ äëÿ ñáðîñà òàéìåðà ïðåðûâàíèÿ ñåññèè ñåðâåðîì èç-çà îòñóòñòâèÿ àêòèâíîñòè.

Ïðèìåð: C: a002 NOOP
S: a002 OK NOOP completed
. . .
C: a047 NOOP
S: * 22 EXPUNGE
S: * 23 EXISTS
S: * 3 RECENT
S: * 14 FETCH (FLAGS (\Seen \Deleted))
S: a047 OK NOOP completed

5.1.3. Êîìàíäà LOGOUT

Àðãóìåíòû: îòñóòñòâóþò.
Îòêëèêè: íåîáõîäèì íåìàðêèðîâàííûé îòêëèê BYE.
Ðåçóëüòàò: OK - ïðåðûâàíèå ñåññèè çàâåðøåíî;
BAD - íåèçâåñòíàÿ êîìàíäà èëè íåâåðíûé àðãóìåíò.

Êîìàíäà LOGOUT èíôîðìèðóåò ñåðâåð î òîì, ÷òî êëèåíò ïðåðûâàåò ñîåäèíåíèå. Ñåðâåð äîëæåí ïîñëàòü íåìàðêèðîâàííûé îòêëèê BYE, ïðåæäå ÷åì îòñûëàòü ìàðêèðîâàííûé îòêëèê OK, ïîñëå ÷åãî çàâåðøèòü ðàçðûâ ñîåäèíåíèÿ.

Ïðèìåð: C: A023 LOGOUT
S: * BYE IMAP 4.1 Server logging out
S: A023 OK LOGOUT completed
(Ñåðâåð è êëèåíò ðàçîðâàëè ñîåäèíåíèå)

Portable - Autodata Portable

 ñîñòîÿíèè áåç àóòåíòèôèêàöèè, êîìàíäû AUTHENTICATE èëè LOGIN îðãàíèçóþò àóòåíòèôèêàöèþ è ïåðåâîäÿò ñèñòåìó â ñîñòîÿíèå ñ àóòåíòèôèêàöèåé. Îá àóòåíòèôèêàöèè â IMAP ìîæíî ïðî÷åñòü â äîêóìåíòå RFC-1731. Êîìàíäà AUTHENTICATE ïðåäîñòàâëÿåò îáùèé ìåõàíèçì äëÿ öåëîãî ðÿäà ìåòîäîâ àóòåíòèôèêàöèè, ñðåäè êîòîðûõ êîìàíäà LOGIN èñïîëüçóåòñÿ äëÿ òðàäèöèîííîãî ââîäà èìåíè è ïàðîëÿ â òåêñòîâîì âèäå.

Ðàçëè÷íûå ðåàëèçàöèè ñåðâåðà ìîãóò ïîçâîëÿòü äîñòóï áåç àóòåíòèôèêàöèè ê íåêîòîðûì ïî÷òîâûì ÿùèêàì. Ïî äîãîâîðåííîñòè â ýòîì ñëó÷àå êîìàíäà LOGIN ïðåäïîëàãàåò ââîä èìåíè "anonymous". Ââîä ïàðîëÿ âñåãäà îáÿçàòåëåí. Òðåáîâàíèÿ íà ïàðîëü îïðåäåëÿþòñÿ êîíêðåòíîé âåðñèåé ïðîãðàììíîé ðåàëèçàöèè.

Ïî çàâåðøåíèè àóòåíòèôèêàöèè íåâîçìîæíî âåðíóòüñÿ íåïîñðåäñòâåííî â ñîñòîÿíèå “áåç àóòåíòèôèêàöèè”. Â äîïîëíåíèå ê óíèâåðñàëüíûì êîìàíäàì (CAPABILITY, NOOP è LOGOUT), â ñîñòîÿíèè “áåç àóòåíòèôèêàöèè” âîçìîæíû êîìàíäû: AUTHENTICATE è LOGIN.

5.2.1. Êîìàíäà AUTHENTICATE

Àðãóìåíòû: èìÿ ìåõàíèçìà àóòåíòèôèêàöèè.
Îòêëèêè: ìîæåò áûòü çàïðîøåíà äîïîëíèòåëüíàÿ èíôîðìàöèÿ.

Ðåçóëüòàò OK Àóòåíòèôèêàöèÿ çàâåðøåíà, îñóùåñòâëåí ïåðåõîä â ñîñòîÿíèå "àóòåíòèôèêàöèÿ âûïîëíåíà";
NO Îøèáêà àóòåíòèôèêàöèè: íåïîääåðæèâàåìûé ìåõàíèçì àóòåíòèôèêàöèè, ïàðàìåòðû àóòåíòèôèêàöèè îòâåðãíóòû;
BAD Íåèçâåñòíàÿ êîìàíäà èëè íåâåðíûé àðãóìåíò, ìåõàíèçì àóòåíòèôèêàöèè ïðåðâàí.

Êîìàíäà AUTHENTICATE óêàçûâàåò ñåðâåðó íà ìåõàíèçì àóòåíòèôèêàöèè, êàê ýòî îïèñàíî â [IMAP-AUTH]. Åñëè ñåðâåð ïîääåðæèâàåò çàïðîøåííûé ìåõàíèçì àóòåíòèôèêàöèè, îí âûïîëíÿåò îáìåí ñîãëàñíî àóòåíòèôèêàöèîííîìó ïðîòîêîëó è èäåíòèôèöèðóåò êëèåíòà. Îí ìîæåò òàêæå ñîãëàñîâàòü îïöèîííûé ìåõàíèçì çàùèòû äëÿ ïîñëåäóþùèõ ïðîòîêîëîâ âçàèìîäåéñòâèÿ. Åñëè çàïðîøåííûé ìåõàíèçì àóòåíòèôèêàöèè íå ïîääåðæèâàåòñÿ, ñåðâåð äîëæåí îòâåðãíóòü êîìàíäó AUTHENTICATE ïóòåì ïîñûëêè ìàðêèðîâàííîãî îòêëèêà NO.

Ïðîòîêîë àóòåíòèôèêàöèîííîãî îáìåíà ñîñòîèò èç ïîñëåäîâàòåëüíîñòè çàïðîñîâ ñåðâåðà è ñîîòâåòñòâóþùèõ îòâåòîâ êëèåíòà. Çàïðîñ ñåðâåðà ñîñòîèò èç îòêëèêà-çàïðîñà ïðîäîëæåíèÿ ñ ñèìâîëîì "+", çà êîòîðûì ñëåäóåò ñòðîêà êîäîâ BASE64. Îòâåò êëèåíòà ñîñòîèò èç ñòðîêè, ñîäåðæàùåé êîäû BASE64. Åñëè êëèåíò õî÷åò àííóëèðîâàòü àóòåíòèôèêàöèîííûé îáìåí, îí âûäàåò ñòðîêó, ñîäåðæàùóþ òîëüêî "*". Åñëè ñåðâåð ïîëó÷àåò òàêîé îòâåò, îí äîëæåí îòêëîíèòü êîìàíäó AUTHENTICATE, ïîñëàâ ìàðêèðîâàííûé îòêëèê BAD.

Ìåõàíèçì çàùèòû îáåñïå÷èâàåò öåëîñòíîñòü è êîíôèäåíöèàëüíîñòü ñîåäèíåíèÿ. Åñëè ìåõàíèçì çàùèòû ñîãëàñîâûâàí, òî â äàëüíåéøåì îí èñïîëüçóåòñÿ äëÿ âñåõ ñîîáùåíèé, ïðîõîäÿùèõ ÷åðåç äàííîå ñîåäèíåíèå. Ìåõàíèçì çàùèòû íà÷èíàåò äåéñòâîâàòü ñðàçó ïîñëå ââîäà ïîñëåäîâàòåëüíîñòè CRLF, êîòîðàÿ çàâåðøàåò àóòåíòèôèêàöèîííûé îáìåí äëÿ êëèåíòà, è ïðèõîäà CRLF ìàðêèðîâàííîãî îòêëèêà OK ñåðâåðà. Ðàç ìåõàíèçì çàùèòû âñòóïèë â ñèëó, ïîòîê îêòåòîâ êîìàíä è îòêëèêîâ çàíîñèòñÿ â áóôåðû øèôðîâàííîãî òåêñòà. Êàæäûé áóôåð ïåðåäàåòñÿ ÷åðåç ñîåäèíåíèå â âèäå ïîòîêà îêòåòîâ, êîòîðûé íà÷èíàåòñÿ ñ ÷åòûðåõ îêòåòîâ, ñîäåðæàùèõ äëèíó ïîñëåäóþùèõ äàííûõ. Ìàêñèìàëüíûé ðàçìåð áóôåðà äëÿ òåêñòà-øèôðà îïðåäåëÿåòñÿ âûáðàííûì ìåõàíèçìîì çàùèòû.

Àóòåíòèôèêàöèîííûå ìåõàíèçìû ÿâëÿþòñÿ îïöèîííûìè. Ìåõàíèçìû çàùèòû òàêæå îïöèîííû; àóòåíòèôèêàöèîííûé ìåõàíèçì ìîæåò ðåàëèçîâàòüñÿ â îòñóòñòâèè êàêîãî-ëèáî ìåõàíèçìà çàùèòû. Åñëè êîìàíäà AUTHENTICATE íå ïðîøëà è ïîëó÷åí îòêëèê NO, êëèåíò ìîæåò ñîâåðøèòü ïîâòîðíóþ ïîïûòêó, ïîñëàâ åùå îäíó êîìàíäó AUTHENTICATE, èëè ìîæåò ïîïûòàòüñÿ âûïîëíèòü àóòåíòèôèêàöèþ ñ ïîìîùüþ êîìàíäû LOGIN. Äðóãèìè ñëîâàìè, êëèåíò ìîæåò çàòðåáîâàòü òèï àóòåíòèôèêàöèè â ïîðÿäêå ïîíèæåíèÿ óðîâíÿ ïðåäïî÷òåíèÿ, êîìàíäà LOGIN èñïîëüçóåòñÿ êàê ïîñëåäíèé âàðèàíò.

Ïðèìåð: S: * OK KerberosV4 IMAP4rev1 Server
C: A001 AUTHENTICATE KERBEROS_V4
S: + AmFYig==
C: BAcAQU5EUkVXLkNNVS5FRFUAOCAsho84kLN3/IJmrMG+25a4DT
+nZImJjnTNHJUtxAA+o0KPKfHEcAFs9a3CL5Oebe/ydHJUwYFd
WwuQ1MWiy6IesKvjL5rL9WjXUb9MwT9bpObYLGOKi1Qh
S: + or//EoAADZI=
C: DiAF5A4gA+oOIALuBkAAmw==
S: A001 OK Kerberos V4 authentication successful

5.2.2. Êîìàíäà LOGIN

Àðãóìåíòû: èìÿ ïîëüçîâàòåëÿ, ïàðîëü.
Îòêëèêè: êîìàíäà íå òðåáóåò êàêîãî-ëèáî ñïåöèàëüíîãî îòêëèêà.
Ðåçóëüòàò: OK - login çàâåðøåíî, ñèñòåìà â ñîñòîÿíèè ñ àóòåíòèôèêàöèåé;
NO - login íå ïðîøëà: èìÿ ïîëüçîâàòåëÿ èëè ïàðîëü îòâåðãíóòû;
BAD - êîìàíäà íåèçâåñòíà èëè íåâåðíûé àðãóìåíò.

Êîìàíäà LOGIN èäåíòèôèöèðóåò êëèåíòà ñåðâåðó è ïåðåäàåò ïàðîëü ïîëüçîâàòåëÿ îòêðûòûì òåêñòîì.

Ïðèìåð: C: a001 LOGIN SMITH SESAME
S: a001 OK LOGIN completed

Portable - Autodata Portable

 ñîñòîÿíèè "àóòåíòèôèêàöèÿ îñóùåñòâëåíà" ðàçðåøåíû êîìàíäû ìàíèïóëÿöèè ïî÷òîâûìè ÿùèêàìè, êàê îáúåêòàìè-àòîìàìè. Êîìàíäû SELECT è EXAMINE ðåàëèçóåò âûáîð ïî÷òîâîãî ÿùèêà è ïåðåõîä â ñîñòîÿíèå "âûáðàíî" .

 äîáàâëåíèå ê ñòàíäàðòíûì êîìàíäàì (CAPABILITY, NOOP è LOGOUT), â ñîñòîÿíèè "àóòåíòèôèêàöèÿ îñóùåñòâëåíà" äîïóñòèìû ñëåäóþùèå êîìàíäû: SELECT, EXAMINE, CREATE, DELETE, RENAME, SUBSCRIBE, UNSUBSCRIBE, LIST, LSUB, STATUS è APPEND.

5.3.1. Êîìàíäà SELECT

Àðãóìåíòû: èìÿ ïî÷òîâîãî ÿùèêà.
Îòêëèêè: íåîáõîäèìû íåìàðêèðîâàííûå îòêëèêè: FLAGS, EXISTS, RECENT;
îïöèîííû íåìàðêèðîâàííûå îòêëèêè OK: UNSEEN, PERMANENTFLAGS.

Ðåçóëüòàò: OK - ïðîöåäóðà âûáîðà çàêîí÷åíà, ñèñòåìà íàõîäèòñÿ â ñîñòîÿíèè "âûáðàíî";
NO - âûáîð íåóäà÷åí: íåò òàêîãî ÿùèêà, äîñòóï ê ïî÷òîâîìó ÿùèêó íåâîçìîæåí;
BAD - êîìàíäà íåèçâåñòíà èëè íåâåðåí àðãóìåíò.

Êîìàíäà SELECT îñóùåñòâëÿåò âûáîð ïî÷òîâîãî ÿùèêà, òàê ÷òîáû îáåñïå÷èòü äîñòóï ê ñîîáùåíèÿì, íàõîäÿùèìñÿ òàì. Ïðåæäå ÷åì ïðèñûëàòü êëèåíòó OK, ñåðâåð äîëæåí ïîñëàòü êëèåíòó ñëåäóþùèå íåìàðêèðîâàííûå äàííûå:

FLAGS - ôëàãè, îïðåäåëåííûå äëÿ ïî÷òîâîãî ÿùèêà.
<n> EXISTS ×èñëî ñîîáùåíèé â ïî÷òîâîì ÿùèêå.
<n> RECENT ×èñëî ñîîáùåíèé ñ íàáîðîì ôëàãîâ \Recent.
OK [UIDVALIDITY <n> ] Óíèêàëüíûé èäåíòèôèêàòîð êîððåêòíîñòè.

Ñåðâåð äîëæåí òàêæå ïîñëàòü "íåâèäèìûé" êîä îòêëèêà âíóòðè íåìàðêèðîâàííîãî ñîîáùåíèÿ OK, êîòîðûé ïðåäñòàâëÿåò ñîáîé ïîðÿäêîâûé íîìåð ïåðâîãî íåâèäèìîãî ñîîáùåíèÿ â ïî÷òîâîì ÿùèêå.

Åñëè êëèåíò íå ìîæåò èçìåíèòü ñîñòîÿíèå îäíîãî èëè íåñêîëüêèõ ôëàãîâ, ïåðå÷èñëåííûõ â íåìàðêèðîâàííîì îòêëèêå FLAGS, ñåðâåð äîëæåí â íåìàðêèðîâàííîì îòêëèêå OK ïîñëàòü êîä PERMANENTFLAGS, ïåðå÷èñëèâ ôëàãè, êîòîðûå êëèåíò ìîæåò èçìåíèòü.

Åäèíîâðåìåííî äëÿ îäíîãî ñîåäèíåíèÿ ìîæåò áûòü âûáðàí òîëüêî îäèí ïî÷òîâûé ÿùèê. Îäíîâðåìåííûé äîñòóï ê íåñêîëüêèì ïî÷òîâûì ÿùèêàì òðåáóåò óñòàíîâëåíèÿ ñîîòâåòñòâóþùåãî ÷èñëà ñîåäèíåíèé. Êîìàíäà SELECT àâòîìàòè÷åñêè àííóëèðóåò âûáîð ïî÷òîâîãî ÿùèêà ïðè ïîâòîðíîé ïîïûòêå åãî âûáîðà. Ñëåäîâàòåëüíî, åñëè ïî÷òîâûé ÿùèê áûë âûáðàí, à êîìàíäà SELECT íå ïðîøëà, ïðåäøåñòâóþùèé âûáîð ÿùèêà àííóëèðîâàí. Åñëè êëèåíòó ðàçðåøåíî ìîäèôèöèðîâàòü ïî÷òîâûé ÿùèê, ñåðâåð äîëæåí ñíàáæàòü ìàðêèðîâàííûé òåêñò îòêëèêà OK ïðåôèêñîì "[READ-WRITE]".

Åñëè êëèåíòó íå ïîçâîëåíî ìîäèôèöèðîâàòü ïî÷òîâûé ÿùèê, íî ðàçðåøåí äîñòóï äëÿ ÷òåíèÿ, ïî÷òîâûé ÿùèê âûáèðàåòñÿ â ðåæèìå "òîëüêî äëÿ ÷òåíèÿ" è ñåðâåð äîëæåí ïåðåä ïîñûëêîé òåêñòà ïåðåäàòü ìàðêèðîâàííûé îòêëèê OK â îòâåò íà êîìàíäó SELECT ñ êîäîì îòêëèêà "[READ-ONLY]". Äîñòóï "òîëüêî äëÿ ÷òåíèÿ" òåì íå ìåíåå, îòëè÷àåòñÿ îò êîìàíäû EXAMINE, ïðè íåì íåêîòîðûå ïî÷òîâûå ÿùèêè ïîçâîëÿþò èçìåíÿòü ïîñòîÿííîå ñîñòîÿíèå íåêîòîðûõ ôëàãîâ ïîëüçîâàòåëÿ. Ñåòåâûå íîâîñòè èç ôàéëà .newsrc ÿâëÿþòñÿ ïðèìåðîì òîãî, êàê íåêîòîðûå ñîñòîÿíèÿ ìîãóò èçìåíÿòüñÿ äëÿ ïî÷òîâûõ ÿùèêîâ òèïà "òîëüêî äëÿ ÷òåíèÿ".

Ïðèìåð: 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

5.3.2. Êîìàíäà EXAMINE

Àðãóìåíòû: èìÿ ïî÷òîâîãî ÿùèêà.
Îòêëèêè: íåîáõîäèìû íåìàðêèðîâàííûå îòêëèêè: FLAGS, EXISTS, RECENT;
îïöèîííû íåìàðêèðîâàííûå îòêëèêè OK: UNSEEN, PERMANENTFLAGS.

Ðåçóëüòàò: OK Îñìîòð çàêîí÷åí, ñèñòåìà â ñîñòîÿíèè "âûáîð ñäåëàí" ;
NO Îñìîòð íå ïðîøåë, ñèñòåìà â ñîñòîÿíèè "àóòåíòèôèêàöèÿ âûïîëíåíà"; íåò òàêîãî ïî÷òîâîãî ÿùèêà; äîñòóï ê ïî÷òîâîìó ÿùèêó íåâîçìîæåí;
BAD Êîìàíäà íåèçâåñòíà èëè íåâåðåí àðãóìåíò.

Êîìàíäà EXAMINE èäåíòè÷íà êîìàíäå SELECT è äàåò òîò æå ðåçóëüòàò, îäíàêî, âûáðàííûé ïî÷òîâûé ÿùèê èäåíòèôèöèðóåòñÿ êàê "òîëüêî äëÿ ÷òåíèÿ". Íèêàêèå èçìåíåíèÿ ïîñòîÿííîãî ñîñòîÿíèÿ ïî÷òîâîãî ÿùèêà â ýòîì ñëó÷àå íå ðàçðåøåíû. Òåêñò ìàðêèðîâàííîãî îòêëèêà OK íà êîìàíäó EXAMINE äîëæåí íà÷èíàòüñÿ ñ êîäà îòêëèêà "[READ-ONLY]".

Ïðèìåð: C: A932 EXAMINE blurdybloop
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

5.3.3. Êîìàíäà CREATE

Àðãóìåíòû: èìÿ ïî÷òîâîãî ÿùèêà.
Îòêëèêè: íà ýòó êîìàíäó íå ïîñûëàåòñÿ êàêèõ-ëèáî îòêëèêîâ.

Ðåçóëüòàò OK Êîìàíäà âûïîëíåíà;
NO êîìàíäà íå âûïîëíåíà: ïî÷òîâûé ÿùèê ñ òàêèì èìåíåì íå ìîæåò áûòü ñîçäàí;
BAD êîìàíäà íåèçâåñòíà èëè íåâåðåí àðãóìåíò.

Êîìàíäà CREATE ñîçäàåò ïî÷òîâûé ÿùèê ñ çàäàííûì èìåíåì. Îòêëèê OK ïðèñûëàåòñÿ â ñëó÷àå, êîãäà íîâûé ïî÷òîâûé ÿùèê ñ óêàçàííûì èìåíåì ñîçäàí. Ïîïûòêà ñîçäàíèÿ INBOX èëè ïî÷òîâîãî ÿùèêà ñ èìåíåì, ñóùåñòâóþùåãî ïî÷òîâîãî ÿùèêà, ÿâëÿåòñÿ îøèáêîé . Ëþáàÿ îøèáêà ïðè ïîïûòêå ñîçäàíèÿ ïî÷òîâîãî ÿùèêà âûçîâåò ìàðêèðîâàííûé îòêëèê NO.

Åñëè èìÿ ïî÷òîâîãî ÿùèêà èìååò ñóôôèêñ ñ ñèìâîëîì ñåïàðàòîðà èåðàðõèè ñåðâåðà (â ñîîòâåòñòâèè ñ òåì, ÷òî ïîëó÷åíî ïðè âûïîëíåíèè êîìàíäû LIST), òî ýòî ÿâëÿåòñÿ äåêëàðàöèåé êëèåíòà î íàìåðåíèè ñîçäàòü ïî÷òîâûé ÿùèê ñ èìåíåì â ðàìêàõ óêàçàííîé èåðàðõèè. Ðåàëèçàöèè ñåðâåðà, êîòîðûå íå òðåáóþò ýòîé äåêëàðàöèè, äîëæíû åå èãíîðèðîâàòü.

Åñëè ñèìâîë-ñåïàðàòîð èåðàðõèè ñåðâåðà ïîÿâëÿåòñÿ ãäå-ëèáî åùå â èìåíè, ñåðâåð äîëæåí ñîçäàòü ëþáûå èìåíà áîëåå âûñîêîãî óðîâíÿ èåðàðõèè, êîòîðûå íåîáõîäèìû äëÿ óñïåøíîãî çàâåðøåíèÿ âûïîëíåíèÿ êîìàíäû CREATE. Äðóãèìè ñëîâàìè, ïîïûòêà ñîçäàíèÿ "foo/bar/zap" íà ñåðâåðå, äëÿ êîòîðîãî ñèìâîë "/" ÿâëÿåòñÿ èåðàðõè÷åñêèì ñåïàðàòîðîì, äîëæíà ïðèâåñòè ê ñîçäàíèþ foo/ è foo/bar/, åñëè îíè äî ýòîãî íå ñóùåñòâîâàëè.

Åñëè íîâûé ïî÷òîâûé ÿùèê ñîçäàí ñ èìåíåì ñòåðòîãî ïî÷òîâîãî ÿùèêà, òî åãî èäåíòèôèêàòîð äîëæåí áûòü áîëüøå, èñïîëüçîâàííîãî åãî ïðåäøåñòâåííèêîì, åñëè òîëüêî íîâàÿ âåðñèÿ ÿùèêà íå èìååò äðóãîãî çíà÷åíèÿ UID.

Ïðèìåð: C: A003 CREATE owatagusiam/
S: A003 OK CREATE completed
C: A004 CREATE owatagusiam/blurdybloop
S: A004 OK CREATE completed

Çàìå÷àíèå: èíòåðïðåòàöèÿ ýòîãî ïðèìåðà çàâèñèò îò òîãî, ÿâëÿåòñÿ ëè ñèìâîë "/" èåðàðõè÷åñêèì ñåïàðàòîðîì. Åñëè "/" èåðàðõè÷åñêèé ñåïàðàòîð, ñîçäàåòñÿ íîâûé èåðàðõè÷åñêèé óðîâåíü ñ "owatagusiam" ñ íîâûì ÷ëåíîì èåðàðõèè ýòîãî óðîâíÿ "blurdybloop".  ïðîòèâíîì ñëó÷àå ñîçäàþòñÿ äâà ïî÷òîâûõ ÿùèêà íà îäíîì è òîì æå óðîâíå èåðàðõèè.

5.3.4. Êîìàíäà DELETE

Àðãóìåíòû: èìÿ ïî÷òîâîãî ÿùèêà.
Îòêëèêè: êîìàíäà íå òðåáóåò êàêèõ-ëèáî îòêëèêîâ.
Ðåçóëüòàò: OK - êîìàíäà çàâåðøåíà;
NO - îøèáêà ïðè âûïîëíåíèè êîìàíäû: íå óäàåòñÿ ñòåðåòü ÿùèê ñ ýòèì èìåíåì;
BAD - êîìàíäà íåèçâåñòíà èëè íåâåðåí àðãóìåíò.

Êîìàíäà DELETE íàâå÷íî óäàëÿåò ïî÷òîâûé ÿùèê ñ óêàçàííûì èìåíåì. Ïðè ýòîì ïðèñûëàåòñÿ ìàðêèðîâàííûé îòêëèê OK òîëüêî â òîì ñëó÷àå, êîãäà ÿùèê óíè÷òîæåí. Îøèáêîé ñ÷èòàåòñÿ ïîïûòêà ñòåðåòü INBOX èëè ÿùèê ñ íåñóùåñòâóþùèì èìåíåì.

Êîìàíäà DELETE íå äîëæíà óäàëÿòü ÿùèêè ñ áîëåå íèçêîé èåðàðõèåé, ÷åì òåêóùàÿ. Íàïðèìåð, åñëè ïî÷òîâûé ÿùèê "foo" èìååò èåðàðõè÷åñêóþ ñòðóêòóðó "foo.bar" (ïðåäïîëàãàåòñÿ, ÷òî "." ÿâëÿåòñÿ èåðàðõè÷åñêèì ñåïàðàòîðîì), óäàëåíèå "foo" íå äîëæíî óäàëÿòü "foo.bar". Ñ÷èòàåòñÿ îøèáêîé ïîïûòêà óäàëåíèÿ èìåíè, êîòîðîìó ñîîòâåòñòâóþò íèæåëåæàùèå èåðàðõè÷åñêèå óðîâíè, èìåþùèå àòðèáóò \Noselect.

Ðàçðåøåíî óäàëÿòü èìåíà, êîòîðûì ñîîòâåòñòâóþò íèæåëåæàùèå èåðàðõè÷åñêèå óðîâíè, íî íå èìåþùèå àòðèáóòà èìåíè \Noselect.  ýòîì ñëó÷àå âñå ñîîáùåíèÿ èç ýòîãî ïî÷òîâîãî ÿùèêà òàêæå áóäóò óäàëåíû, à èìÿ ïîëó÷èò àòðèáóò \Noselect.

Çíà÷åíèå íàèáîëüøåãî èñïîëüçóåìîãî óíèêàëüíîãî èäåíòèôèêàòîðà óäàëåííûõ ïî÷òîâûõ ÿùèêîâ äîëæíî ñîõðàíÿòüñÿ, òàê ÷òîáû íîâûå ñîçäàííûå ÿùèêè ñ òåì æå èìåíåì íå èñïîëüçîâàëè èäåíòèôèêàòîðû ñâîèõ ïðåäøåñòâåííèêîâ, åñëè òîëüêî íîâûé ÿùèê íå èìååò äðóãîå çíà÷åíèå UID.

Ïðèìåðû: C: A682 LIST "" *
S: * LIST () "/" blurdybloop
S: * LIST (\Noselect) "/" foo
S: * LIST () "/" foo/bar
S: A682 OK LIST completed
C: A683 DELETE blurdybloop
S: A683 OK DELETE completed
C: A684 DELETE foo
S: A684 NO Name "foo" has inferior hierarchical names
C: A685 DELETE foo/bar
S: A685 OK DELETE Completed
C: A686 LIST "" *
S: * LIST (\Noselect) "/" foo
S: A686 OK LIST completed
C: A687 DELETE foo
S: A687 OK DELETE Completed
C: A82 LIST "" *
S: * LIST () "." blurdybloop
S: * LIST () "." foo
S: * LIST () "." foo.bar
S: A82 OK LIST completed
C: A83 DELETE blurdybloop
S: A83 OK DELETE completed
C: A84 DELETE foo
S: A84 OK DELETE Completed
C: A85 LIST "" *
S: * LIST () "." foo.bar
S: A85 OK LIST completed
C: A86 LIST "" %
S: * LIST (\Noselect) "." foo
S: A86 OK LIST completed

5.3.5. Êîìàíäà RENAME

Àðãóìåíòû: èìÿ ñóùåñòâóþùåãî ïî÷òîâîãî ÿùèêà, èìÿ íîâîãî ïî÷òîâîãî ÿùèêà.
Îòêëèêè: ýòà êîìàíäà íå òðåáóåò êàêèõ-ëèáî ñïåöèôè÷åñêèõ îòêëèêîâ.

Ðåçóëüòàò: OK ïåðåèìåíîâàíèå óñïåøíî îñóùåñòâèëîñü;
NO ïåðåèìåíîâàíèå íå ïðîøëî: íå óäàëîñü ïåðåèìåíîâàòü ÿùèê ñ äàííûì èìåíåì, íå óäàëîñü ïðèñâîèòü íîâîå èìÿ;
BAD êîìàíäà íåèçâåñòíà èëè íåâåðåí àðãóìåíò.

Êîìàíäà RENAME èçìåíÿåò èìÿ ïî÷òîâîãî ÿùèêà. Ìàðêèðîâàííûé îòêëèê OK ïðèñûëàåòñÿ ëèøü â ñëó÷àå, êîãäà ïî÷òîâûé ÿùèê ïåðåèìåíîâàí. Ñ÷èòàåòñÿ îøèáêîé ïîïûòêà ïåðåèìåíîâàòü íå ñóùåñòâóþùèé ïî÷òîâûé ÿùèê èëè ïðèñâîèòü ÿùèêó óæå èìåþùååñÿ èìÿ. Ëþáàÿ îøèáêà ïðè ïåðåèìåíîâàíèè âûçîâåò ìàðêèðîâàííûé îòêëèê NO.

Åñëè ÿùèê ñîäåðæèò â ñåáå èåðàðõè÷åñêóþ ñòðóêòóðó, èìåíà ýòîé ñòðóêòóðû íå äîëæíû ìåíÿòüñÿ. Íàïðèìåð, ïåðåèìåíîâàíèå "foo" â "zap" ïåðåèìåíóåò "foo/bar" (ïðåäïîëàãàÿ, ÷òî "/" ÿâëÿåòñÿ èåðàðõè÷åñêèì ðàçäåëèòåëåì) â "zap/bar".

Çíà÷åíèå íàèáîëüøåãî èñïîëüçîâàííîãî óíèêàëüíîãî èäåíòèôèêàòîðà èìåíè ñòàðîãî ïî÷òîâîãî ÿùèêà äîëæíî áûòü ñîõðàíåíî, òàê ÷òîáû íîâûé ñîçäàâàåìûé ñ òåì æå èìåíåì ïî÷òîâûé ÿùèê íå èñïîëüçîâàë èäåíòèôèêàòîðà ñâîåãî ïðåäøåñòâåííèêà, åñëè òîëüêî îí íå èìååò äðóãîãî çíà÷åíèÿ UID.

Ïåðåèìåíîâàíèå INBOX ðàçðåøåíî, íî èìååò ñâîþ ñïåöèôèêó. Îíî ïåðåìåùàåò âñå ñîîáùåíèÿ â ïî÷òîâûé ÿùèê ñ íîâûì èìåíåì, îñòàâëÿÿ INBOX ïóñòûì. Åñëè ðåàëèçàöèÿ ñåðâåðà ïîääåðæèâàåò èåðàðõè÷åñêèå ñèñòåìû èìåí INBOX, ýòî íèêàê íå ñêàçûâàåòñÿ íà ïåðåèìåíîâàíèè INBOX.

Ïðèìåðû: C: A682 LIST "" *
S: * LIST () "/" blurdybloop
S: * LIST (\Noselect) "/" foo
S: * LIST () "/" foo/bar
S: A682 OK LIST completed
C: A683 RENAME blurdybloop sarasoop
S: A683 OK RENAME completed
C: A684 RENAME foo zowie
S: A684 OK RENAME Completed
C: A685 LIST "" *
S: * LIST () "/" sarasoop
S: * LIST (\Noselect) "/" zowie
S: * LIST () "/" zowie/bar
S: A685 OK LIST completed
C: Z432 LIST "" *
S: * LIST () "." INBOX
S: * LIST () "." INBOX.bar
S: Z432 OK LIST completed
C: Z433 RENAME INBOX old-mail
S: Z433 OK RENAME completed
C: Z434 LIST "" *
S: * LIST () "." INBOX
S: * LIST () "." INBOX.bar
S: * LIST () "." old-mail
S: Z434 OK LIST completed

5.3.6. Êîìàíäà SUBSCRIBE

Àðãóìåíòû: èìÿ ïî÷òîâîãî ÿùèêà.
Îòêëèêè: ýòà êîìàíäà íå òðåáóåò êàêèõ-ëèáî ñïåöèôè÷åñêèõ îòêëèêîâ.
Ðåçóëüòàò: OK - ïðîöåäóðà ïîäïèñêè çàâåðøåíà;
NO - ïîäïèñêà íå ïðîøëà: ïîäïèñêà äëÿ äàííîãî èìåíè íåâîçìîæíà;
BAD - êîìàíäà íåèçâåñòíà èëè íåâåðåí àðãóìåíò.

Êîìàíäà SUBSCRIBE äîáàâëÿåò ñïåöèôèöèðîâàííîå èìÿ ïî÷òîâîãî ÿùèêà ê ñïèñêó "àêòèâíûõ" èëè "ïîäïèñíûõ" ÿùèêîâ ñåðâåðà, êàê ýòî ðåàëèçóåòñÿ êîìàíäîé LSUB. Ýòà êîìàíäà ïðèñûëàåò ìàðêèðîâàííûé îòêëèê OK òîëüêî â ñëó÷àå óñïåøíîãî îñóùåñòâëåíèÿ ïîäïèñêè.

Ñåðâåð ìîæåò ïðîâåðèòü àðãóìåíò êîìàíäû SUBSCRIBE, ÷òîáû ïðîêîíòðîëèðîâàòü åãî êîððåêòíîñòü äëÿ äàííîãî ïî÷òîâîãî ÿùèêà. Îäíàêî îí íå äîëæåí â îäíîñòîðîííåì ïîðÿäêå óäàëÿòü ñóùåñòâóþùåå èìÿ ïî÷òîâîãî ÿùèêà èç ïîäïèñíîãî ëèñòà, äàæå åñëè ÿùèêà ñ òàêèì èìåíåì áîëåå íå ñóùåñòâóåò.

Çàìå÷àíèå: ýòî òðåáîâàíèå âîçíèêàåò ïîòîìó, ÷òî íåêîòîðûå ñåðâåðû ìîãóò óäàëèòü ïî÷òîâûé ÿùèê ñ èçâåñòíûì èìåíåì, íàïðèìåð, "system-alerts") ïîñëå òîãî êàê ñðîê ãîäíîñòè åãî ñîäåðæèìîãî èñòåê ñ òåì, ÷òîáû ñîçäàòü åãî âíîâü ïðè ïîÿâëåíèè íîâûõ ñîîáùåíèé.

Ïðèìåð: C: A002 SUBSCRIBE #news.comp.mail.mime
S: A002 OK SUBSCRIBE completed

5.3.7. Êîìàíäà UNSUBSCRIBE

Àðãóìåíòû: èìÿ ïî÷òîâîãî ÿùèêà.
Îòêëèêè: ýòà êîìàíäà íå òðåáóåò êàêèõ-ëèáî ñïåöèôè÷åñêèõ îòêëèêîâ.
Ðåçóëüòàò: OK - ëèêâèäàöèÿ ïîäïèñêè ïðîøëà óñïåøíî;
NO - ëèêâèäàöèÿ ïîäïèñêè íå ïðîøëà: ýòî íåâîçìîæíî äëÿ äàííîãî èìåíè;
BAD - êîìàíäà íåèçâåñòíà èëè íåâåðåí àðãóìåíò.

Êîìàíäà UNSUBSCRIBE óäàëÿåò ñïåöèôèöèðîâàííûé ïî÷òîâûé ÿùèê èç ñïèñêà "àêòèâíûõ" èëè "ïîäïèñíûõ" ïî÷òîâûõ ÿùèêîâ äàííîãî ñåðâåðà, êàê ýòî îïðåäåëÿåòñÿ êîìàíäîé LSUB. Ýòà êîìàíäà âîçâðàùàåò ìàðêèðîâàííûé îòêëèê OK òîëüêî â ñëó÷àå, åñëè ëèêâèäàöèÿ ïîäïèñêè ïðîøëà óñïåøíî.

Ïðèìåð: C: A002 UNSUBSCRIBE #news.comp.mail.mime
S: A002 OK UNSUBSCRIBE completed

5.3.8. Êîìàíäà LIST

Àðãóìåíòû: èìÿ,
èìÿ ïî÷òîâîãî ÿùèêà ìîæåò ñîäåðæàòü ñèìâîëû ïîäìåíû (wildcard).
Îòêëèêè: íåìàðêèðîâàííûå îòêëèêè LIST.

Ðåçóëüòàò: OK êîìàíäà list âûïîëíåíà;
NO êîìàíäà íå ïðîøëà: íå âîçìîæíî âûïîëíåíèå list äëÿ äàííîãî îáðàçöà èëè èìåíè;
BAD êîìàíäà íåèçâåñòíà èëè íåâåðåí àðãóìåíò.

Êîìàíäà LIST âîçâðàùàåò ñóáíàáîð èìåí èç ïîëíîãî íàáîðà, äîñòóïíîãî êëèåíòó. Ïðèñûëàåòñÿ íóëü èëè áîëåå íåìàðêèðîâàííûõ îòêëèêîâ LIST, ñîäåðæàùèõ àòðèáóòû èìåí, èåðàðõè÷åñêèå ðàçäåëèòåëè è èìåíà.

Êîìàíäà LIST äîëæíà âîçâðàùàòü äàííûå áûñòðî áåç ñóùåñòâåííûõ çàäåðæåê. Íàïðèìåð, îíà íå äîëæíà òðàòèòü âðåìÿ íà âûÿñíåíèå ñòàòóñà (\Marked èëè \Unmarked) èëè íà âûïîëíåíèå äðóãîé òðóäîåìêîé îáðàáîòêè, âåäü åñëè êàæäîå èìÿ òðåáóåò îäíîé ñåêóíäû, òî îáðàáîòêà ñïèñêà èç 1200 èìåí çàéìåò 20 ìèíóò.

Àðãóìåíò, ñîäåðæàùèé ïóñòóþ ñòðîêó îáðàçöà èìåíè (""), óêàçûâàåò, ÷òî èìÿ ïî÷òîâîãî ÿùèêà èíòåðïðåòèðóåòñÿ òàêæå, êàê ýòî äåëàåò êîìàíäà SELECT. Ïðèñëàííûå èìåíà ïî÷òîâûõ ÿùèêîâ äîëæíû ñîîòâåòñòâîâàòü ïîëó÷åííîìó øàáëîíó èìåíè. Íåïóñòîé àðãóìåíò ÿâëÿåòñÿ øàáëîíîì èìåíè ïî÷òîâîãî ÿùèêà èëè óðîâåíÿ èåðàðõèè è óêàçûâàåò íà êîíòåêñò, â êîòîðîì èíòåðïðåòèðóåòñÿ èìÿ. Ïóñòîé àðãóìåíò èìåíè ("") ïðåäñòàâëÿåò ñîáîé ñïåöèàëüíûé çàïðîñ, òðåáóþùèé ïðèñûëêè èåðàðõè÷åñêîãî ðàçäåëèòåëÿ è êîðíåâîãî èìåíè. Çíà÷åíèå, âîçâðàùàåìîå â êà÷åñòâå êîðíåâîãî èìåíè, ìîæåò áûòü íóëåì, åñëè øàáëîíó íå ñîîòâåòñòâóåò íèêàêàÿ èåðàðõèÿ. Èåðàðõè÷åñêèé ðàçäåëèòåëü ïðèñûëàåòñÿ âî âñåõ ñëó÷àÿõ. Ýòî ïîçâîëÿåò êëèåíòó ïîëó÷èòü èåðàðõè÷åñêèé ðàçäåëèòåëü äàæå â ñëó÷àå, êîãäà íåò ïî÷òîâûõ ÿùèêîâ, ñîîòâåòñòâóþùèõ äàííîìó èìåíè.

Øàáëîí è èìÿ ïî÷òîâîãî ÿùèêà èíòåðïðåòèðóþòñÿ ïî-ðàçíîìó â çàâèñèìîñòè îò ðåàëèçàöèè.  êàíîíè÷åñêîì âàðèàíòå àíàëèç ïðîèñõîäèò ñëåâà íàïðàâî.

Ëþáàÿ ÷àñòü àðãóìåíòà øàáëîíà, êîòîðàÿ âêëþ÷åíà â èíòåðïðåòèðîâàííóþ ôîðìó, äîëæíà ïðåäøåñòâîâàòü èíòåðïðåòèðîâàííîé ôîðìå. Îíà äîëæíà èìåòü òîò æå ôîðìàò, ÷òî è àðãóìåíò øàáëîíà èìåíè. Ýòî ïðàâèëî ïîçâîëÿåò êëèåíòó îïðåäåëèòü, ñîîòâåòñòâóåò ëè ïðèñëàííîå èìÿ ïî÷òîâîãî ÿùèêà êîíòåêñòó øàáëîíà. Áåç ýòîãî ïðàâèëà, êëèåíò äîëæåí áûë áû çíàòü ñåìàíòèêó èìåí ñåðâåðà.

Íèæå ïðèâåäåíû íåêîòîðûå ïðèìåðû òîãî, êàê ìîãóò èíòåðïðåòèðîâàòüñÿ îáðàçöû è èìåíà ïî÷òîâûõ ÿùèêîâ íà ñåðâåðàõ áàçèðóþùèõñÿ íà UNIX:

Øàáëîí Èìÿ ïî÷òîâîãî ÿùèêà Èíòåðïðåòàöèÿ
~smith/Mail/ foo.* ~smith/Mail/foo.*
Archive/ % archive/%
#news. comp.mail.* #news.comp.mail.*
~smith/Mail/ /usr/doc/foo /usr/doc/foo
archive/ ~fred/Mail/* ~fred/Mail/*

Ïåðâûå òðè ïðèìåðà äåìîíñòðèðóþò èíòåðïðåòàöèþ â êîíòåêñòå àðãóìåíòà øàáëîíà. Çàìåòüòå, ÷òî "~smith/Mail" íå äîëæíî ïðåîáðàçîâàòüñÿ âî ÷òî-òî ïîäîáíîå "/u2/users/smith/Mail", èíà÷å äëÿ êëèåíòà áûëî áû íåâîçìîæíî îïðåäåëèòü, ñîîòâåòñòâîâàëà ëè èíòåðïðåòàöèÿ êîíòåêñòó øàáëîíà.

Ñèìâîë "*" ïðåäñòàâëÿåò ñîáîé ïîäìåíó (wildcard), è ñîîòâåòñòâóåò íóëþ èëè áîëåå ñèìâîëîâ â äàííîé ïîçèöèè. Ñèìâîë "%" ïîäîáåí "*", íî îí íå ñîîòâåòñòâóåò èåðàðõè÷åñêîìó ðàçäåëèòåëþ. Åñëè ñèìâîë "%" ÿâëÿåòñÿ ïîñëåäíèì ñèìâîëîì èìåíè ïî÷òîâîãî ÿùèêà, òî â îòêëèêå áóäóò ïðèñëàíû è ñîîòâåòñòâóþùèå óðîâíè èåðàðõèè. Åñëè ýòè óðîâíè íå ÿâëÿþòñÿ ïî÷òîâûìè ÿùèêàìè, êîòîðûå ìîæíî âûáðàòü, òî èõ èìåíà ñíàáæàþòñÿ àòðèáóòîì \Noselect. Ðåàëèçàöèÿì ñåðâåðà òàêèì îáðàçîì ïîçâîëåíî ñïðÿòàòü íåêîòîðûå ïî÷òîâûå ÿùèêè, èìåíà êîòîðûõ ìîãëè áû áûòü ðàñêðûòû ñ èñïîëüçîâàíèåì øàáëîíîâ ñ ñèìâîëàìè ïîäìåíû (wildcard). Íàïðèìåð, ñåðâåð íà îñíîâå UNIX ìîæåò îãðàíè÷èòü èíòåðïðåòàöèþ "*" òàê, ÷òî íà÷àëüíûé ñèìâîë "/" áóäåò ïðèâîäèòü ê íåñîîòâåòñòâèþ èìåíè øàáëîíó.

Ñïåöèàëüíîå èìÿ INBOX âêëþ÷àåòñÿ â âûäà÷ó êîìàíäû LIST, åñëè INBOX ïîääåðæèâàåòñÿ äàííûì ñåðâåðîì äëÿ äàííîãî ïîëüçîâàòåëÿ è, åñëè ñòðîêà "INBOX", íàïå÷àòàííàÿ ïðîïèñíûìè áóêâàìè, ñîîòâåòñòâóåò èíòåðïðåòèðîâàííîìó øàáëîíó.

Ïðèìåð: C: A101 LIST "" ""

S: * LIST (\Noselect) "/" ""
S: A101 OK LIST Completed
C: A102 LIST #news.comp.mail.misc ""
S: * LIST (\Noselect) "." #news.
S: A102 OK LIST Completed
C: A103 LIST /usr/staff/jones ""
S: * LIST (\Noselect) "/" /
S: A103 OK LIST Completed
C: A202 LIST ~/Mail/ %
S: * LIST (\Noselect) "/" ~/Mail/foo
S: * LIST () "/" ~/Mail/meetings
S: A202 OK LIST completed

5.3.9. Êîìàíäà LSUB

Àðãóìåíòû: èìÿ-øàáëîí,
èìÿ ïî÷òîâîãî ÿùèêà ìîæåò ñîäåðæàòü ñèìâîëû ïîäìåíû (wildcards).
Îòêëèêè: íåìàðêèðîâàííûé îòêëèê: LSUB

Ðåçóëüòàò: OK êîìàíäà óñïåøíî èñïîëíåíà;
NO êîìàíäà íå ïðîøëà: íå âîçìîæíà âûäà÷à ñïèñêà äëÿ ïðåäëàãàåìîãî øàáëîíà èëè èìåíè;
BAD êîìàíäà íåèçâåñòíà èëè íåâåðåí àðãóìåíò.

Êîìàíäà LSUB âîçâðàùàåò ñóáíàáîð èìåí èç ñïèñêà ïîëüçîâàòåëÿ, êîòîðûé äåêëàðèðîâàí êàê "àêòèâíûé" èëè "ïîäïèñíîé". Ïðè ýòîì îòïðàâëÿåòñÿ íóëü èëè áîëåå íåìàðêèðîâàííûõ îòêëèêîâ LSUB. Àðãóìåíòû LSUB èìåþò òîò æå ôîðìàò, ÷òî è äëÿ êîìàíäû LIST.

Ñåðâåð ìîæåò ïðîâåðèòü èìåíà èç ïîäïèñíîãî ëèñòà ñ òåì, ÷òîáû ïðîâåðèòü, ñóùåñòâóþò ëè îíè åùå. Åñëè èìåíè íå ñóùåñòâóåò, îíî äîëæíî áûòü ïîìå÷åíî â îòêëèêå LSUB àòðèáóòîì \Noselect. Ñåðâåð íå äîëæåí ïî ñâîåìó óñìîòðåíèþ óäàëÿòü èìåíà ïî÷òîâûõ ÿùèêîâ èç ïîäïèñíîãî ëèñòà äàæå, åñëè òàêîãî ÿùèêà áîëåå íå ñóùåñòâóåò.

Ïðèìåð: C: A002 LSUB "#news." "comp.mail.*"
S: * LSUB () "." #news.comp.mail.mime
S: * LSUB () "." #news.comp.mail.misc
S: A002 OK LSUB completed

5.3.10. Êîìàíäà STATUS

Àðãóìåíòû: èìÿ ïî÷òîâîãî ÿùèêà, ñòàòóñíàÿ èíôîðìàöèÿ èìåí.
Îòêëèêè: íåìàðêèðîâàííûå îòêëèêè: STATUS.
Ðåçóëüòàò: OK - êîìàíäà óñïåøíî âûïîëíåíà;
NO - êîìàíäà íå ïðîøëà: íåò ñòàòóñíîé èíôîðìàöèè äëÿ äàííîãî èìåíè;
BAD - êîìàíäà íåèçâåñòíà èëè íåâåðåí àðãóìåíò.

Êîìàíäà STATUS çàïðàøèâàåò ñòàòóñíûå äàííûå äëÿ óêàçàííîãî ïî÷òîâîãî ÿùèêà. Îíà íå èçìåíÿåò âûáîð ïî÷òîâîãî ÿùèêà è íå âíîñèò êàêèõ-ëèáî èçìåíåíèé â ñîñòîÿíèå ñîîáùåíèé äëÿ çàïðîøåííîãî ÿùèêà (â ÷àñòíîñòè êîìàíäà STATUS íå äîëæíà âûçûâàòü ïîòåðþ ôëàãà \Recent).

Êîìàíäà STATUS ïðåäîñòàâëÿåò àëüòåðíàòèâó îòêðûòèþ äîïîëíèòåëüíîãî IMAP 4.1 ñîåäèíåíèÿ è ðåàëèçóåò êîìàíäó EXAMINE äëÿ çàïðàøèâàåìîãî ïî÷òîâîãî ÿùèêà, íå èçìåíÿÿ âûáîðà, âûïîëíåííîãî ïðè ïåðâè÷íîì ñîåäèíåíèè.

 îòëè÷èè îò êîìàíäû LIST, êîìàíäà STATUS íå ãàðàíòèðóåò áûñòðîãî îòêëèêà.  íåêîòîðûõ ðåàëèçàöèÿõ ñåðâåð îáÿçàí îòêðûòü ïî÷òîâûé ÿùèê â ðåæèìå "òîëüêî ÷òåíèå", ÷òîáû ïîëó÷èòü íóæíûå ñòàòóñíûå äàííûå. Êðîìå òîãî, êîìàíäà STATUS íå äîïóñêàåò ñèìâîëîâ ïîäìåíû â øàáëîíå èìåíè.  íàñòîÿùåå âðåìÿ îïðåäåëåíû ñëåäóþùèå ñòàòóñíûå äàííûå, êîòîðûå ìîãóò áûòü çàïðîøåíû:

MESSAGES ×èñëî ñîîáùåíèé â ïî÷òîâîì ÿùèêå
RECENT ×èñëî ñîîáùåíèé ñ óñòàíîâëåííûì ôëàãîì \Recent
UIDNEXT Ñëåäóþùåå çíà÷åíèå, êîòîðîå áóäåò ïðåäïèñàíî íîâîìó ñîîáùåíèþ â ïî÷òîâîì ÿùèêå. Ãàðàíòèðóåòñÿ, ÷òî ýòî çíà÷åíèå íå èçìåíèòñÿ, åñëè òîëüêî â ÿùèê íå áóäåò ïîëîæåíî íîâîå ñîîáùåíèå. UID áóäåò èçìåíåí ïðè óêëàäêå íîâîãî ñîîáùåíèÿ, äàæå åñëè îíî ïîñëå ýòîãî ñòåðòî.
UIDVALIDITY Óíèêàëüíûé âàëèäàòîð ïî÷òîâîãî ÿùèêà
UNSEEN ×èñëî ñîîáùåíèé, íå èìåþùèõ óñòàíîâëåííîãî ôëàãà \Seen

Ïðèìåð: C: A042 STATUS blurdybloop (UIDNEXT MESSAGES)
S: * STATUS blurdybloop (MESSAGES 231 UIDNEXT 44292)
S: A042 OK STATUS completed

5.3.11. Êîìàíäà APPEND

Àðãóìåíòû: èìÿ ïî÷òîâîãî ÿùèêà,
îïöèîííî - ôëàã ñïèñêà ñî ñêîáêàìè,
îïöèîííî - ñòðîêà äàòû è âðåìåíè,
ëèòåðàë ñîîáùåíèÿ

Îòêëèêè: êîìàíäà íå òðåáóåò êàêîãî-ëèáî ñïåöèàëüíîãî îòêëèêà

Ðåçóëüòàò: OK êîìàíäà óñïåøíî èñïîëíåíà
NO êîìàíäà íå ïðîøëà: äîáàâëåíèå â ïî÷òîâûé ÿùèê íå óäàëîñü, îøèáêà âî ôëàãàõ èëè äàòå/âðåìåíè, èëè â òåêñòå ñîîáùåíèÿ
BAD êîìàíäà íåèçâåñòíà èëè íåâåðåí àðãóìåíò

Êîìàíäà APPEND äîáàâëÿåò ëèòåðàëüíûé àðãóìåíò â êà÷åñòâå íîâîãî ñîîáùåíèÿ â ïî÷òîâûé ÿùèê. Ýòîò àðãóìåíò äîëæåí ñëåäîâàòü ôîðìàòó ñîîáùåíèé [RFC-822]. Äîïóñêàåòñÿ èñïîëüçîâàíèå â ñîîáùåíèÿõ 8-áèòîâûõ ñèìâîëîâ. Ðåàëèçàöèÿ ñåðâåðà, êîòîðàÿ íå ìîæåò ðàáîòàòü ñ 8-áèòîâûìè äàííûìè, äîëæíà áûòü ñïîñîáíà ïðåîáðàçîâûâàòü 8-áèòîâóþ èíôîðìàöèþ APPEND â 7-áèòîâóþ, èñïîëüçóÿ òðàíñïîðòíîå êîäèðîâàíèå [MIME-IMB]. Åñëè ñïåöèôèöèðîâàí ôëàã ñïèñêà ñî ñêîáêàìè, â ðåçóëüòèðóþùèõ ñîîáùåíèÿõ äîëæíû áûòü óñòàíîâëåíû ôëàãè, â ïðîòèâíîì ñëó÷àå ñïèñîê ôëàãîâ áóäåò óñòàíîâëåí ïî óìîë÷àíèþ ïóñòûì.

Åñëè ñïåöèôèöèðîâàíî date_time, â ðåçóëüòèðóþùåì ñîîáùåíèè äîëæíà áûòü óñòàíîâëåíà âíóòðåííÿÿ äàòà, â ïðîòèâíîì ñëó÷àå, âíóòðåííÿÿ äàòà è âðåìÿ ðåçóëüòèðóþùåãî ñîîáùåíèÿ áóäóò óñòàíîâëåíû ïî óìîë÷àíèþ ðàâíûìè òåêóùèì çíà÷åíèÿì. Åñëè êîìàíäà append ïî êàêîé-òî ïðè÷èíå íå ïðîøëà, ïî÷òîâûé ÿùèê äîëæåí áûòü âîçâðàùåí â ñîñòîÿíèå, êîòîðîå îí èìåë äî êîìàíäû APPEND.

Åñëè ïî÷òîâûé ÿùèê ìåñòà íàçíà÷åíèÿ íå ñóùåñòâóåò, ñåðâåð äîëæåí ñîîáùèòü îá îøèáêå, à íå äîëæåí àâòîìàòè÷åñêè ñîçäàâàòü íîâûé ïî÷òîâûé ÿùèê. Åñëè íå ÿñíî, ìîæåò èëè íåò áûòü ñîçäàí ïî÷òîâûé ÿùèê, ñåðâåð äîëæåí ïîñëàòü êîä îòêëèêà "[TRYCREATE]" â êà÷åñòâå ïðåôèêñà òåêñòà ìàðêèðîâàííîãî îòêëèêà NO. Ýòî óêàçûâàåò êëèåíòó íà âîçìîæíîñòü ïîïûòêè èñïîëíåíèÿ êîìàíäû CREATE, ïîñëå ÷åãî, â ñëó÷àå óñïåõà, ïîâòîðèòü êîìàíäó APPEND.

Åñëè â íàñòîÿùåå âðåìÿ ïî÷òîâûé ÿùèê è âûáðàí, òî íåìåäëåííî äîëæíû íà÷àòüñÿ ïî÷òîâûå îïåðàöèè. Ñåðâåð äîëæåí óâåäîìèòü êëèåíòà îá ýòîì, ïîñëàâ íåìàðêèðîâàííûé îòêëèê EXISTS. Åñëè ñåðâåð íå äåëàåò ýòîãî, êëèåíò ïîñëå îäíîé èëè áîëåå êîìàíä APPEND ìîæåò âûäàòü êîìàíäó NOOP (èëè ïðè íåóäà÷å êîìàíäó CHECK).

Ïðèìåð: C: A003 APPEND saved-messages (\Seen) {310}
C: Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST)
C: From: Fred Foobar
C: Subject: afternoon meeting
C: To: mooch@owatagu.siam.edu
C: Message-Id:
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

Çàìå÷àíèå: êîìàíäà APPEND íå èñïîëüçóåòñÿ äëÿ äîñòàâêè ñîîáùåíèé, òàê êàê îíà íå ñîäåðæèò â ñåáå ìåõàíèçìà ïåðåäà÷è ñëóæåáíîé èíôîðìàöèè [SMTP].

Portable - Autodata Portable

 ñîñòîÿíèè "âûáîð ñäåëàí", ðàçðåøåíû êîìàíäû, êîòîðûå ìàíèïóëèðóþò ñîîáùåíèÿìè â ïî÷òîâîì ÿùèêå. Ïîìèìî óíèâåðñàëüíûõ êîìàíä (CAPABILITY, NOOP è LOGOUT), à òàêæå êîìàíä ðåæèìà àóòåíòèôèêàöèè (SELECT, EXAMINE, CREATE, DELETE, RENAME, SUBSCRIBE, UNSUBSCRIBE, LIST, LSUB, STATUS è APPEND), â äàííîì ðåæèìå äîñòóïíû ñëåäóþùèå êîìàíäû: CHECK, CLOSE, EXPUNGE, SEARCH, FETCH, STORE, COPY è UID.

5.4.1. Êîìàíäà CHECK

Àðãóìåíòû: îòñóòñòâóþò.
Îòêëèêè: êîìàíäà íå òðåáóåò êàêîãî-ëèáî ñïåöèàëüíîãî îòêëèêà;
Ðåçóëüòàò: OK - ïðîâåðêà çàâåðøåíà;
BAD - êîìàíäà íåèçâåñòíà èëè íåâåðåí àðãóìåíò.

Êîìàíäà CHECK îñóùåñòâëÿåò ïðîâåðêó âûáðàííîãî ïî÷òîâîãî ÿùèêà. Ïðîâåðêà îòíîñèòñÿ ê ëþáûì õàðàêòåðèñòèêàì, çàâèñÿùèì îò ðåàëèçàöèè (íàïðèìåð, âûÿâëåíèå ïîëîæåíèÿ ïî÷òîâîãî ÿùèêà â ïàìÿòè ñåðâåðà è íà äèñêå). Åñëè ñåðâåð íå ïîääåðæèâàåò òàêèõ âîçìîæíîñòåé, êîìàíäà ýêâèâàëåíòíà NOOP.

Íå ñóùåñòâóåò ãàðàíòèè, ÷òî â ðåçóëüòàòå CHECK áóäåò ïðèñëàí íåìàðêèðîâàííûé îòêëèê. Äëÿ ïðîâåðêè ïîñòóïëåíèÿ íîâîé ïî÷òû ñëåäóåò èñïîëüçîâàòü êîìàíäó NOOP, à íå CHECK.

Ïðèìåð: C: FXXZ CHECK
S: FXXZ OK CHECK Completed

5.4.2. Êîìàíäà CLOSE

Àðãóìåíòû: îòñóòñòâóþò.
Îòêëèêè: êîìàíäà íå òðåáóåò êàêîãî-ëèáî ñïåöèàëüíîãî îòêëèêà.
Ðåçóëüòàò: OK - êîìàíäà âûïîëíåíà, ñèñòåìà â ñîñòîÿíèè "àóòåíòèôèêàöèÿ âûïîëíåíà";
NO - êîìàíäà íå ïðîøëà, íèêàêîãî ÿùèêà íå âûáðàíî;
BAD - êîìàíäà íåèçâåñòíà èëè íåâåðåí àðãóìåíò.

Êîìàíäà CLOSE íàâå÷íî óäàëÿåò èç âûáðàííîãî ïî÷òîâîãî ÿùèêà âñå ñîîáùåíèÿ, ïîìå÷åííûå ôëàãîì \Deleted, è âîçâðàùàåò ñèñòåìó â ñîñòîÿíèå "àóòåíòèôèêàöèÿ âûïîëíåíà". Íèêàêîãî íåìàðêèðîâàííîãî îòêëèêà EXPUNGE íå ïîñûëàåòñÿ.

Íèêàêèõ ñîîáùåíèé íå óäàëÿåòñÿ è íèêàêèõ ôëàãîâ îøèáêè íå âîçâðàùàåòñÿ, åñëè ïî÷òîâûé ÿùèê áûë âûáðàí êîìàíäîé EXAMINE èëè íàõîäèëñÿ â ðåæèìå "òîëüêî äëÿ ÷òåíèÿ".

Äàæå åñëè ïî÷òîâûé ÿùèê âûáðàí, êîìàíäû SELECT, EXAMINE èëè LOGOUT ìîãóò áûòü èñïîëüçîâàíû áåç ïðåäâàðèòåëüíîãî èñïîëíåíèÿ êîìàíäû CLOSE. Êîìàíäû SELECT, EXAMINE è LOGOUT áåçîãîâîðî÷íî çàêðûâàþò âûáðàííûé â äàííûé ìîìåíò ïî÷òîâûé ÿùèê áåç óäàëåíèÿ ñîîáùåíèé. Îäíàêî êîãäà óäàëåíî ìíîãî ñîîáùåíèé, ïîñëåäîâàòåëüíîñòü CLOSE-LOGOUT èëè CLOSE-SELECT çíà÷èòåëüíî áûñòðåå, ÷åì EXPUNGE-LOGOUT èëè EXPUNGE-SELECT, òàê êàê çäåñü íå ïîñûëàåòñÿ íèêàêèõ íåìàðêèðîâàííûõ îòêëèêîâ EXPUNGE (êîòîðûå êëèåíò âåðîÿòíî ïðîèãíîðèðóåò).

Ïðèìåð: C: A341 CLOSE
S: A341 OK CLOSE completed

5.4.3. Êîìàíäà EXPUNGE

Àðãóìåíòû: îòñóòñòâóþò.
Îòêëèêè: íåìàðêèðîâàííûå îòêëèêè: EXPUNGE.
Ðåçóëüòàò: OK - êîìàíäà óñïåøíî çàâåðøåíà;
NO - êîìàíäà íå ïðîøëà: ñòèðàíèå íå âûïîëíåíî (íàïðèìåð, çàïðåùåíî);
BAD - êîìàíäà íåèçâåñòíà èëè íåâåðåí àðãóìåíò.

Êîìàíäà EXPUNGE íàâå÷íî óäàëÿåò èç âûáðàííîãî ïî÷òîâîãî ÿùèêà âñå ñîîáùåíèÿ, êîòîðûå ïîìå÷åíû ôëàãàìè \Deleted. Ïðåæäå ÷åì âûäàòü êëèåíòó ñèãíàë OK, ïîñûëàåòñÿ íåìàðêèðîâàííûé îòêëèê EXPUNGE äëÿ êàæäîãî èç óäàëÿåìûõ ñîîáùåíèé.

Ïðèìåð: C: A202 EXPUNGE
S: * 3 EXPUNGE
S: * 3 EXPUNGE
S: * 5 EXPUNGE
S: * 8 EXPUNGE
S: A202 OK EXPUNGE completed

Çàìå÷àíèå: â ýòîì ïðèìåðå, ñîîáùåíèÿ 3, 4, 7 è 11 èìåþò óñòàíîâëåííûé ôëàã \Deleted. Ñëåäóåò ó÷èòûâàòü, ÷òî ïîñëå êàæäîãî óäàëåíèÿ ñîîáùåíèÿ ïåðåíóìåðóþòñÿ.

5.4.4. Êîìàíäà SEARCH

Àðãóìåíòû: îïöèîííû, [CHARSET]-ñïåöèôèêàöèÿ.
Êðèòåðèè ïîèñêà (îäèí èëè áîëåå).
Îòêëèêè: íåîáõîäèì íåìàðêèðîâàííûé îòêëèê: SEARCH.
Ðåçóëüòàò: OK - ïîèñê çàâåðøåí;
NO - îøèáêà: ïîèñê äëÿ äàííîãî íàáîðà ñèìâîëîâ èëè êðèòåðèåâ íå âîçìîæåí;
BAD - êîìàíäà íåèçâåñòíà èëè íåâåðåí àðãóìåíò

Êîìàíäà SEARCH èùåò ïî÷òîâûé ÿùèê, êîòîðûé îòâå÷àåò âûáðàííûì êðèòåðèÿì îòáîðà. Êðèòåðèé îòáîðà ñîñòîèò èç îäíîãî èëè áîëåå êëþ÷åé ïîèñêà. Íåìàðêèðîâàííûé îòêëèê SEARCH îò ñåðâåðà ñîäåðæèò ñïèñîê íîìåðîâ ñîîáùåíèé, êîòîðûå ñîîòâåòñòâóþò êðèòåðèÿì îòáîðà.

Êîãäà ñïåöèôèöèðîâàíî íåñêîëüêî êëþ÷åé, ðåçóëüòàòîì ÿâëÿåòñÿ (ôóíêöèÿ AND) ñîâîêóïíîñòü âñåõ ñîîáùåíèé, îòâå÷àþùèì çàäàííûì êðèòåðèÿì. Íàïðèìåð, êðèòåðèé DELETED FROM "SMITH" SINCE 1-Feb-1994 îòíîñèòñÿ êî âñåì ñòåðòûì ñîîáùåíèÿì îò Ñìèòà, êîòîðûå áûëè ïîëîæåíû â ïî÷òîâûé ÿùèê ïîñëå 1-ãî ôåâðàëÿ 1994. (íàïðèìåð, äëÿ îáúåäèíåíèÿ ýòèõ êëþ÷åé ñ ïîìîùüþ ôóíêöèé OR è NOT).

Îïöèîííàÿ ñïåöèôèêàöèÿ [CHARSET] ñîñòîèò èç ñëîâà "CHARSET", çà êîòîðûì ñëåäóåò çàðåãèñòðèðîâàííîå íàèìåíîâàíèå ñèìâîëüíîãî íàáîðà [CHARSET]. Îí âêëþ÷àåò â ñåáÿ [CHARSET] ñòðîê, êîòîðûå èñïîëüçóþòñÿ â êà÷åñòâå êðèòåðèÿ îòáîðà. Òðàíñïîðòíîå êîäèðîâàíèå ñîäåðæèìîãî [MIME-IMB] è ñòðîêè [MIME-HDRS] â [RFC-822]/[MIME-IMB] çàãîëîâêàõ, äîëæíû äåêîäèðîâàòüñÿ ïåðåä ñðàâíåíèåì òåêñòà â ïðåäñòàâëåíèè [CHARSET], îòëè÷íîì îò US-ASCII. US-ASCII äîëæíî ïîääåðæèâàòüñÿ âñåãäà, íî ìîãóò èñïîëüçîâàòüñÿ è äðóãèå ñèìâîëüíûå íàáîðû. Åñëè ñåðâåð íå ïîääåðæèâàåò ñïåöèôèöèðîâàííûé íàáîð ñèìâîëîâ [CHARSET], îí äîëæåí âåðíóòü ìàðêèðîâàííûé îòêëèê NO (íî íå BAD).

Äëÿ âñåõ êëþ÷åé ïîèñêà, êîòîðûå èñïîëüçóþò ñòðîêè, ñîîáùåíèå ñîîòâåòñòâóåò êëþ÷ó, åñëè ñòðîêà ÿâëÿåòñÿ ÷àñòüþ ñòðîêè ïîëÿ â ñîîáùåíèè. Ñîîòâåòñòâèå íå äîëæíî çàâèñåòü îò èñïîëüçîâàíèÿ ñòðî÷íûõ èëè ïðîïèñíûõ ñèìâîëîâ. Ñòàíäàðòíûìè êëþ÷àìè ïîèñêà ÿâëÿþòñÿ ñëåäóþùèå ñëîâà è âûðàæåíèÿ.

<íàáîð ñîîáùåíèé> Ñîîáùåíèÿ ñ íîìåðàìè, ñîîòâåòñòâóþùèìè ñïåöèôèöèðîâàííîìó íàáîðó íîìåðîâ
ALL Âñå ñîîáùåíèÿ â ïî÷òîâîì ÿùèêå. Êëþ÷ îòáîðà ïî óìîë÷àíèþ äëÿ ïðèìåíåíèÿ êîìàíä AND
ANSWERED Ñîîáùåíèÿ ñ óñòàíîâëåííûì ôëàãîì \Answered.
BCC <ñòðîêà> Ñîîáùåíèÿ, êîòîðûå ñîäåðæàò ñïåöèôèöèðîâàííóþ ñòðîêó â ïîëå BCC ñòðóêòóðû çàãîëîâêà ñîîáùåíèÿ.
BEFORE <äàòà> Ñîîáùåíèÿ, ÷üè âíóòðåííèå äàòû ðàíüøå óêàçàííîé.
BODY <ñòðîêà> Ñîîáùåíèÿ, êîòîðûå ñîäåðæàò ñïåöèôèöèðîâàííóþ ñòðîêó â òåëå ñîîáùåíèÿ.
CC <ñòðîêà> Ñîîáùåíèÿ, êîòîðûå ñîäåðæàò ñïåöèôèöèðîâàííóþ ñòðîêó â CC ïîëå çàãîëîâêà.
DELETED Ñîîáùåíèÿ ñ óñòàíîâëåííûì ôëàãîì \Deleted.
DRAFT Ñîîáùåíèÿ ñ óñòàíîâëåííûì ôëàãîì \Draft.
FLAGGED Ñîîáùåíèÿ c óñòàíîâëåííûì ôëàãîì \Flagged.
FROM <ñòðîêà> Ñîîáùåíèÿ, êîòîðûå ñîäåðæàò ñïåöèôèöèðîâàííóþ ñòðîêó â ïîëå FROM çàãîëîâêà.
HEADER <èìÿ ïîëÿ> <ñòðîêà> Ñîîáùåíèÿ, êîòîðûå ñîäåðæàò çàãîëîâîê ñî ñïåöèôèöèðîâàííûì èìåíåì ïîëÿ (â ñîîòâåòñòâèè ñ [RFC-822]) è ñïåöèôèöèðîâàííóþ ñòðîêó â òåëå äàííîãî ïîëÿ.
KEYWORD <ôëàã> Ñîîáùåíèÿ ñî ñïåöèôèöèðîâàííûì êëþ÷åâûìè ñëîâàìè.
LARGER <n> Ñîîáùåíèÿ ñ ðàçìåðîì [RFC-822] áîëüøå ÷åì ñïåöèôèöèðîâàííîå ÷èñëî îêòåòîâ.
NEW Ñîîáùåíèÿ, êîòîðûå èìåþò óñòàíîâëåííûé ôëàã \Recent, íî íå èìåþò ôëàãà \Seen. Ýòî ôóíêöèîíàëüíî ýêâèâàëåíòíî "(RECENT UNSEEN)".
NOT <êëþ÷ ïîèñêà> Ñîîáùåíèÿ, êîòîðûå íå ñîäåðæàò ñïåöèôèöèðîâàííîãî êëþ÷åâîãî ñëîâà.
OLD Ñîîáùåíèÿ, êîòîðûå íå èìåþò ôëàãà \Recent. "NOT RECENT" (ïðîòèâîïîëîæíî "NOT NEW").
ON <äàòà> Ñîîáùåíèÿ, ÷üÿ âíóòðåííÿÿ äàòà ñîîòâåòñòâóåò ñïåöèôèöèðîâàííîìó çíà÷åíèþ äàòû.
OR <êëþ÷ ïîèñêà 1> <êëþ÷ ïîèñêà 2> Ñîîáùåíèÿ, êîòîðûå ñîîòâåòñòâóþò ëþáîìó èç êëþ÷åâûõ ñëîâ ïîèñêà.
RECENT Ñîîáùåíèÿ, êîòîðûå èìåþò óñòàíîâëåííûé ôëàã \Recent.
SEEN Ñîîáùåíèÿ, êîòîðûå èìåþò óñòàíîâëåííûé ôëàã \Seen.
SENTBEFORE <äàòà> Ñîîáùåíèÿ, ÷üå ñîäåðæèìîå çàãîëîâêà, ñîîòâåòñòâóåò äàòå ðàíåå ñïåöèôèöèðîâàííîãî çíà÷åíèÿ [RFC-822].
SENTON <äàòà> Ñîîáùåíèÿ, ÷üå ñîäåðæèìîå çàãîëîâêà, ñîîòâåòñòâóåò ñïåöèôèöèðîâàííîé äàòå [RFC-822]
SENTSINCE <äàòà> Ñîîáùåíèÿ, ÷üå ñîäåðæèìîå çàãîëîâêà, ñîîòâåòñòâóåò [RFC-822]: ñïåöèôèöèðîâàííîìó çíà÷åíèþ äàòû èëè ïîçæå.
SINCE <äàòà> Ñîîáùåíèÿ, ÷üÿ âíóòðåííÿÿ äàòà ñîîòâåòñòâóåò èëè ïîçæå ñïåöèôèöèðîâàííîãî çíà÷åíèÿ.
SMALLER <n> Ñîîáùåíèÿ ñ ðàçìåðîì [RFC-822] ìåíüøå ÷åì ñïåöèôèöèðîâàííîå ÷èñëî îêòåòîâ.
SUBJECT <ñòðîêà> Ñîîáùåíèÿ, êîòîðîå ñîäåðæèò ñïåöèôèöèðîâàííóþ ñòðîêó â ïîëå SUBJECT çàãîëîâêà.
TEXT <ñòðîêà> Ñîîáùåíèÿ, êîòîðûå ñîäåðæàò ñïåöèôèöèðîâàííóþ ñòðîêó â çàãîëîâêå èëè òåëå ñîîáùåíèÿ
TO <ñòðîêà> Ñîîáùåíèÿ, êîòîðûå ñîäåðæàò ñïåöèôèöèðîâàííóþ ñòðîêó â ïîëå çàãîëîâêà TO.
UID <íàáîð ñîîáùåíèé> Ñîîáùåíèÿ ñ óíèêàëüíûìè èäåíòèôèêàòîðàìè, ñîîòâåòñòâóþùèìè çàäàííîìó çíà÷åíèþ èäåíòèôèêàòîðà.
UNANSWERED <>Ñîîáùåíèÿ, êîòîðûå íå èìåþò ôëàãà \Answered.
UNDELETED Ñîîáùåíèÿ, êîòîðûå íå èìåþò ôëàãà \Deleted.
UNDRAFT Ñîîáùåíèÿ, êîòîðûå íå èìåþò ôëàãà \Draft.
UNFLAGGED Ñîîáùåíèÿ, êîòîðûå íå èìåþò ôëàãà \Flagged.
UNKEYWORD <ôëàã> Ñîîáùåíèÿ, êîòîðûå íå ñîäåðæàò çàäàííûõ êëþ÷åâûõ ñëîâ.
UNSEEN Ñîîáùåíèÿ, êîòîðûå íå èìåþò ôëàãà \Seen.

Ïðèìåð: C: A282 SEARCH FLAGGED SINCE 1-Feb-1994 NOT FROM "Smith"
S: * SEARCH 2 84 882
S: A282 OK SEARCH completed

5.4.5. Êîìàíäà FETCH

Àðãóìåíòû: íàáîð ñîîáùåíèé,
èìåíà èíôîðìàöèîííûõ ñîîáùåíèé.
Îòêëèêè: íåìàðêèðîâàííûå îòêëèêè: FETCH
Ðåçóëüòàò: OK - îïåðàöèÿ óñïåøíî çàâåðøåíà;
NO - êîìàíäà íå ïðîøëà: íå óäàëîñü äîñòàâèòü ýòè äàííûå;
BAD - êîìàíäà íåèçâåñòíà èëè íåâåðåí àðãóìåíò.

Êîìàíäà FETCH èçâëåêàåò äàííûå, ñîîòâåòñòâóþùèå ñîîáùåíèþ â ïî÷òîâîì ÿùèêå.  êà÷åñòâå äîñòàâëÿåìûõ äàííûõ ìîæåò âûñòóïàòü îòäåëüíûé àòîì èëè ñïèñîê ýëåìåíòîâ, ïîìåùåííûõ â ñêîáêè.  íàñòîÿùåå âðåìÿ îïðåäåëåíû ñëåäóþùèå òèïû äàííûõ, êîòîðûå ìîãóò áûòü äîñòàâëåíû:

ALL Ýêâèâàëåíòíî: (FLAGS INTERNALDATE RFC822.SIZE ENVELOPE)
BODY Íåðàñøèðÿåìàÿ ôîðìà BODYSTRUCTURE.
BODY[

Portable - Autodata Portable

Autodata Portable is a powerful diagnostic tool that offers automotive professionals a comprehensive platform for troubleshooting and repairing vehicles. Its extensive vehicle coverage, diagnostic features, and repair information make it an essential solution for independent repair shops, dealerships, and mobile mechanics. By investing in Autodata Portable, automotive businesses can improve diagnostic efficiency, increase technician productivity, and enhance customer satisfaction.

Autodata Portable is a cutting-edge, software-based diagnostic tool designed for automotive professionals. Developed by Autodata, a leading provider of technical information and diagnostic solutions for the automotive industry, Autodata Portable offers a comprehensive platform for troubleshooting and repairing vehicles. This report provides an overview of Autodata Portable, its features, benefits, and applications. autodata portable