IMAP

**IMAP** (**internetisõnumitele juurdepääsu protokoll**, ingl *Internet Message Access Protocol*) on rakenduskihi internetiprotokoll, mis võimaldab meilikliendil juurdepääsu meiliserveris olevatele elektronkirjadele. Tänapäeval on kasutusel protokolli neljas versioon IMAP4rev1, mis on kirjeldatud kommentaarinõudes RFC 3501.

IMAP-protokolli põhiline disainieesmärk on tagada mugav e-postkasti kirjade haldus eri seadmete vahel. Selleks hoitakse e-kirju serveris ning muutus ühes seadmes kajastub ka teises. IMAP-server kasutab porti 143. Turvalisema ühenduse jaoks transpordikihi turbeprotokolli (TLS/SSL) kaudu kasutatakse porti 993 , mis on reserveeritud IMAPSi (ingl *IMAP over SSL*) jaoks.

IMAP-protokolli toetavad peaaegu kõik moodsad meilikliendid ja -serverid. IMAP ja POP on kaks kõige standardsemat protokolli, mis toimetavad elektronkirjad seadmesse . Samuti ka paljud veebimeili teenust pakkuvad firmad nagu näiteks Gmail, Microsoft Outlook ja Yahoo! Mail toetavad ka IMAP- ja POP-protokolle.

## Sissejuhatus
Praeguseks on välja arendatud IMAPi protokoll, mis on laialdaselt kasutusele võetud. Isegi pikaaegsed POPi protokolli toetajad on IMAPi trendiga kaasa läinud. Inimesed kasutavad IMAPit aina enam, sest see on ainus paindlik ja kasutajate nõudmisi rahuldav juurdepääsuprotokoll.

Tänu IMAPi protokollile on võimalik meile lugeda ja saata igal pool.

## Ajalugu
Mark Crispin disainis IMAPi protokolli, alternatiivina POPi protokolli kõrvale.
IMAP tähendas varem interaktiivset meili juurdepääsu protokolli (ingl *Interactive Mail Access Protocol*) (RFC 1064) või meili juurdepääsu protokolli (ingl *Interim Mail Access Protocol*).

**IMAPi loomise tähtsamad teetähised**

**1986 **
Luuakse esimest korda IMAPi protokoll Stanfordi ülikoolis, kasutades programmeerimiskeelt Interlisp ja serverit DEC-20.

**1987 **
Defineeritakse IMAP2, uuendatakse klienti ja serverit. Võetakse kasutusele UNIXi server.

**1988 **
Juulis avaldatakse esimest korda IMAPi protokolli kohta kirjeldus, kommentaarinõue RFC 1064.

**1989 **
IMAPi looja Mark Crispin võetakse Washingtoni ülikooli tööle.

**1990 **
Tehakse ümber IMAP2 ja augustis avaldatakse kommentaarinõue RFC 1176.

**1991 **
Lisatakse MIME (universaalsed internetiposti laiendused, ingl *Multipurpose Internet Mail Extensions*) tugi, selle alusel moodustatakse IMAP2bis.

**1992 **
Washingtoni ülikool arendab välja IMAP2bis serveri. Meiliklient Pine 2.0 toetab IMAPi protokolli.

**1994 **
Avalikustatakse IMAP4 kommentaarinõuded RFC 1730, RFC 1731, RFC 1732, RFC 1733. IMAP4 protokoll tunnistatakse interneti standardiks.

**1999 **
IMAP4 soovitused avalikustatakse, kommentaarinõue RFC 2683.

**2003 **
Saab valmis IMAPi versioon 4 redigeering 1 (IMAP 4rev1), kommentaarinõue RFC 3501.

## Eelised POPi ees
* **Elektronkirjadele juurdepääs eri seadmetes ühel ajal**

IMAPi protokolliga hoitakse kirjad serveris ja alla laaditakse koopia ning hoitakse kirju omavahel sünkroonis. POPi protokolli puhul laaditakse kirjadele juurdepääsuks kirjad lokaalsesse seadmesse, seejärel kirjad serverist kaovad. IMAPi protokoll tagab kõikides seadmetes (nt. lauaarvutis ja nutitelefonis) sama seisu, sest elektronkirju hoitakse serveris. Näiteks kui kohvikus vaadata oma kirju teisest seadmest, siis seal on samad saadetud ja salvestatud kirjad.

* **Palju meilikaustu**

Üks kõige nõutavam funktsioon IMAPi protokolli juures on võimalus luua kirjade jaoks eri meilikaustu, näiteks "Mustandid", "Saadetud" või mõni ise loodud kaust, nt "Perekond". Sissetulevaid kirju on võimalik filtreerida soovitud meilikaustadesse teatud reeglite alusel. Kasutajal on võimalik kirju vabalt tõsta meilikaustadesse nii, nagu ta ise soovib.

* **Lokaalsed e-postkastid**

Paljud meilikliendid toetavad võimalust lugeda oma kirju ka siis, kui internetiühendus puudub. Meiliklient laadib kirjad lokaalsesse seadmesse, kasutajal on võimalik neid hallata ning internetiühenduse taastumisel sünkroonitakse e-postkastid serveri omaga.

* **E-postkastid eri serverites**

IMAPi meilikliendid lubavad e-postkaste hallata mitme eri serveri vahel. Lisaks on võimalus kirju tõsta ühest serverist teise ja vastupidi.

