IMAP | |
---|---|
Név | Internet Message Access Protocol |
Szint ( az OSI modell szerint ) | Alkalmazott |
Család | TCP / IP |
Létrehozva: | 1986 |
Port/ID | 143/ TCP , 993/TCP (IMAP SSL felett) |
A protokoll célja | Hozzáférés a postafiókokhoz |
Leírás | RFC 3501 |
Főbb megvalósítások (kliensek) | MUA ( Outlook Express , Opera , Mozilla Thunderbird , The Bat!, Claws Mail , mutt stb.) |
Alapvető megvalósítások ( szerverek ) | UW IMAP , Futár , Cyrus , Dovecot |
Az IMAP ( Internet Message Access Protocol ) egy alkalmazási rétegbeli protokoll az e-mailek elérésére .
A TCP szállítási protokollon alapul, és a 143-as portot használja , míg az IMAPS (IMAP over SSL ) a 993-as portot használja. Az IMAP csak üzenetekkel működik, és nem igényel speciális fejléceket tartalmazó csomagokat [1] .
Az IMAP bőséges lehetőséget biztosít a felhasználónak a levelezőszerveren található postafiókokkal való munkavégzéshez . Az ezt a protokollt használó levelezőprogram úgy éri el a kiszolgáló levelezési tárolóját , mintha ez a levelezés a címzett számítógépén lenne. Az e- mailek a felhasználó számítógépéről ( kliensről ) kezelhetők anélkül , hogy az e-mailek teljes tartalma folyamatosan oda -vissza kerülne a szerverről .
Az SMTP protokollt általában üzenetek küldésére használják , mivel a natív IMAP send parancs, az APPEND, nem tartalmaz szolgáltatási információk átvitelére szolgáló mechanizmust [1] .
Az ASCII -tartományon kívüli karaktereket tartalmazó postaláda- (mappa) -neveknél az UTF-7 kódolás [1] módosított változata használatos .
Az IMAP protokoll a POP alternatívája kezdetleges küldési képességekkel.
A POP protokoll első verziójának számos hiányossága volt, ezek közül a legsúlyosabb az volt, hogy nem volt képes kezelni az üzenetek mozgását és tárolását a szerveren. A POP -ban az üzenetek egyszerre töltődnek le a levelezőszerverről, majd törlődnek a szerverről, vagyis nincs lehetőség a fogadni kívánt üzenetek kiválasztására.
A POP ezen funkciójával kapcsolatos problémák megoldására 1986-ban Mark Crispin ( eng. Mark Crispin ), aki akkor a Stanford Egyetemen dolgozott , új protokollt hozott létre a szerverről érkező levelek fogadására [2] .
Az új protokoll lehetővé tette, hogy a felhasználók több helyen is kapjanak e-maileket ugyanabból a postafiókból. A felhasználó lehetőséget kap a postafiókjában lévő üzenetek kezelésére, valamint további funkciókat kap a szerveren lévő postafiókok kiszolgálására.
A jövőben a POP protokoll véglegesítése megtörtént, a POP3 -ban (POP 3-as verzió) lehetséges a kiválasztott üzenetek fogadása a szerverről és a kiválasztott üzenetek a szerveren hagyása. Az IMAP és a POP legutóbbi verzióiban a fő különbség a felhasználó számára az, hogy az IMAP4 hozzáférhet a szerveren lévő különböző levélmappákban lévő levelekhez, és áthelyezheti a leveleket közöttük, míg a POP3 a kiszolgálón lévő betűket egy lineáris listában lévő számok alapján éri el (vagyis csak egy levélmappával működik).
Az IMAP protokoll verziói [2]POP3 használatakor az ügyfél csak addig csatlakozik a szerverhez, ameddig az új üzenetek letöltéséhez szükséges. IMAP használatakor a kapcsolat nem szakad meg, amíg a felhasználói felület aktív, és az üzenetek csak a kliens kérésére töltődnek le. Ez csökkenti azoknak a felhasználóknak a válaszidejét , akiknek sok nagy üzenet van a postaládájában.
A POP protokoll megköveteli, hogy a jelenlegi kliens legyen az egyetlen, amely csatlakozik a fiókhoz. Az IMAP lehetővé teszi, hogy egyidejűleg több kliens is hozzáférjen egy postafiókhoz, és lehetővé teszi az ügyfél számára, hogy nyomon kövesse a többi, egyidejűleg csatlakoztatott kliens által végrehajtott változtatásokat.
Az IMAP4-ben definiált jelzőrendszernek köszönhetően a kliens nyomon követheti egy üzenet állapotát (elolvasva, válaszolva, törölve stb.); A zászló adatait a szerver tárolja.
Az IMAP4 kliensek létrehozhatnak, átnevezhetnek és törölhetnek postafiókokat, valamint áthelyezhetik az üzeneteket a postafiókok között. Alternatív megoldásként használhatja az "IMAP4 Access Control List ( ACL ) kiterjesztést" ( RFC 4314 ) a postafiók-hozzáférési jogok kezelésére.
Az üzenetek keresése a szerver oldalon történik.
Az IMAP4 explicit kiterjesztési mechanizmussal rendelkezik. [3]
Az IMAP csak üzenetekkel működik, és nem igényel speciális fejléceket tartalmazó csomagokat. Minden üzenethez több attribútum tartozik. Ezek az attribútumok definiálhatók külön-külön vagy más attribútumokkal kombinálva.
Minden üzenethez hozzá van rendelve egy 32 bites kód , amely egy egyedi azonosítóval együtt használva egy 64 bites sorozatot alkot, amely garantálja az üzenet egyedi azonosítását a postafiókban. Minél később érkezett meg az üzenet, annál nagyobb az UID.
Az UID egy postafiókhoz van társítva, és uidvalidity (ok) válaszkódként kerül elküldésre a postafiók kiválasztásának fázisában. Ha az előző munkamenet UID- je valamilyen okból nem használható, az UID-t növelni kell.
Az üzenet UID-je nem változhat egy munkameneten belül, és nem változhat munkamenetről munkamenetre. Ha azonban nem lehetséges az üzenet UID-jét egy következő munkamenetben tárolni, akkor minden további munkamenetnek új egyedi azonosító kóddal kell rendelkeznie, amelynek nagyobbnak kell lennie, mint bármely korábban használt UID.
A postafiókban lévő üzenetek sorszáma 1-gyel kezdődik. A másodiktól kezdve minden üzenet sorszáma pontosan 1-gyel nagyobb, mint az azt megelőzőé.
Az üzenet sorszámának megváltoztatása egy munkamenet során megengedett. Például, ha egy üzenetet törölnek egy postafiókból, az összes következő üzenet száma megváltozik.
Ez az attribútum az adott üzenethez társított nulla vagy több elnevezett token listája . A zászlót úgy állítja be, hogy hozzáadja a listához, és visszaállítja az eltávolításával. Az IMAP 4.1-ben kétféle jelző létezik. A zászló lehet állandó vagy csak a munkamenet időtartama alatt aktív.
A rendszerjelző olyan zászló, amelynek neve a protokoll specifikációjában van meghatározva. Minden rendszerjelző karakterrel kezdődik \.
Jelenleg a következő rendszerjelzők vannak meghatározva:
Az üzenet beérkezésének időpontja és dátuma. Ha az üzenetet az SMTP protokollon keresztül kézbesítették, a végső célállomásra történő kézbesítés dátuma és időpontja. A másolás paranccsal kézbesített üzeneteknél az üzenet küldőjének belső dátuma és időpontja. A parancs használatakor a append parancs paraméterei által megadott dátum és idő.
Az IMAP 4.1-es kapcsolat magában foglalja az ügyfél és a szerver közötti kapcsolat létrehozását . A kliens parancsokat küld a szervernek, a szerver adatokat és értesítéseket küld a kérés állapotáról a kliensnek. Minden üzenet, mind a kliens, mind a szerver, karakterláncok formájában van, amelyeket egy speciális szekvencia zár le.
Minden eljárás az ügyfél parancsával kezdődik. Bármely ügyfélparancs egy azonosító előtaggal (általában egy rövid alfanumerikus karakterlánccal, például , A0001stb. A0002) kezdődik, amelyet címkének neveznek. Az ügyfél minden parancshoz saját címkét állít elő.
Két olyan eset van, amikor az ügyfél által küldött karakterlánc nem teljes parancsot jelent. Az elsőben a parancs argumentuma egy kóddal van ellátva, amely meghatározza a karakterláncban lévő oktettek számát . A másodikban a parancs argumentumai választ igényelnek a szervertől. Mindkét esetben a kiszolgáló parancsfolytatási kérelmet küld a karakterrel kezdődően +.
A kliensnek végre kell hajtania egy parancs elküldését, mielőtt egy másikat küldene.
A szerver protokoll vevője beolvassa a klienstől kapott parancssort, elemzi, kibontja a paramétereket és elküldi az adatokat a szervernek. Amikor a parancs befejeződik, a szerver választ küld.
A szerver által a kliensnek továbbított adatok, valamint az állapotválaszok, amelyek nem jelzik a parancs befejezését, előtaggal * vannak ellátva , és címkézetlen válaszoknak nevezzük.
Az adatokat a szerver küldheti el kliens parancsra válaszul vagy saját kezdeményezésére. Az adatformátum nem függ a küldés okától.
A válasz a művelet sikerességét/sikertelenségét jelzi. Ugyanazt a címkét használja, mint az eljárást elindító ügyfélparancs. Így egynél több parancs végrehajtása esetén a szervercímke a választ okozó parancsra mutat. Háromféle szerverleállási válasz létezik: ok(siker), no(hiba), bad(protokollhiba, pl. a parancsot nem ismeri fel, vagy szintaktikai hibát észlelt).
Az IMAP 4.1 kliensprotokoll figyelő beolvassa a válasz karakterláncot a kiszolgálóról, és az első *vagy karakter szerint intézkedik +.
A kliensnek készen kell állnia arra, hogy bármikor fogadjon bármilyen választ a szervertől. A szerveradatokat úgy kell megírni, hogy a kliens közvetlenül tudja használni azokat anélkül, hogy keresési kéréseket küldene a szervernek.
Az IMAP 4.1 szerver a négy állapot egyikében van.
A legtöbb parancs csak bizonyos állapotokban használható.
Hitelesítetlen állapotban az ügyfélnek meg kell adnia egy felhasználónevet és jelszót, mielőtt a legtöbb parancs elérhetővé válna. Ebbe az állapotba akkor lép át, ha a kapcsolat előzetes hitelesítés nélkül jön létre.
Hitelesített állapotban a kliens azonosításra kerül, és ki kell választania egy postafiókot, amely után az üzenetekkel való munkavégzés parancsai elérhetővé válnak számára. Ebbe az állapotba az átmenet akkor következik be, ha létrejön egy előzetes hitelesítéssel rendelkező kapcsolat , amikor az összes szükséges azonosító adatot kiadják, vagy ha véletlenül egy postafiókot választanak ki.
A rendszer a postafiók sikeres kiválasztásakor kiválasztási állapotba lép.
A rendszer akkor lép kilépési állapotba , ha a kapcsolat kliens kérésére vagy a szerver független döntése miatt megszakad.
URI- sémák | |
---|---|
Hivatalos | |
nem hivatalos |
TCP / IP protokollok az OSI modell rétegei szerint | Alapvető|
---|---|
Fizikai | |
csatornázott | |
hálózat | |
Szállítás | |
ülés | |
Reprezentáció | |
Alkalmazott | |
Egyéb alkalmazva | |
A TCP és UDP portok listája |