IMAP

IMAP (), կիրառական մակարդակի ցանցային պրոտոկոլ է՝ էլեկտրոնային փոստ մուտք գործելու և դրա հետ աշխատելու համար։ Հիմնվում է TCP տրանսպորտային պրոտոկոլի վրա և օգտագործում է 143 պորտը։

Ստեղծվել է 1986 թվականին Վաշինգտոնի համալսարանում՝ որպես այլընտրանք POP3-ին։ 
IMAP-ը օգտվողին ընձեռում է կենտրոնական սերվերի վրա գտնվող փոստարկղերի հետ աշխատելու լայն հնարավորություններ։

IMAP պրոտոկոլը օգտագործող փոստարկղային ծրագիրը կարող է մուտք գործել սերվեր և աշխատել տվյալ սերվերի փոստարկղերում գտնվող ինֆորմացիայի հետ այնպես, կարծես թե այդ ինֆորմացիան տեղակայված լինի տվյալ համակարգչի մեջ։

էլեկտրոնային հաղորդագրությունների հետ կարելի է աշխատել հենց օգտվողի (client) համակարգչից՝ առանց բոլոր հաղորդագրությունները ամբողջական տեսքով՝ սերվեր-օգտվող և օգտվող-սերվեր անընդհատ ուղարկելու անհրաժեշտության։

Հաղորդագրություններ ուղարկելու համար օգտագործվում է SMTP (Simple Mail Transfer Protocol) պրոտոկոլը։

IMAP պրոտոկոլի մշակման նպատակ 
IMAP-ը իրենից ներկայացնում է այլընտրանք POP3-ին։

POP3-ը ունի մի շարք թերություններ, և դրանցից ամենալուրջը այն է, որ օգտվողը չի կարող կառավարել սերվերի վրա գտնվող հաղորդագրությունների պահպանումը և տեղաշարժումը։

Այսինքն, որպես օրենք, բոլոր հաղորդագրությունները միանգամից բեռնվում են սերվերից օգտվողի համակարգիչ, որից հետո նրանք սերվերից հեռացվում են։ Այսինքն օգտվողը չի կարող ընտրել, թե որ նամակը ստանա, իսկ որը՝ ոչ։

POP3-ի տվյալ թերությունները շտկելու նպատակով Վաշինգտոնի համալսարանում մշակվեց նոր պրոտոկոլ, որով օգտվողներին հնարավորություն ընձեռնվեց ստանալ էլ. հաղորդագրություններ տարբեր վայրերից մեկ էլ. փոստի միջոցով, ընդ որում հաղորդագրությունները չեն բաշխվում ըստ ստացման վայրի։

Այսինքն օգտվողը կարող է նույն փոստից օգտվել աշխարհի ցանկացած ծայրում գտնվելով, և փոստի հաղորդագրությունների պարունակությունը չի փոխվում վայրից կախված՝ բոլոր հաղորդագրությունները անխտիր միշտ պահպանվում են սերվերի վրա։

Օգտվողին հնարավորություն է տրվում իր էլ. փոստում գտնվող հաղորդագրությունները և սերվերի էլեկտրոնային փոստարկղերի սպասարկման հետ կապված ֆունկցիաները կառավարել։

POP3-ի հանդեպ ունեցած առավելություններ 
POP3-ի օգտագործման ժամանակ օգտվողը միանում է սերվերին միայն այն ժամանակահատվածով, որը անհրաժեշտ է նոր հաղորդագրությունները բեռնելու համար։

IMAP-ի օգտագործման ժամանակ կապը սերվերի հետ ակտիվ է լինում այնքան ժամանակ, ինչքան ժամանակ ակտիվ է լինում օգտվողի ինտերֆեյսը, իսկ հաղորդագրությունները բեռնվում են միայն օգտվողի պահանջով։ Դա թույլ է տալիս կրճատել սերվերի արձագանքման ժամանակը այն օգտվողներին, որոնց փոստարկղերում առկա են շատ հաղորդագրություններ մեծ ծավալով։

POP պրոտոկոլի օգտագործման ժամանակ միայն մեկ օգտվող կարող է միացած լինել մի փոստարկղի, մինչ դեռ IMAP պրոտոկոլը թույլ է տալիս միևնույն փոստարկղին միևնույն ժամանակ մի քանի օգտվողների միացում։

