IMAP | |
---|---|
název | Internet Message Access Protocol |
Úroveň (podle modelu OSI ) | Aplikovaný |
Rodina | TCP / IP |
Vytvořeno v | 1986 |
Port/ID | 143/ TCP , 993/TCP (IMAP přes SSL) |
Účel protokolu | Přístup k poštovním schránkám |
Specifikace | RFC 3501 |
Hlavní implementace (klienti) | MUA ( Outlook Express , Opera , Mozilla Thunderbird , The Bat!, Claws Mail , mutt atd.) |
Implementace jádra ( servery ) | UW IMAP , Courier , Cyrus , Dovecot |
IMAP ( Internet Message Access Protocol ) je protokol aplikační vrstvy pro přístup k e-mailu .
Je založen na transportním protokolu TCP a používá port 143, zatímco IMAPS (IMAP over SSL ) používá port 993. IMAP pracuje pouze se zprávami a nevyžaduje žádné pakety se speciálními hlavičkami [1] .
IMAP poskytuje uživateli dostatek příležitostí pro práci s poštovními schránkami umístěnými na poštovním serveru . Poštovní program , který používá tento protokol, přistupuje k úložišti korespondence na serveru , jako by se tato korespondence nacházela v počítači příjemce. S e -maily lze manipulovat z počítače uživatele ( klienta ), aniž by byl celý obsah e-mailů neustále posílán tam a zpět ze serveru .
Protokol SMTP se obvykle používá k odesílání zpráv , protože nativní příkaz IMAP send, nazývaný APPEND, neobsahuje mechanismus pro přenos informací o službě [1] .
Pro názvy poštovních schránek (složek) se znaky mimo rozsah ASCII se používá upravená verze kódování UTF-7 [1] .
Protokol IMAP je alternativou k POP se základními možnostmi odesílání.
První verze protokolu POP měla řadu nedostatků a nejzávažnějším z nich byla nedostatečná schopnost řídit pohyb a ukládání zpráv na serveru. V POP se zprávy stahují z poštovního serveru všechny najednou, načež jsou ze serveru smazány, to znamená, že není možné vybrat zprávy k příjmu.
Pro vyřešení problémů spojených s touto funkcí POP vytvořil v roce 1986 Mark Crispin ( eng. Mark Crispin ), tehdy pracující na Stanfordské univerzitě , nový protokol pro příjem pošty ze serveru [2] .
Nový protokol umožnil uživatelům přijímat e-maily na více místech ze stejné poštovní schránky. Uživatel má možnost spravovat zprávy ve své poštovní schránce a další funkce pro obsluhu poštovních schránek na serveru.
V budoucnu byl dopracován protokol POP , v POP3 (POP verze 3) je možné přijímat vybrané zprávy ze serveru a nechat vybrané zprávy na serveru. V posledních verzích mezi IMAP a POP je hlavní rozdíl pro uživatele v tom, že IMAP4 může přistupovat k písmenům v různých poštovních složkách na serveru a přesouvat písmena mezi nimi, zatímco POP3 přistupuje k písmenům na serveru pomocí čísel v lineárním seznamu (tj. funguje pouze s jednou poštovní složkou).
Verze protokolu IMAP [2]Při použití POP3 se klient připojuje k serveru pouze po dobu, kterou trvá stahování nových zpráv. Při použití protokolu IMAP se připojení nepřeruší, když je aktivní uživatelské rozhraní , a zprávy se stahují pouze na žádost klienta. To snižuje dobu odezvy pro uživatele, kteří mají ve svých poštovních schránkách mnoho velkých zpráv.
Protokol POP vyžaduje, aby byl k boxu připojen pouze aktuální klient. IMAP umožňuje více klientům přístup k poštovní schránce současně a dává klientovi možnost sledovat změny provedené jinými klienty připojenými ve stejnou dobu.
Díky příznakovému systému definovanému v IMAP4 může klient sledovat stav zprávy (přečteno, odpovědělo, smazáno atd.); příznaková data jsou uložena na serveru.
Klienti IMAP4 mohou vytvářet, přejmenovávat a odstraňovat poštovní schránky a přesouvat zprávy mezi poštovními schránkami. Alternativně můžete ke správě přístupových práv k poštovní schránce použít "IMAP4 Access Control List ( ACL ) Extension" ( RFC 4314 ).
Zprávy jsou prohledávány na straně serveru.
IMAP4 má explicitní mechanismus rozšíření. [3]
IMAP pracuje pouze se zprávami a nevyžaduje žádné pakety se speciálními hlavičkami. Ke každé zprávě je přidruženo několik atributů. Tyto atributy mohou být definovány samostatně nebo v kombinaci s jinými atributy.
Každé zprávě je přiřazen 32bitový kód , který ve spojení s jedinečným identifikátorem tvoří 64bitovou sekvenci, která zaručuje jednoznačnou identifikaci zprávy ve schránce. Čím později zpráva dorazila, tím větší je její UID.
UID je přidruženo k poštovní schránce a odesláno jako kód odpovědi uidvalidity (ok) během fáze výběru poštovní schránky. Pokud nelze z nějakého důvodu použít UID z předchozí relace , musí být UID zvýšeno.
UID zprávy by se nemělo měnit v rámci relace ani by se nemělo měnit mezi relací. Pokud však není možné uložit UID zprávy v následující relaci, každá následující relace musí mít nový jedinečný identifikační kód, který musí být větší než jakékoli dříve použité UID.
Pořadové číslo zprávy ve schránce začíná na 1. Každá zpráva počínaje druhou má pořadové číslo přesně o 1 větší než to, které jí předcházelo.
Během relace je povoleno změnit pořadové číslo zprávy. Když je například zpráva odstraněna z poštovní schránky, změní se čísla všech následujících zpráv.
Tento atribut je seznam nula nebo více pojmenovaných tokenů spojených s danou zprávou. Příznak se nastavuje jeho přidáním do tohoto seznamu a resetuje se jeho odebráním. V IMAP 4.1 existují dva typy příznaků. Příznak může být trvalý nebo aktivní pouze po dobu trvání této relace.
Systémový příznak je příznak, jehož název je definován ve specifikaci protokolu. Všechny systémové příznaky začínají znakem \.
Aktuálně jsou definovány následující systémové příznaky:
Čas a datum přijetí zprávy. Pokud byla zpráva doručena prostřednictvím protokolu SMTP , datum a čas doručení do cílové destinace. U zpráv doručených příkazem copy interní datum a čas odesílatele zprávy. Při použití příkazu append datum a čas určený parametry příkazu.
Připojení IMAP 4.1 zahrnuje vytvoření spojení mezi klientem a serverem . Klient posílá příkazy na server, server posílá data a upozornění o stavu požadavku klientovi. Všechny zprávy, klient i server, jsou ve formě řetězců ukončených speciální sekvencí.
Jakákoli procedura začíná příkazem klienta. Jakýkoli příkaz klienta začíná předponou identifikátoru (obvykle krátkým alfanumerickým řetězcem, jako je , A0001atd. A0002), nazývaným tag. Pro každý příkaz klient vygeneruje svůj vlastní popisek.
Existují dva případy, kdy řetězec odeslaný klientem nepředstavuje úplný příkaz. V prvním je argument příkazu dodáván s kódem, který určuje počet oktetů v řetězci. Ve druhém vyžadují argumenty příkazu odpověď ze serveru. V obou případech server odešle požadavek na pokračování příkazu začínající znakem +.
Klient musí dokončit odeslání jednoho příkazu před odesláním dalšího.
Přijímač protokolu serveru čte příkazový řetězec přijatý od klienta, analyzuje jej, extrahuje parametry a odešle data na server. Po dokončení příkazu server odešle odpověď.
Data přenášená serverem klientovi, stejně jako stavové odpovědi, které neindikují dokončení příkazu, mají předponu * a nazývají se neoznačené odpovědi.
Data může server odeslat jako odpověď na příkaz klienta nebo z vlastní iniciativy. Formát dat nezávisí na důvodu odeslání.
Odpověď označuje úspěch/neúspěch operace. Používá stejné označení jako příkaz klienta, který spustil proceduru. Pokud je tedy proveden více než jeden příkaz, označení serveru ukazuje na příkaz, který způsobil odpověď. Existují tři druhy odezvy ukončení serveru: ok(úspěch), no(selhání), bad(chyba protokolu, např. příkaz nebyl rozpoznán nebo zjištěna chyba syntaxe).
Posluchač protokolu klienta IMAP 4.1 přečte řetězec odpovědi ze serveru a provede akci podle prvního znaku *nebo znaku +.
Klient musí být připraven kdykoli přijmout jakoukoli odpověď ze serveru. Data serveru musí být zapsána tak, aby je klient mohl přímo používat bez odesílání požadavků na vyhledávání na server.
Server IMAP 4.1 je v jednom ze čtyř stavů.
Většinu příkazů lze použít pouze v určitých stavech.
V neověřeném stavu musí klient zadat uživatelské jméno a heslo, než bude mít k dispozici většinu příkazů. Přechod do tohoto stavu se provede při navázání spojení bez předchozího ověření.
V autentizovaném stavu je klient identifikován a musí si vybrat schránku, po které se mu zpřístupní příkazy pro práci se zprávami. Přechod do tohoto stavu nastává při navázání spojení s předautentizací , při vydání všech potřebných identifikačních údajů nebo při omylu zvolení schránky.
Po úspěšném výběru poštovní schránky systém přejde do stavu výběru .
Systém přejde do výstupního stavu , když je spojení přerušeno v důsledku požadavku klienta nebo z důvodu nezávislého rozhodnutí serveru.
URI | Schémata|
---|---|
Oficiální | |
neoficiální |
protokoly TCP /IP podle vrstev modelu OSI | Základní|
---|---|
Fyzický | |
odvedeny | |
síť | |
Doprava | |
zasedání | |
Zastoupení | |
Aplikovaný | |
Uplatněno jiné | |
Seznam portů TCP a UDP |