* **Elektronkirjade oleku lipud**

E-postkastis on kirju võimalik sildistada, näiteks "tähtis", "vastatud" või "mustand". Kirjade sildistamise abil saavad kasutajad oma kirjadest parema ülevaate.

* **E-postkasti oleku uuendused**

IMAP eeldab, et kasutaja tahab alati teada, kui mõni uus kiri on tulnud või on tehtud muudatus mõnes teises seadmes IMAPi meilikliendiga. Kui e-postkastis toimub mõni muudatus, võib server meiliklienti teavitada, näiteks "Teil on lugemata n kirja" või teatud isikult on kiri tulnud.

## IMAPi puudused
* **Internetiühendus**

Mõned inimesed toovad IMAPi protokolli juures puuduseks, et kirju saab lugeda vaid internetiühenduse olemasolul . Samas POPi protokolli kasutades ei ole internetiühendus vajalik, sest kasutaja kirju hoitakse lokaalses arvutis, kuid uusi kirju internetiühenduse puudumisel juurde ei tule.

* **Meiliserveris kirjade talletamine**

Kasutajate e-postkastide kettalimiite piiratakse, sest kõikide IMAPi kasutajate kirjad asuvad serveris.

* **Võimekas server**

Suurte firmade serverid peavad üheaegselt hakkama saama miljonite kirjade ja tuhandete IMAPi ühendustega. Samuti peab meiliserver opereerima kasutajate otsingute ja kopeerimistega, mida kasutajad sooritavad. See kõik nõuab märkimisväärset serveri muutmälu ja kõrget sisend/väljund vastupidavust. Courier' IMAPi server kasutab ühe IMAPi seansi jaoks 2 MB muutmälu, siis 2500 IMAPi kliendi puhul jääb 4 GB-st muutmälust väheseks. POP3 saaks sama muutmälu korral hakkama 25 000 kliendiga, sest kirjade allalaadimisel vabastatakse serveri ressursid.

## IMAPi komponendid
### Töörežiimid

* **Ühendusega**

Elektronkirjad jäetakse meiliserverisse ja meiliklient töötleb neid. Meiliklient on seansi jooksul serveriga ühenduses senikaua, kui kasutaja otsustab seansi lõpetada.

* **Ühenduseta**

Võib võrrelda postkontoriga: isik läheb postkontorisse, toob ära oma kirjad ja postkast jääb tühjaks. Kasutaja loob ühenduse meiliserveriga, kontrollib, kas on kirju, laadib alla uued kirjad ja katkestab ühenduse.

* **Väljalülitatud**

Internetiühenduse puuduse korral tehakse meilikliendis kirjadega muudatused. Kui tekib internetiühendus, siis informatsioon sünkroonitakse meiliserveri omaga.

### Käsud
IMAP kasutab suhtluseks eri käske, mis on defineeritud kommentaarinõudes RFC 3501. Neist tuntumad:

* `LOGIN` – argumendid on kasutajanimi ja parool, toimub kasutaja autentimisprotsess.
* `SELECT` – argumendiks meilikaust, millele kasutaja soovib ligi pääseda.
* `CREATE` – argumendiks meilikaust, mida kasutaja soovib luua.
* `DELETE` – argumendiks meilikaust, mida kasutaja soovib kustutada.
* `FETCH` – tuuakse kirjaga seotud andmed e-postkasti.

### Seisundid
* **Autentimata seisund**

Algab kohe, kui luuakse ühendus. Näiteks kui meilikliendile luuakse esimest korda meiliserveriga ühendus.

* **Autenditud seisund**

Algab, kui kasutaja autendib edukalt. Näiteks kui tekib viga meilikausta valimisel.

* **Valitud seisund**

Algab, kui meilikaust on edukalt valitud. Näiteks kui valitakse meilikaust "Saadetud kirjad" ning saadetud kirjad kuvatakse.

* **Välja logitud seisund**

Algab, kui saadetakse `LOGOUT` käsk serverile. See käsk saadetakse serverile, kui kasutaja soovib välja logida või seanss aegub.

### E-kirja atribuudid

* **Kirja järjendi number**

E-postkastis olevad kirjad indekseeritakse, algab numbrist 1 ja suurendatakse järjest ühe võrra. Näiteks kui kiri kustutatakse, siis kõik suurema järjendi numbriga kirjadel vähendatakse järjendi numbrit ühe võrra.

* **UID (unikaalne identifikaator)**

32-bitine kirja identifikaator tagab kirjadele unikaalsuse. Sellega säilitatakse sama seis meilikliendis ja serveris, kui kasutaja on eri töörežiimides olnud.

* **Lipud**

E-postkastis on igal kirjal null või rohkem lippu. Lipp on mingisugune märk kirja kohta, mida kantakse IMAPi seansside vahel kaasas. IMAPi kirjade lipud võivad olla näiteks "Vastatud", "Kustutatud", "Mustandid", "Hiljutine", "Tähtis".

* **Sisemine kuupäev**

Kajastab kuupäeva ja kella, kui kiri saabus IMAPi serverisse.

* **Suurus**

Väljendatakse oktetina (8-bitisena) elektronkirjas.

## Vaata ka
*POP
*SMTP

## Viited

## Välislingid
* e-teatmik – IMAP (Internet Message Access Protocol)