IMAP-ը նաև հնարավորություն է տալիս օգտվողին հետևել փոփոխություններին, որոնք կատարում են իր հետ միաժամանակ միացած մյուս օգտվողները։ Դրոշակային համակարգի շնորհիվ, որը իրականացված է IMAP4-ում, օգտվողը ինֆորմացիա է ստանում հաղորդագրության վիճակի մասին(նոր, կարդացված, հեռացված, սպամ, պոտենցիալ վտանգավոր և այլն)։ Դրոշակների մասին ինֆորմացիան պահպանվում է սերվերի վրա։

IMAP4-ից օգտվողները կարող են փոստարկղերը ստեղծել, վերանվանել, հեռացնել և հաղորդագրություններ տեղափոխել մի էլ. փոստարկղից մյուսը։ Բացի դրանից, կարելի է օգտագործել IMAP4 Access Control List (ACL) Extension ընդլայնումը՝ տարբեր օգտվողների՝ տարբեր փոստարկղեր մուտք գործելու իրավունքների ղեկավարման համար։

Հաղորդագրությունների որոնումը տեղի է ունենում սերվերում։

IMAP4-ը ունի բացահայտ ընդլայնման մեխանիզմ։

IMAP պրոտոկոլի տարբերակներ 
 Original IMAP (1986 թ. սպեցիֆիկացիան բացակայում է)
 IMAP2 (1988 թ. - RFC 1064, 1990 թ. - RFC 1176)
 IMAP3 (1991 թ. - RFC 1203)
 IMAP2bis (սպեցիֆիկացիան գոյություն ունի միայն 1993 թ. սևագիր տարբերակով)
 IMAP4 (վերանվանված IMAP2bis)

Հաղորդագրությունները և դրանց ատրիբուտներ 
IMAP-ը աշխատում է միայն հաղորդագրությունների հետ և չի պահանջում որևէ փաթեթներ հատուկ վերնագրերով։ 
Ամեն հաղորդագրություն ունի իր հետ կապված մի քանի ատրիբուտ։ Այս ատրիբուտները կարող են նույնականացվել ինչպես առանձին առանձին, այնպես էլ մյուս ատրիբուտների հետ միասին։

UID 
Ամեն հաղորդագրության՝ պայմանականորեն համապատասխանեցվում է 32-բիտանի կոդ, որը ունիկալ նույնացուցչի(իդենտիֆիկատորի) հետ համատեղ օգտագործելով կազմում են 64-բիտանի հաջորդականություն, որը կարող է երաշխավորել փոստարկղի մեջ գտնվող հաղորդագրության միանշանակ նույնականացումը(իդենտիֆիկացիան)։ UID-ը ասոցացվում է էլ. փոստարկղի հետ և ուղարկվում է uidvalidity արձագանքի (ok) տեսքով՝ էլ. փոստարկղի ընտրման փուլում։ Եթե անցյալ սեսսիայի UID-ը չի կարող օգտագործվել ինչ որ պատճառով, ապա UID-ը պետք է ինկրեմենտացվի(մեծացվի մեկով)։ Հաղորդագրության UID-ը չպետք է փոխվի սեսսիայի սահմաններում, խորհուրդ չի տրվում փոխել այն նաև սեսսիայից սեսսիա։ Բայց եթե հնարավոր չէ պահպանել հաղորդագրության UID-ը մյուս սեսսիայում, ապա հաջորդ սեսսիան պետք է ունենա նոր ունիկալ կոդ, որը պետք է մեծ լինի ցանկացած օգտագործված հաղորդագրության UID-ից։

Հաղորդագրության հերթական համար 
Հաղորդագրության համարը էլ. փոստարկղում սկսվում է 1-ից։ Ամեն հաջորդ հաղորդագրություն, սկսած 2-ից, ունի ուղիղ 1-ով ավել հերթական համար, նախորդի համեմատ։ Սեսիայի ընթացքում թույլատրված է հաղորդագրության հերթական համարի փոփոխություն։ Օրինակ, երբ ինչ որ հաղորդագրություն հեռացվում է էլ. փոստարկղից, մնացած հաջորդ հաղորդագրությունների հերթական համարները փոփոխվում են։

