IMAP

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt hozzászólók, és jelentősen eltérhet a 2018. augusztus 1-jén felülvizsgált verziótól ; az ellenőrzések 47 szerkesztést igényelnek .
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 célja

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]

Előnyök a POP3-mal szemben

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]

Üzenetek és attribútumaik

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.

UID

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.

Az üzenet sorszáma

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.

Üzenetjelzők

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 belső dátuma és időpontja a szerveren

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ő.

Egyéb attribútumok

Interakció a kliens és a szerver között

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 szerver állapota

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.

  1. Csatlakozás előzetes hitelesítés nélkül
  2. Csatlakozás előhitelesítéssel
  3. A kapcsolat elutasítva
  4. A parancs sikeres teljesítése LOGINillAUTHENTICATE
  5. A parancs sikeres teljesítése SELECTillEXAMINE
  6. Parancsvégrehajtás CLOSEvagy sikertelen parancs SELECTillEXAMINE
  7. Parancs végrehajtása LOGOUT, a kiszolgáló bezárása vagy a kapcsolat megszakítása

IMAP protokoll parancsok

BELÉPÉS Lehetővé teszi az ügyfél számára, hogy egyszerű szöveges felhasználói azonosítót és jelszót használjon, amikor bejelentkezik az IMAP-kiszolgálóra. Ez nem a legjobb módszer, de néha ez az egyetlen módja a szerverhez való csatlakozásnak. HITELESÍTÉS Lehetővé teszi a kliens számára, hogy alternatív hitelesítési módszereket alkalmazzon az IMAP-kiszolgálón való regisztráció során. Az egyéni felhasználói hitelesítés nem kötelező, és nem minden IMAP-kiszolgáló támogatja. Ezenkívül az ilyen ellenőrzés végrehajtása a szervertől függően változhat. Amikor az ügyfél kiad egy parancsot AUTHENTICATE, a kiszolgáló egy base64 kódolású meghívási karakterlánccal válaszol . Ezután a kliensnek választ kell küldenie a szerver hitelesítési kihívására, szintén base64-be kódolva. Ha a szerver nem támogatja az ügyfél által javasolt hitelesítési módszert, akkor válaszában szerepelteti a szót NO. Ezután az ügyfélnek folytatnia kell a tárgyalást a hitelesítési módszerről. Ha a hitelesítési módszer meghatározására tett kísérletek mindegyike sikertelen volt, akkor a kliens megpróbál regisztrálni a kiszolgálón a LOGIN. BEZÁRÁS Bezárja a postafiókot. Ha ezzel a paranccsal bezárunk egy postafiókot, a zászlóval jelölt üzenetek \DELETEDtörlődnek a postafiókból. Nincs lehetőség. KIJELENTKEZÉS Befejezi az aktuális felhasználói azonosítóhoz tartozó munkamenetet. TEREMT Új postafiókot hoz létre. Az új postafiókok neve és helye a szerver általános specifikációi szerint kerül meghatározásra. TÖRÖL Postafiókokra vonatkozik. Az IMAP-kiszolgáló, miután megkapta ezt a parancsot, megpróbálja törölni a parancs argumentumaként megadott névvel ellátott postafiókot. Az üzenetek a postafiókokkal együtt törlődnek, és nem állíthatók vissza. ÁTNEVEZÉS Módosítja a postafiók nevét . Ennek a parancsnak két paramétere van: az átnevezni kívánt postafiók neve és az új postafiók neve. IRATKOZZ FEL Hozzáad egy postafiókot az ügyfél aktív postafiókjainak listájához. Ebben a parancsban az egyetlen paraméter a listázandó postafiók neve. A postafióknak nem kell léteznie ahhoz, hogy felkerüljön az aktív postafiókok listájára – ez lehetővé teszi a még nem létrehozott postafiókok hozzáadását az aktív postafiókok listájához, vagy törölheti azokat, ha üresek. ELŐFIZETÉS Eltávolítja a postafiókokat az aktív listáról. Egy paramétert is használ - a postafiók nevét, amelyet eltávolítanak az ügyfél aktív postafiókjainak listájáról . Maga a postafiók azonban nem törlődik. LISTA Szerezzen listát az összes kliens postafiókról; két paramétere van. LSUB A paranccsal ellentétben LISTez a parancs által aktivált postafiókok listájának lekérésére szolgál SUBSCRIBE. A paraméterek ugyanazok, mint a LIST. ÁLLAPOT Lekérdezést generál a postafiók aktuális állapotáról. A parancs első paramétere annak a postafióknak a neve, amelyre vonatkozik. A második paraméter azoknak a kritériumoknak a listája, amelyek alapján az ügyfél információkat szeretne kapni. A parancs STATUSsegítségével információt kaphat egy postafiók állapotáról anélkül, hogy a SELECTvagy paranccsal nyitná meg EXAMINE. A felhasználó a következő kritériumok szerint kaphat információkat: MELLÉKEL Üzenetet fűz a megadott postafiók végéhez. Az argumentumok a postafiók neve, az üzenetjelzők (nem kötelező), az időbélyeg (nem kötelező) és maga az üzenet – fejléc és törzs. A következő üzenetjelzők állnak rendelkezésre: Ha a parancsban jelzők vannak megadva, akkor azok be vannak állítva a hozzáadott üzenethez. Mindkét esetben az üzenet zászlója be van állítva \Recent. Ha a parancsban időbélyeget adunk meg, akkor ez az idő lesz beállítva az üzenet létrehozásának időpontjaként, ellenkező esetben az aktuális idő lesz a létrehozási idő. Mivel az üzenet nem egysoros, literálokat használunk . Példa: C A003 APPEND mentett üzenetek (\Látva) {247} S + Készen áll a szó szerinti adatokra C Dátum: 1994. február 7., hétfő, 21:52:25 -0800 (PST) C Feladó: Fred Foobar <[email protected]> Tárgy: délutáni találkozó C Címzett: [email protected] C Üzenetazonosító: <[email protected]> C C Hello Joe, szerinted találkozhatunk holnap 3:30-kor? S A003 OK APPEND kész Az RFC 3502MULTIAPPEND - ben leírt , egyetlen paranccsal több üzenetet ad hozzá egy postafiókhoz. JELÖLJE BE Ellenőrzőpontot állít be a postafiókon. Bármilyen műveletet, mint például az adatok írását a szerver memóriájából a merevlemezére , akkor kell végrehajtani, amikor a postafiók megfelelő állapotban van. A parancs a postafiók integritásának ellenőrzésére szolgál a lemez és más hasonló műveletek után CHECK. Ez a parancs paraméterek nélkül használatos. KITÖRÖL Törli az összes zászlóval jelölt üzenetet \DELETEDa postafiókból a postafiók bezárása nélkül. A szerver válasza a parancsra EXPUNGEa postafiók új állapotáról szóló jelentés. KERESÉS Feltételek alapján keresi az üzeneteket az aktív postafiókban, majd az eredményeket üzenetszámként jeleníti meg. Lehetőség van olyan üzenetek keresésére, amelyeknek a törzsében egy bizonyos szöveges karakterlánc van, vagy egy bizonyos zászló van, vagy egy bizonyos dátum előtt érkezett stb. FETCH Szerezze meg az e-mail üzenet szövegét. A parancs csak üzenetek megjelenítésére szolgál. A POP3 -mal ellentétben az IMAP-kliens nem tárolja az üzenet másolatát az ügyfélszámítógépen . BOLT Módosítja az üzenet információit. MÁSOLAT Az üzeneteket egyik postafiókból a másikba másolja . UID A FETCH, COPY, STOREvagy parancsokkal együtt használatos SEARCH. Lehetővé teszi, hogy ezek a parancsok valódi UID-ket használjanak az üzenetszám-tartományból származó számsor helyett. KÉPESSÉG Kérjen le egy IMAP-kiszolgálót a képességeiről. NEM A csapat nem csinál semmit. Használható a munkamenet életben tartására, hogy a munkamenetet ne időzítse le az időtúllépési időzítő. A szerver válaszának a parancsra NOOPmindig pozitívnak kell lennie. Mivel a kiszolgáló gyakran egy adott parancs végrehajtásának állapotát adja vissza válaszként, NOOPez triggerként használható a szerver állapotáról szóló időszakos lekérdezéshez.

Irodalom

Linkek

Jegyzetek

  1. 1 2 3 Semenov, 2014 .
  2. 12 Washingtoni Egyetem .
  3. Mi a különbség a POP és az IMAP között?  (orosz)  ? . support.microsoft.com . Letöltve: 2021. július 19. Az eredetiből archiválva : 2021. július 19.