IMAP

IMAP (Internet Message Access Protocol) je internetový protokol pro vzdálený přístup k e-mailové schránce prostřednictvím e-mailového klienta. IMAP nabízí oproti jednodušší alternativě POP3 pokročilé možnosti vzdálené správy (práce se složkami a přesouvání zpráv mezi nimi, prohledávání na straně serveru a podobně) a práci v tzv. on-line i off-line režimu. V současné době se používá protokol IMAP4 (IMAP version 4 revision 1 - IMAP4rev1), který je definován v RFC 3501.

Popis funkce

Protokol IMAP umožňuje trvalé (tzv. on-line) připojení k e-mailové schránce. Díky tomu je možné s celou poštovní schránkou plně pracovat z libovolného místa. Všechny zprávy a složky jsou uloženy na poštovním serveru a na počítač se stahují jen nezbytné informace, takže při zobrazení složky se stáhnou jen záhlaví zpráv a jejich obsah až v případě, že zprávu chce uživatel přečíst. U jednotlivých zpráv se uchovává jejich stav (nepřečtená, odpovězená, důležitá), uživatel může zprávy přesouvat mezi složkami, složky vytvářet, mazat, prohledávat na straně serveru apod. Protokol umožňuje současné připojení více klientů zároveň.

E-mailové protokoly

E-mailové zprávy jsou obecně posílány e-mailovému serveru, který ukládá příchozí zprávy v příjemcově mailboxu. Uživatel později znovu získává tyto zprávy buď přes webový prohlížeč nebo přes e-mailového klienta, který používá jeden z e-mailových protokolů. Zatímco někteří klienti a servery upřednostňují používání vlastních protokolů, zároveň podporují i standardní protokoly (SMTP pro odesílání, pro přijímání se používá POP3 a IMAP4), což jim dovoluje komunikovat s ostatními klienty. Například Microsoft Outlook typicky používá vlastní protokol ke komunikaci s Exchange serverem, stejně tak IBM Notes když komunikuje s Dominen, všechny tyto produkty však také podporují SMTP, POP3 a IMAP4 protokoly. Podpora starších internetových protokolů dovoluje mnoha dalším e-mailovým klientům, jako jsou např. Qualcomm Eudora nebo Mozilla Thunderbird, přistupovat k těmto serverům a podobně dovoluje ostatním serverům používat tyto klienty.

E-mailoví klienti jsou obecně konfigurováni buď pro POP3 nebo IMAP4 k přijímání e-mailů a v obou případech používají SMTP pro odesílání. Většina e-mailových programů může také používat Lightweight Directory Access Protokol (LDAP) pro udržování adresářů a práci s informacemi o uživatelích.

IMAP se mj. často používá v rozlehlých sítích, např. v e-mailovém systému vysokých škol nebo firem. Jakmile jsou nové e-maily uloženy na síti, mohou k nim uživatelé pomocí IMAP hned přistupovat na svých počítačích. S protokolem POP3 uživatelé buď stahují e-maily do svých počítačů nebo k nim přistupují přes webový prohlížeč. Obě tyto metody jsou delší než IMAP a uživatelé musí buď stáhnout všechny nové e-maily, nebo obnovit stránku k zobrazení nových zpráv.

Historie

IMAP byl vyvinut Markem Crispinem v roce 1986 jako vzdálený poštovní protokol pro prohlížení obsahu e-mailové schránky.

Původní IMAP

Původní Interim Mail Access protocol byl implementován jako klient pro Xerox Lisp Machine a servery TOPS-20. Neexistují žádné kopie původního softwaru; všechny známé instalace originálního protokolu byly aktualizovány na IMAP2. Ačkoliv některé příkazy a odpovědi byly podobné IMAP2, původnímu protokolu chyběly tagové příkazy/odpovědi, takže jejich syntaxe nebyla kompatibilní se všemi ostatními verzemi IMAPu.

IMAP2

Původní protokol byl rychle nahrazen Interactive Mail Access Protocol (IMAP2), definovaném v RFC 1064, později vylepšeném na RFC 1176. IMAP2 představil tagové příkazy/odpovědi a byl první veřejně distribuovanou verzí.

IMAP2bis

S příchodem MIME byl IMAP2 rozšířen o strukturu MIME a byla přidána správa mailové schránky (vytvoření, smazání, přejmenování, nahrání zpráv), která v IMAP2 chyběla. Tato experimentální oprava byla nazvaná IMAP2bis. Dřívější verze mailového klientu Pine byly široce distribuovány s podporou IMAP2bis.

IMAP4

V 90. letech byla v IETF (Internet Engineering Task Force) vytvořena pracovní skupina pro IMAP, která převzala zodpovědnost za design IMAP2bis. Tato skupina se rozhodla přejmenovat IMAP2bis na IMAP4, aby se předešlo zmatkům s vývojem IMAP3 (RFC1203), na němž tehdy pracovala jiná skupina, ale který nikdy nebyl v praxi akceptován a implementován. Zkratka IMAP je nyní vykládána jako Internet Message Access Protocol.