Հաղորդագրությունների դրոշակներ 
Այս ատրիբուտը իրենից ներկայացնում է 0 կամ ավելի անվանավորված լեքսեմներ, փոխկապակցված տվյալ հաղորդագրության հետ։ Դրոշակը տեղադրվում է իրեն այդ ցուցակին ավելացնելով և զրոյացվում է իրեն այդ ցուցակից հեռացնելու ճանապարհով։ IMAP4.1-ում գոյություն ունեն 2 տիպի դրոշակներ՝
 Անընդհատ դրոշակ
 Տվյալ սեսսիայի ժամանակահատվածում գործող դրոշակ
Ներկա պահին գոյություն ունեն հետևյալ համակարգային դրոշակները՝
 \seen – հաղորդագրությունը կարդացված է
 \answered – հաղորդագրությանը ուղարկված է պատասխան
 \flagged – հաղորդագրությունը նշված է որպես «կարևոր»
 \deleted – հաղորդագրությունը նշված է որպես հեռացված(ջնջված)
 \draft – հաղորդագրությունը նշված է որպես «սևագիր»
 \recent – նոր հաղորդագրություն(հայտնվել է տվյալ սեսսիայի ժամանակահատվածում)

Հաղորդագրության ներքին ամսաթիվը և ժամը սերվերի վրա 
Հաղորդագրության ստացման ամսաթիվն ու ժամը։ 
 SMTP պրոտոկոլի օգնությամբ ուղարկված հաղորդագրությունների համար՝ վերջնական հասցեատիրոջը հասնելու ամսաթիվն ու ժամը
 Կրկնօրինակման(copy) հրամանով հասցված հաղորդագրությունների համար՝ հաղորդագրությունը ուղարկողի ներքին ամսաթիվն ու ժամը
 Append հրամանի օգտագործման ժամանակ՝ ամսաթիվն ու ժամը, որ տրվել են հրամանի պարամետրերում

Այլ ատրիբուտներ 
 Հաղորդագրության չափը՝ օկտետների քանակը հաղորդագրության մեջ
 Հաղորդագրության ծրարի կառուցվածքը
 Հաղորդագրության մարմնի կառուցվածքը

Օգտվողի և սերվերի փոխազդեցություն 
IMAP4.1 միացությունը ակնկալում է օգտվողի և սերվերի միջև կապի հաստատում։ Օգտվողը ուղարկում է սերվերին հրամաններ, սերվերը օգտվողին՝ հարցման կատարման մասին տվյալներ և ծանուցումներ։ Բոլոր հաղորդագրությունները՝ ինչպես սերվերի, այնպես էլ օգտվողի, ունեն տողի տեսք, որոնք վերջանում են հատուկ հաջորդականությամբ։ Ցանկացած ընթացակարգ(պրոցեդուրա) սկսվում է օգտվողի հրամանից։ Օգտվողի ցանկացած հրաման սկսվում է նախածանց-նույնացուցչից(պրեֆիկս-իդենտիֆիկատոր)(սովորաբար կարճ տառա-թվային տող, օրինակ՝ A0001, A0002 և այլն), որը կոչվում է պիտակ(tag)։ Ամեն հրամանի համար օգտվողը գեներացնում է իր պիտակը։ Հնարավոր է 2 դեպք, երբ օգտվողի կողմից ուղարկված տողը իրենից չի ներկայացնում վերջացված հրաման։ Առաջին դեպքում՝ հրամանի արգումենտը մատակարարվում է կոդով, որը և որոշում է օկտետների քանակը տողի մեջ։ Երկրորդ դեպքում՝ հրամանի արգումենտները պահանջում են արձագանք սերվերի կողմից։ Երկու դեպքում էլ սերվերը ուղարկում է հրամանի շարունակման հարցում, որը սկսվում է + սիմվոլով։ Օգտվողը պետք է վերջացնի մի հրամանի ուղարկումը, մինչ մյուսի ուղարկելը։ Սերվերի պրոտոկոլային ընդունիչը կարդում է օգտվողի կողմից ուղարկված հրմանաի տողը, իրականացնում է դրա վերլուծությունը, առանձնացնում է պարամետրերը և փոխանցում է տվյալները սերվերին։ Հրամանի վերջացման հետ մեկտեղ սերվերը ուղարկում է արձագանք։ Սերվերից օգտվողին փոխանցվող տվյալները, ինչպես նաև կարգավիճակային արձագանքները, որոնք չեն նշանակում հրամանի վերջացումը, ունեն * նախածանց և կոչվում են չպիտակավորված արձագանքներ։ Տվյալները կարող են ուղարկվել սերվերի կողմից և՛ ի պատասխան օգտվողի հրամանի, և՛ սեփական նախաձեռնությամբ։ Տվյալների ձևաչափը(ֆորմատը) կախված չէ ուղարկման պատճառից։ Արձագանքը նշանակում է հրամանի հաջող/անհաջող իրականացումը։ Այն օգտագործում է նույն պիտակը(tag), որը օգտագործվել էր ընթացակարգը(պրոցեդուրա) սկսող օգտվողի հրամանի մեջ։ Այսպիսով, եթե իրականացվում է մեկ հրամանից ավելին, սերվերի պիտակը(tag) նշում է այն հրամանը, որը կանչել է տվյալ արձագանքը։ Կան սերվերի աշխատանքի վերջացման 3 տիպի արձագանքներ՝
 ok(հաջող կատարում)
 no(անհաջող կատարում)
 bad(պրոտոկոլային սխալ, օրինակ՝ հրամանը ճանաչված չի կամ գտնված է սինտակտային սխալ)

