Internet Message Access Protocol
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.