Některé designové vady v původním IMAP4 (definovaném v RFC 1730) vedly k vytvoření opravy IMAP4rev1 o dva roky později. IMAP4 se používal jen krátce, proto nebyl příliš rozšířený.

IMAP4rev1

Aktuální verze IMAPu od roku 1996, IMAP verze 4 revize 1 (IMAP4rev1), je definována v RFC 3501. IMAP4rev1 je zpětně kompatibilní s IMAP2, IMAP2Bis i IMAP4, které se ale téměř nepoužívají. Na rozdíl od starších Internetových protokolů, má IMAP4 zabudovanou podporu šifrovaného přihlášení. Možný je i přenos nezakódovaného hesla. Protože použití šifrovacího mechanismu musí být odsouhlaseno serverem i klientem, je v některých případech (typicky mezi Microsoft Windows klientem a ne-Windowsovým serverem) použito nezakódované heslo.

Je také možné zakódovat komunikaci IMAP4 použitím SSL. Buď se komunikuje přes SSL tunel na portu 993, nebo se v komunikaci přes IMAP4 použije STARTTLS (Transport layer security). Protokol IMAP standardně používá port 143 protokolu TCP.

Srovnání s POP3

Výhody

Hlavní výhody jsou spojené s principem synchronizace, která umožňuje spravování zpráv v emailovém klientu zrcadlit na server, zatímco protokol POP3 je založen především na jednostranném stahování nepřečtených zpráv ze serveru do klienta.

Stálé připojení

Pokud používáme POP3, klienti se připojí na server pouze na tak dlouho, aby si stáhli novou poštu. Pro použití IMAP4 jsou klienti připojeni tak dlouho, dokud je aktivní uživatelské rozhraní, stahování zpráv je závislé na požadavcích. Pro uživatele s mnoha nebo s velkými e-maily je tento způsob rychlejší.

Více současně připojených klientů

Protokol POP3 dovoluje připojení pouze jednoho uživatele ke schránce. IMAP dovoluje současné připojení více uživatelů k jedné schránce, a umožňuje vidět změny provedené ostatními klienty.

Podpora formátu MIME

Téměř všechny e-maily jsou přenášeny ve formátu MIME, což dovoluje zprávám mít stromovou strukturu, kde listové uzly jsou všechny varianty jednotlivých částí obsahu a nelistové uzly jsou varianty více částí. Protokol IMAP4 dovoluje klientům odděleně přijímat jednotlivé MIME části zprávy. Mechanismus umožňuje klientům přijímat textové zprávy, aniž by se zatěžovala linka stahováním přiložených souborů.

Informace o stavu zprávy

Díky použití příznaků definovaných v protokolu IMAP4 si mohou klienti udržovat přehled o stavu zprávy, např. jestli zpráva byla přečtena, bylo na ni odpovězeno, nebo byla smazána. Tyto příznaky jsou uloženy na serveru, takže různí klienti současně přistupující k jedné schránce v různou dobu mohou zjistit změny provedené ostatními klienty. POP3 něco takového nedovoluje, pokud se uživatel připojí dvěma různými klienty, není možnost tyto informace mezi nimi synchronizovat.

Webmailové služby jako je Gmail většinou IMAP podporují.

Práce se složkami na serveru

IMAP4 klienti mohou vytvářet, přejmenovávat anebo mazat mailové schránky (obvykle uváděné uživateli jako složky) na serveru a přenášet zprávy mezi schránkami. Podpora více schránek dovoluje serverům zpřístupnit sdílené a veřejné složky.

Vyhledání ve zprávách na serveru

IMAP4 poskytuje klientům mechanismus, kterým mohou vyhledávat na serveru zprávy podle různých kritérií. Tento mechanismus dovoluje klientům vyhledávat přímo na serveru, bez nutnosti poštu stáhnout.

Rozšíření

Na zkušenostech s dřívějšími internetovými protokoly, IMAP4 určuje explicitní mechanismus, podle kterého může být rozšířen. Bylo navrženo mnoho rozšíření základního protokolu, která se běžně používají. IMAP2bis neměl žádný rozšiřující mechanismus a POP3 rozšíření definována v RFC 2449.

Nevýhody

Oproti protokolu POP3 je IMAP4 velmi komplikovaný protokol. Jeho implementace je značně složitější a tedy i náchylnější k chybám než implementace POP3. Navzdory tomu IMAP používá mnoho e-mailových serverů a klientů jako jejich standardní přístupovou metodu.

Pokud nejsou ukládací a vyhledávací algoritmy na serveru bezpečně implementovány, prohledávání velké schránky může značně zatěžovat server. IMAP4 klienti mohou způsobit zpoždění při vytváření nových zpráv, u pomalých připojení (např. u mobilních zařízení). U těchto zařízení je lepší použít Push IMAP, což je rozšířený IMAP protokol o implementaci Push e-mail. Nicméně Push IMAP se běžně nepoužívá a v současnosti IETF pracuje na jiném způsobu.