Օգտվողի IMAP4.1-ի պրատոկոլային ընդունիչը կարդում է սերվերից ստացած արձագանքի տողը և անում է գործողություններ կախված * կամ + առաջին սիմվոլից։ Օգտվողը պետք է պատրաստ լինի ստանալ սերվերից ցանկացած արձագանք։ Սերվերից ստացված տվյալները պետք է գրված լինեն այնպես, որպեսզի օգտվողը կարողանա դրանք անմիջականորեն օգտագործել՝ առանց որևէ լրացուցիչ հարցում սերվերին ուղարկելու, ճշտելու։

IMAP սերվերի կարգավիճակներ 
IMAP4.1 սերվերը գտնվում է 4 կարգավիճակներից մեկում։ Հրամանների մեծամասնությունը կարելի է գործածել միայն որոշակի կարգավիճակներում։ Ահա վերը նշված կարգավիճակների ցուցակը՝
 Ոչ աուտենտիֆիկացված
 Աուտենտիֆիկացված
 Ընտրման
 Ելքի
Ոչ աուտենտիֆիկացված կարգավիճակում օգտվողը պետք է մուտքագրի անունը և գաղտնաբառը, մինչ նրան հասանելի կդառնա հրամանների մեծամասնությունը։ Այս կարգավիճակի անցումը իրականանում է սերվերի հետ կապ հաստատելու ժամանակ՝ առանց նախապես աուտենտիֆիկացման։ Աուտենտիֆիկացված կարգավիճակում օգտվողը նույնականացված է(իդենտիֆիկացված) և պետք է ընտրի էլ. փոստարկղը, որից հետո իրեն հասանելի կդառան հաղորդագրությունների հետ աշխատելու հրամանները։ Այս կարգավիճակի անցումը իրականանում է սերվերի հետ կապ հաստատելու ժամանակ՝ նախապես աուտենտիֆիկացմամբ, երբ տրված են բոլոր անհրաժեշտ նույնականացման(իդենտիֆիկացիոն) տվյալները կամ էլ. փոստարկղի սխալ ընտրման ժամանակ։ Համակարգը անցում է կատարում ընտրման կարգավիճակ, երբ էլ. փոստարկղի ընտրությունը բարեհաջող իրականացված է։ Համակարգը անցում է կատարում ելքի կարգավիճակ սերվերի հետ կապի ընդհատման արդյունքում՝ օգտվողի հարցման արդյունքում կամ սերվերի անկախ որոշման հետևանքով։

 Միացում առանց նախապես աուտենտիֆիկացման
 Միացում նախապես աուտենտիֆիկացմամբ
 Միացումը մերժված է
 LOGIN կամ AUTHETICATE հրամանների բարեհաջող իրականացում
 SELECT կամ EXAMINE հրամանների բարեհաջող իրականացում
 CLOSE հրամանի բարեհաջող իրականացում, կամ SELECT կամ EXAMINE հրամանների անհաջող իրականացում
 LOGOUT հրամանի իրականացում, սերվերի փակում կամ սերվերի աշխատանքի ընդհատում

IMAP պրոտոկոլի հրամաններ 
 LOGIN  Թույլ է տալիս օգտվողին IMAP սերվերի վրա գրանցման ժամանակ օգտագործել օգտվողի նույնացուցիչը(իդենտիֆիկատոր) և գաղտնաբառը սովորական տեքստային տեսքով։ Սա ամենալավ մեթոդը չէ, բայց երբեմն միակ տարբերակն է սերվերին միանալու համար։

 AUTHENTICATE  Թույլ է տալիս օգտվողին IMAP սերվերի վրա գրանցվելուց օգտագործել վավերականության ստուգման այլընտրանքային մեթոդներ։ Օգտվողների վավերականության անհատական ստուգումը պարտադիր չի հանդիսանում և ոչ բոլոր IMAP սերվերներում է իրականացրած։ Նաև այդպիսի ստուգման իրականացուման ձևերը կարող են տարբերվել կախված սերվերից։ Երբ օգտվողը մուտքագրում է AUTHENTICATE հրամանը, սերվերը պատասխանում է դրան կանչի տողով, որը ունի base64 կոդավորում։ Այնուհետեև օգտվողը պետք է պատասխան ուղարկի սերվերի վավերականացման ստուգման կանչին, նույնպես կոդավորված base64-ով։ Եթե սերվերում իրականացված չէ վավերականության ստուգման մեթոդը, որը առաջարկում է օգտվողը՝ սերվերը ներառում է իր պատասխանի մեջ NO: Դրանից հետո օգտվողը պետք է շարունակի բանակցությունները վավերականության ստուգման մեթոդի համաձայնեցման համար։ Եթե վավերականության ստուգման մեթոդը պարզելու բոլոր փորձերը անցնում են անհաջող, ապա օգտվողը փորձ է կատարում գրանցվել սերվերում LOGIN հրամանի միջոցով։

 CLOSE Փակում է էլ. փոստարկղը։ Երբ էլ. փոստարկղը փակված է, բոլոր հաղորդագրությունները, որոնք նշվել էին \DELETED դրոշակով, ֆիզիկապես հեռացվում են փոստարկղի միջից։ Պարամետրեր չունի։

 LOGOUT Վերջացնում է օգտվողի ընթացիկ նույնացուցչի համար սեանսը և փակում է բոլոր բացված էլ. փոստարկղերը։ Բոլոր հաղորդագրությունները, որոնք նշվել էին \DELETED դրոշակով, ֆիզիկապես հեռացվում են փոստարկղի միջից։

 CREATE Ստեղծում է նոր էլ. փոստարկղ։ Նոր էլ. փոստարկղերի անունները և տեղակայությունը որոշվում են սերվերի ընդհանուր հատկանիշներով։

 DELETE Օգտագործվում է էլ. փոստարկղերի համար։ IMAP սերվերը, ստանալով այս հրամանը, կփորձի հեռացնել այն փոստարկղը, որի անունը նշվել էր հրամանի մեջ որպես արգումենտ։ Էլ. փոստարկղի մեջ գտնվող բոլոր հաղորդագրությունները հեռացվում են էլ. փոստարկղի հետ միասին և վերականգնման ենթակա չեն լինում։

 RENAME Փոխում է էլ. փոստարկղի անունը։ Այս հրամանն ունի 2 արգումենտ՝ էլ. փոստարկղի անունը, որը պետք է փոխել և նոր անունը։

 SUBSCRIBE Ավելացնում է էլ. փոստարկղը օգտվողի ակտիվ էլ. փոստարկղերի ցուցկակի մեջ։ Այս հրամանի մեջ օգտագործվում է միայն 1 պարամետր՝ էլ. փոստարկղի անունը, որը պետք է ավելացնել ցուցակի մեջ։ Էլ. փոստարկղը պարտադիր չէ, որ գույություն ունենա, որպեսզի նրան հնարավոր լինի ավելացնել ակտիվ էլ. փոստարկղերի ցուցկակի մեջ՝ դա թույլ է տալիս ավեացնել ակտիվ էլ. փոստարկղերի ցուցկակի մեջ էլ. փոստարկղեր, որոնք դեռ ստեղծված չեն, կամ հեռացնել դրանք, եթե դրանք դատարկ են։

 UNSUBSCRIBE Հեռացնում է էլ. փոստարկղը օգտվողի ակտիվ էլ. փոստարկղերի ցուցկակի միջից։ Այս հրամանի մեջ ևս օգտագործվում է միայն 1 պարամետր՝ էլ. փոստարկղի անունը, որը պետք է հեռացնել օգտվողի ակտիվ էլ. փոստարկղերի ցուցակի միջից։ Ընդ որում էլ. փոստարկղը չի հեռացվում ֆիզիկապես։

 LIST Ստանալ օգտվողի բոլոր էլ. փոստարկղերի ցուցակը։ Ունի 2 պարամետր։

 LSUB Ի տարբերություն LIST հրամանի օգտագործվում է ստանալու համար բոլոր այն էլ. փոստարկղերի ցուցակը, որոնք ակտիվցվել են SUBSCRIBE հրամանի միջոցով։ Պարամետրերը նույնն են ինչ LIST հրամանինը։

 STATUS Գոյացնում է հարցում էլ. փոստարկղի ընթացիկ կարգավիճակի մասին։ Ունի 2 պարամետր. առաջինը՝ էլ. փոստարկղի անունը, որի նկատմամբ կիրառվում է հրամանը, իսկ երկրորդը՝ այն չափանիշների ցուցակը, ըստ որոնցի օգտվողը ցանկաանում է ստանալ ինֆորմացիա։ STATUS հրամանը կարող է օգտագործվել էլ. փոստարկղի ընթացիկ կարգավիճակի մասին տեղեկություն ստանալու համար՝ առանց էլ. փոստարկղը բացելու SELECT կամ EXAMINE հրամանների միջոցով։
 Օգտվողը կարող է ստանալ ինֆորմացիա հետևյալ չափանիշներով՝
 MESSAGES – էլ. փոստարկղում գտնվող հաղորդագրությունների ընդհանուր քանակը
 RECENT – \recent դրոշակով նշված հաղորդագրությունների քանակը
 UIDNEXT – UID նույնացուցիչը(իդենտիֆիկատոր), որը տրվելու է հաջորդ նոր հաղորդագրությանը
 UIDVALIDITY - էլ. փոստարկղի ունիկալ նույնացուցիչը(իդենտիֆիկատոր)
 UNSEEN – առանց \seen դրոշակի հաղորդագրությունների քանակը

 APPEND Ավելացնում է հաղորդագրությունը նշված էլ. փոստարկղի վերջում։ Որպես արգումենտներ նշվում են էլ. փոստարկղի անունը, հաղորդագրությունների դրոշակները(ոչ պարտադիր), ժամանակի պիտակը(tag) (ոչ պարտադիր) և հենց ինքը հաղորդագրությունը՝ վերնագիրը և մարմինը։
Գոյություն ունեն հաղորդագրությունների հետևյալ դրոշակները՝
 \Seen – կարդացված
 \Answered – պատասխանված
 \Flagged – շտապ
 \Deleted – նշված է հեռացման համար
 \Draft – սևագիր
 \Recent – նոր հաղորդագրություն, այն եկել է էլ. փոստարկղ անցած սեանսի ավարտից հետո
Եթե հրամանի մեջ նշված են դրոշակներ, ապա նրանք սահմանվում են ավելացվող հաղորդագրության համար։ Ամեն դեպքում հաղորդագրության համար սահմանվում է \Recent դրոշակը։ Եթե հրամանի մեջ տրված է ժամանակի պիտակը(tag), ապա այդ ժամանակը կսահմանվի որպես հաղորդագրության ստեղծման ժամ, հակառակ դեպքում որպես ստեծման ժամ սահմանվում է ընթացիկ ժամը։

Քանի որ հաղորդագրությունը մեկ տողից ավելի է, գործածվում են լիտերալներ։ 
Օրինակ՝
	C       A003 APPEND saved-messages (\Seen) {247}
	S       + Ready for literal data
	C       Date: Sat, 28 May 2012 21:03:17 -0800 (PST)
	C       From: Grish Meliksetyan <test@testsite.AM>
	C       Subject: Afternoon meeting
	C       To: user@testdomain.info
	C       Message-Id: <B27397-0100000@testsite.AM>
	C
	C       Hello Armen, do you think we can meet at 13:00 tomorrow?
	S       A003 OK APPEND completed

 MULTIAPPEND  Ընդլայնումը, նկարագրված RFC 3502-ում, թույլ է տալիս մեկ հրամանով էլ. փոստարկղ ավելացնել մի քանի հաղորդագրություններ։

 CHECK  Էլ. փոստարկղում տեղադրում է ստուգողական կետը։ Ցանկացած գործողություն, ինչպես օրինակ՝ տվյալների պահպանումը սերվերի հիշողությունից նրա կոշտ սկավառակի վրա, պետք է կատարվեն էլ. փոստարկղի որոշակի կարգավիճակում գտնվելուց։ Հենց էլ. փոստարկղի վրա սկավառակային կամ նման այլ գործողությունների կատարումից հետո էլ ամբողջականության ստուգման համար գործածվում է CHECK հրամանը։ Այս հրամանը գործածվում է առանց պարամետրերի։

 EXPUNGE  Էլ. փոստարկղից հեռացնում է բոլոր այն հաղորդագրությունները, որոնք նշված են եղել \DELETED դրոշակով, ընդ որում էլ. փոստարկղը չի փակվում։ Սերվերի պատասխանը EXPUNGE հրամանին ներկայացնում է իրենից էլ. փոստարկղի նոր վիճակի մասին հաշվետվություն։

 SEARCH  Ակտիվ էլ. փոստարկղի մեջ հաղորդագրությունների փնտրում որոշակի չափանիշներով՝ հետագա արդյունքների ցուցադրմամբ հաղորդագրության հերթական համարի տեսքով։ Հնարավոր է փնտրում հաղորդագրության մարմնի մեջ գտնվող ինչ որ տեքստային տողի, կամ հաղորդագրություններ, որոնք ունեն որոշակի դրոշակ, կամ որոնք ստացված են եղել մինչև որոշակի ժամանակահատվածը և այլն։

 FETCH  Էլ. հաղորդագրության տեքստը ստանալը։ Այս հրամանը գործածվում է միայն հաղորդագրությունների ցուցադրման համար։ Ի տարբերություն POP3-ի, IMAP օգտագործողը չի պահպանում հաղորդագրության կրկնօրինակը օգտվողի համակարգչի մեջ։

 STORE  Հաղորդագրության մասին ինֆորմացիայի փոփոխում։

 COPY  Մի էլ. փոստարկղից մի ուրիշ հաղորդագրության կրկնօրինակում։

 UID  Օգտագործվում է FETCH, COPY, STORE կամ SEARCH հրամանների հետ համատեղ։ Այս հրամանի օգնությամբ այդ հրամաններում կարելի է օգտագործել իրական UID նունարկիչ(իդենտիֆիկացիոն) համարներ, հաղորդագրությունների միջակայքից թվերի շարքի փոխարեն։

 CAPABILITY  Հարցում IMAP սերվերից նրա հնարավորությունների մասին։

 NOOP  Հրամանը ոչինչ չի անում։ Այն կարող է օգտագործվել սեանսը ակտիվ պահելու համար, որպեսզի այն չավարտվի սպասման ժամանակաչափի ժամանակով։ Սերվերի պատասխանը NOOP հրամանին պետք է միշտ լինի դրական։ Քանի որ սերվերը պատասխանի մեջ հաճախ վերադարձնում է այս կամ այն հրամանի կատարման ընթացիկ վիճակը, ապա NOOP հրամանը միանգամայն կարելի է օգտագործել որպես տրիգգեր՝ սերվերի ընթացիկ վիճակից տեղեկանալու համար։

Տես նաև 
Էլեկտրոնային փոստ

Արտաքին հղումներ 
 RFC 3501 Internet Message Access Protocol v4rev1 
 The IMAP Connection 
 Howto: Configuring KMail with Gmail - IMAP and Disconnected IMAP
 IMAP Պրոտոկոլ  
 Դասախոսություն։ IMAP Պրոտոկոլ 
 http://citforum.ru/nets/semenov/4/44/imap4443.shtml 

Համացանցային կանխագրեր
Էլեկտրոնային փոստ