POP3 a IMAP: historie poštovních protokolů a shromažďování dopisů přes IMAP v Yandex.Mail. Výhody oproti POP3. E-mailové porty

IMAP funguje v Mail.Ru Mail již nějakou dobu v plné síle a jsem připraven hovořit o problémech, na které jsme narazili při jeho spouštění. Některé z nich souvisely se zvláštnostmi samotného protokolu a jeho historií, jiné byly způsobeny specifiky interakce IMAP s naším úložištěm. Samostatnou kategorii potíží způsobuje různorodost e-mailových klientů.

Podrobnosti - vítejte na kočce.

Aktuální vypuštění IMAP je náš druhý přístup ke střele. Minule jsme vzali server Dovecot a pokusili jsme se ho přizpůsobit pro sebe. S výsledkem jsme nebyli spokojeni: nevyhovoval našim nákladům a naší infrastruktuře. Tentokrát jsme se rozhodli jít jinou cestou a napsali jsme vlastní řešení.


IMAP jsme spustili v květnu, ale oznámili jsme jej až v červnu. Květnové publikum jsou ve skutečnosti naši zaměstnanci a uživatelé, jejichž klienti automaticky detekovali přítomnost IMAP v naší poště a připojovali k němu nově přidané účty.

Potíže specifické pro protokol IMAP

1. Těžkopádnost samotného protokolu
První verze protokolu IMAP se objevila v roce 1986. Aktuální standard IMAP je verze 4rev1, která byla aktualizována v roce 2003. Za tak dlouhou dobu se standard výrazně rozrostl: jeho současná verze má asi 200 stran.

Nyní je mnoho bodů popsaných v normě zastaralých – v dnešních podmínkách již nejsou nutné. Protokol například umožňuje vracení počtu řádků a MD5 součtu částí písmene – funkce, která se u moderních klientů ve skutečnosti nepoužívá.

Kromě toho existuje mnoho volitelných rozšíření protokolu. Některé z nich jsou ve skutečnosti nezbytné pro pohodlnou práci s poštovní schránkou.

Abychom překonali historické dědictví, museli jsme implementovat několik rozšíření. Jedním z nich je UID+: když zkopírujeme nebo přidáme písmeno, vrátíme ID nového písmene, které se objevilo na serveru jako výsledek kopírování nebo přidávání. To nám umožňuje ušetřit na vyhledávací operaci náročné na zdroje, kterou musel klient provést, aby rozpoznal, který e-mail byl přidán.

2. Chybějící standardní vzor pro práci se serverem
IMAP poskytuje mnoho způsobů, jak vyřešit stejný problém, a v důsledku toho mají téměř všichni klienti odlišný způsob fungování. Je také důležité, že operační vzorce jsou zcela odlišné od toho, jak funguje webmail nebo POP3.


Více než polovina pochází od klientů se zařízeními Apple: důvodem je, že automatická detekce IMAP pro ně funguje dobře. Outlook naopak standardně funguje přes POP3 a IMAP je potřeba nakonfigurovat ručně.

Zde můžeme rozlišit 2 hlavní kategorie: desktopové klienty, kteří okamžitě požadují informace o všech dopisech ve schránce nebo složce, a mobilní klienti, kteří zpočátku požadují pouze informace o nejnovějších dopisech. Dále jsme museli prostudovat jejich požadavky na aktualizaci stavu, jak přesně získávají informace o dopisech.

Proč to byl pro nás nezbytný krok? Při mírném zatížení (například pokud server obsluhuje firemní poštu malé společnosti) není otázka optimality tak akutní. S našimi objemy se však optimalita stává kritickou: proto jsme potřebovali prostudovat provozní vzorce celé zoo e-mailových klientů přistupujících k úložišti.

3. Počet simultánních sezení
Podle standardu je minimální časový limit serveru 30 minut. Jeden klient může navíc udržovat několik připojení k serveru najednou (protokol neuvádí maximální počet povolených připojení). Ve skutečnosti to v našem měřítku znamená, že jeden server musí optimálně zvládnout desítky tisíc současných připojení. Při práci v synchronním režimu by takový počet připojení jednoduše pohltil všechny zdroje.

Abych tento problém vyřešil, napsal jsem knihovnu pro asynchronní práci, postavenou na bázi epollu spouštěného hranou. Zpočátku jsem si dal za úkol vytvořit knihovnu, se kterou bych si v budoucnu mohl za pár dní napsat svůj vlastní asynchronní server a řešit jiné problémy kromě IMAP; díky tomu lze téměř veškerý kód použít k zápisu dalších služeb.

4. Neschopnost jednoznačně identifikovat klienta
Náš server podporuje rozšíření ID, které nám umožňuje identifikovat přibližně polovinu klientů. Bohužel druhá polovina o tomto rozšíření neví (z těch oblíbených např. Outlook).
Pochopení toho, se kterým klientem pracujeme, nám umožňuje obejít jeho charakteristické chyby a také předvídat, jaký bude pracovní vzorec v rámci dané relace, a podle toho optimalizovat práci. To je pro nás zásadní, takže pokud klient neuvede ID, snažíme se jej identifikovat jinými způsoby (v případě Outlooku pomocí značek).
5. Žádný příkaz pro přesun zpráv
V klientech je pohyb realizován prostřednictvím kopírování + mazání. Samozřejmě chceme, aby byla kopie dopisu umístěna do požadované složky a originál byl smazán a nezahazoval odpadky. Na druhou stranu, někdy uživatel sám zkopíruje dopis do nové složky a poté smaže původní: v tomto případě by měl být smazaný dopis umístěn do koše.
Abychom tyto dva případy rozlišili, po zkopírování označíme písmeno ve stejné relaci speciálním vnitřním příznakem. Když uživatel sám zkopíruje dopis a smaže originál, klient zpravidla aktualizuje seznam dopisů. Při aktualizaci se zaškrtávací políčko automaticky resetuje a smazaná zpráva skončí v koši. Pokud klient odstraní písmeno (v rámci přesunu), neproběhne žádná aktualizace a písmeno označené příznakem je trvale odstraněno.

Potíže spojené s přizpůsobením aktuálního úložiště pošty a indexů

1. Identifikace zprávy
Pro práci přes IMAP bylo nutné podporovat dva typy identifikátorů zpráv: pořadové číslo, které se může lišit relace od relace, a jedinečné číslo, které je uloženo po celou dobu životnosti zprávy. Oba identifikátory musely splňovat poměrně přísná kritéria, která neodpovídala schématu používanému webmailem a POP3 serverem.

Nejracionálnějším způsobem je ponechat v paměti RAM celou sadu sekvenčních čísel, jejich shodu s interními identifikátory a také IMAP ID. Při otevírání složky vytáhneme z úložiště seznam všech písmen, naše interní identifikátory, IMAP ID, příznaky a velikost zprávy - vše, co chceme odeslat bez zbytečných požadavků.

O všech změnách pořadového čísla v rámci jedné relace musíme klienta informovat. Podle standardu musí sekvence IMAP ID odpovídat sekvenci čísel sekvence. Sekvenční čísla získáme seřazením seznamu písmen podle jedinečných čísel. Když klient vydá nový příkaz, znovu otevřeme připojení k úložišti a požádáme o čas posledních změn, které byly provedeny v boxu. Pokud od posledního takového požadavku nenastaly žádné změny, pak jednoduše vrátíme odpověď na příkaz. V opačném případě znovu zadáme dotaz na seznam zpráv ve složce a porovnáme jej s podobným seznamem klienta. Dále buď vrátíme informace o změnách, nebo, pokud to protokol neumožňuje provést okamžitě, zaznamenáme, že dopis byl smazán, a počkáme na správný okamžik, abychom o tom klienta informovali.

Vzhledem k tomuto specifiku - dopis již není ve schránce, ale klient se o něm dosud nedozvěděl - si klient může vyžádat údaje o již smazaném dopise. Někteří z nich navíc zaznamenali vážné problémy, pokud na jejich žádost nereagovali. Abychom zabránili rozbití klienta, vracíme útržky jako odpověď na takové požadavky. Klient dostane informace, které potřebuje pro běžný provoz, a při další aktualizaci seznamu písmen (většinou se to děje okamžitě) z něj zprávu smaže.

2. Potřeba optimálně vracet informace o MIME struktuře zprávy
Téměř všichni klienti požadují informace o struktuře dopisu. Často při prvním sezení požadují takové informace o všech dopisech ve složce najednou. Analýza dopisu pro každý takový požadavek by byla extrémně suboptimální.
Místo toho jsme vytvořili mezipaměť MIME struktur. Přítomnost mezipaměti nám pomohla překonat několik potíží spojených s funkcemi IMAP - zejména nedostatek standardního vzoru pro práci se serverem: protože některé informace jsou uloženy v mezipaměti, pomáhá to neutralizovat související zatížení s různými vzory klientské práce.

Aktuálně ukládáme do mezipaměti až 50 zpráv. Proč ne 2-3? Faktem je, že někteří klienti nejprve požadují strukturu dopisu, poté tělo a několik zpráv najednou; maximální počet písmen v takovém „balení“ je obvykle 50 kusů.

3. Optimální výstup částí dopisu
Klienti často žádají pouze textové části dopisu, které mohou být na konci samotné zprávy. Pro zobrazení úryvků si klienti mohou vyžádat textové části z 50-200 e-mailů najednou. Nechcete číst celý soubor zprávy (a zpracovat 10 MB e-mailu, abyste mohli odeslat 10 KB textu); použití indexu k určení polohy součásti v souboru pro každý požadavek by bylo také nákladné. V této situaci pomáhá i mezipaměť struktury zpráv.
Výhody tohoto přístupu jsou zřejmé zejména tehdy, když klient načítá úryvky pro několik desítek písmen: pokud bychom nepoužili mezipaměť struktury, museli bychom prohledávat mnoho megabajtů a obětovat rychlost.

Abychom ušetřili místo v našich úložištích, jsou části base64 uloženy v dekódované podobě uvnitř dopisu: při práci s webmailem to umožňuje odesílat přílohy bez zbytečného překódování. Bylo nutné vytvořit schéma dodávky dílů zohledňující toto překódování. Napsali jsme streamování překódování na serveru IMAP. I zde pomohla cache – díky ní pochopíme, v jaké podobě (binární či nikoli) je konkrétní fragment uložen, aniž bychom museli znovu číst strukturu.

4. Vlastnosti některých klientů
Někteří klienti plně nevyhovují standardu RFC: například standardní klienti Android verze 2.2 – 2.3 nemohou správně zobrazovat zprávy, aniž by vraceli některá volitelná pole. Hlavním problémem bylo určit, které oblasti každý z těchto klientů považoval za povinné pro sebe: to bylo nutné vyřešit hrubou silou.

Již bylo zmíněno výše, že klienti mohou mít různé přístupy k mazání dopisů: někteří je přesunou do koše, jiní je smažou okamžitě a trvale. Někteří zákazníci však nerozumějí standardnímu rozšíření XLLIST, které podporujeme k určení, která složka je odpadkový koš. Místo toho používají svou složku jako odpadkový koš (tak se chová například Vrabec).

Outlook se chová zajímavě: po příkazu k odstranění se písmena nepřesunou do koše, ale označí se jako přeškrtnutá a později se smažou. Ukázalo se, že pro uživatele to vypadá jako chyba – mnozí prostě nechápou, co dál a jak zajistit, aby se klient choval obvyklým způsobem a dopisy skončily v koši.

Tváří v tvář takové rozmanitosti jsme také potřebovali empiricky pochopit, jak se každý klient chová, a přizpůsobit se těmto možnostem – a to takovým způsobem, aby si uživatel mohl být jistý: bez ohledu na to, v jakém klientovi pracuje, pošta bude reagovat na jeho akce jako obvykle a předvídatelně (v tomto případě smazaný dopis skončí v koši). Vyřešili jsme to tak, že jsme vyzkoušeli různé reakce přes testovací proxy server a sledovali reakce klienta na každou možnost.

Co jsme se sami naučili: IMAP je poměrně „rozlehlá“ věc s mnoha historickými funkcemi získanými během 26 let, které jsou znásobeny rozmanitostí e-mailových klientů. Vzhledem k našemu pracovnímu vytížení to vede k tomu, že vzít si hotové řešení a snažit se ho upravit na míru je iracionální: v nejlepším případě bude množství práce stejné jako při vývoji řešení sami. Takhle jsme šli :)

Viktor Starodub,
Mail.ru Tým pošty

Protokol IMAP(Internet Mail Access Protocol) je popsán v RFC 2060.

Na rozdíl od POP3, který jednoduše stahuje příchozí zprávy a ukládá je lokálně, s IMAP pracujete s poštou přímo na serveru

Stejně jako POP3 používá IMAP koncept klient-server se sadou příkazů. Příkazy se používají k přenosu e-mailových zpráv ze serveru na klienta. Klient za tímto účelem naváže TCP spojení s portem 143 na serveru. Dále musí server odpovědět speciální pozvánkou.

1 ". 5 * OK shadrach.smallorg.org Server IMAP4revl V12.250 připraven 6 a001 LOGOUT 7 * BYE shadrach.smallorg.org Server IMAP4rev1 ukončení spojení 8 a001 OK LOGOUT dokončeno 9 Připojení uzavřeno zahraničním hostitelem. 10 $

Řádek 1 zobrazuje příkaz k otevření relace pomocí telnetu na portu 143 (výchozí port IMAP). Řádek 5 zobrazuje výzvu vydanou serverem IMAP. Na řádku 6 dal klient příkaz k ukončení relace se serverem. Server poté odešle zprávu o ukončení relace (řádek 7) a uzavře spojení s klientem.

Každému příkazu vydanému klientem předchází jedinečný identifikátor. Server pak může tento identifikátor použít ve svých odpovědích, což klientovi umožní určit, na který příkaz se odpověď serveru vztahuje. To je zvláště důležité, když server provádí více příkazů na relaci. Identifikátor je obvykle krátký řetězec alfanumerických znaků, který generuje klient. V řádku 6 výpisu 7.1 tedy klient zvolil identifikátor a001. Pokud by klient potřeboval vydat další příkazy, další identifikátor by byl a002 atd. Často, pro zjednodušení, jsou ID příkazů jednoduše zvýšena o jeden ze svých bitů v průběhu relace IMAP.

Po navázání připojení je klient ve stavu čekající autentizace, protože se musí identifikovat, aby mohl provádět jakékoli operace se svou poštovní schránkou na serveru. Po ověření na serveru může klient používat příkazy IMAP ke správě zpráv na serveru. Protokol IMAP umožňuje uživateli podporovat více poštovních schránek na jednom serveru. V tomto případě může klient číst, odesílat a mazat zprávy v kterékoli ze svých poštovních schránek.

Metody ověřování uživatelů IMAP

Stejně jako POP3 má IMAP několik metod pro autentizaci klienta. Některé z nich poskytují vyšší úroveň zabezpečení než jiné. Na rozdíl od klientů POP3 tráví klienti IMAP často poměrně dlouhé relace se serverem při zpracování zpráv. Tímto způsobem se ID uživatele a heslo nepřenáší po síti několikrát za hodinu, jak je tomu typicky u POP3.

příkaz LOGIN

Příkaz LOGIN umožňuje klientovi přihlásit se k serveru IMAP pomocí uživatelského ID a hesla ve formátu prostého textu.

Příkaz AUTHENTICATE

Příkaz AUTHENTICATE umožňuje klientovi používat alternativní metody ověřování při registraci na serveru IMAP. Ověření jednotlivých uživatelů je volitelné a není podporováno všemi servery IMAP. Kromě toho se implementace takové kontroly mohou lišit v závislosti na serveru. Když klient vydá příkaz AUTHENTICATE, server odpoví řetězcem výzvy zakódovaným v base64. Pak je odpovědností klienta odpovědět na autentizační volání serveru, rovněž zakódované v base64. Pokud server nepodporuje klientem navrhovanou metodu autentizace, zahrne do své odpovědi záporné slovo NE. Klient pak musí pokračovat v jednání, aby se dohodl na metodě autentizace. Pokud všechny pokusy o určení metody autentizace selhaly, klient se pokusí zaregistrovat na serveru pomocí příkazu LOGIN. Příklad relace pomocí AUTHENTICATE:

1 [riley@ shadrach riley] $ telnet localhost 143 2 Pokus o 127.0.0.1... 3 Připojeno k localhost. 4 Escape znak je "^]" . 5 * OK localhost IMAP4rev1 v12.250 server připraven 6 a1 OVĚŘENÍ KERBEROS_V4 7 a1 NEOVĚŘENÍ KERBEROS_V4 se nezdařilo 8 a2 OVĚŘENÍ GSSAPI 9 a2 NE OVĚŘENÍ GSSAPI se nezdařilo 10 a3 BOY11 AUTHENT 10 a3 AUTH1XAA * 13 a3 BEZ OVĚŘENÍ PŘIHLÁŠENÍ se nezdařilo 14 a4 PŘIHLÁŠENÍ riley firetruck 15 a4 OK PŘIHLÁŠENÍ dokončeno 16 a5 LOGOUT 17 * BYE shadrach.smallorg.org Server IMAP4rev1 ukončuje spojení 18 a5 OK LOGOUT dokončeno 19 spojení uzavřeno zahraničním hostitelem. 20 [riley@shadrach riley] $

Řádky 6–9 zobrazují pokusy klienta vyjednat metodu ověřování se serverem IMAP. Jak vidíte, všechny byly neúspěšné. A řádek 10 ukazuje, že byla nalezena metoda ověření přijatelná pro klienta i server. Když server odpovídá, vydá na řádku 11 řetězec volání zakódovaný v base64. Na řádku 12 však klient odmítne pokus o přihlášení a pokračuje pouze na řádku 14 pomocí příkazu LOGIN.

Klientská strana protokolu IMAP

Po registraci na IMAP serveru může klient začít manipulovat se zprávami. Protokol IMAP nabízí poměrně dost příkazů pro čtení, přesun a mazání poštovních zpráv v poštovních schránkách na serveru. Pamatujte, že protokol IMAP vyžaduje, aby byly všechny zprávy uloženy na serveru. Stahování e-mailových zpráv do místního počítače slouží pouze pro účely zobrazení. Nejsou však přesunuty ani zkopírovány do místního počítače klienta.

Výchozí poštovní schránka pro klienta se nazývá INBOX. Všechny nové zprávy jsou odesílány do INBOX. Klient má možnost vytvářet nové poštovní schránky (někdy nazývané složky v poštovních klientech). Tam může za účelem organizace přesouvat zprávy ze složky INBOX.

Každé zprávě je přiřazen jedinečný identifikátor (UID), který ji v poštovní schránce identifikuje. Značka UID je zachována ve všech relacích IMAP, takže klientský software může správně identifikovat zprávy v poštovní schránce. Každá poštovní schránka má jedinečnou UIDVALIDITY. Štítek UIDVALIDITY musí být přítomen během všech relací IMAP pouze v případě, že ID zpráv v poštovní schránce zůstalo stejné. Pokud poštovní schránka obsahuje zprávy s různými ID, měla by být během další relace zvýšena hodnota UIDVALIDITY. To umožňuje klientům rychle zjistit, zda se v jejich poštovní schránce od posledního přístupu objevily nové zprávy.

Každá zpráva je opatřena příznakem, který zobrazuje její stav. Příznak může být trvalý nebo nastavený po dobu trvání relace. Trvalé příznaky mohou být změněny klientem a přetrvávají napříč relacemi. Příznaky přiřazené na relaci jsou platné pouze po dobu trvání aktuální relace IMAP. V tabulce 7.1 uvádí možnosti pro příznaky poštovních zpráv.

Příznaky poštovní zprávy IMAP

Vlajka Popis \Vidět Zpráva byla přečtena \Odpovězeno Odpověď byla odeslána na zprávu \Příznakem Zpráva byla vynuceně označena \Smazána Zpráva byla smazána \Koncept Zpráva není dokončena (koncept) \Nedávná Nová zpráva v poštovní schránka

Poštovní zpráva může mít 0 příznaků nebo několik příznaků. Informace o příznacích jsou klientovi odeslány spolu se samotnou zprávou. Je na zodpovědnosti klienta, aby si příznaky odpovídajícím způsobem vyložil.

Další část popisuje příkazy IMAP, které může klient zadávat serveru.

Ačkoli jsou příkazy IMAP zadávány velkými písmeny podle RFC, většina serverů IMAP přijímá příkazy zadané jak velkými, tak malými písmeny.

Server musí odpovídajícím způsobem reagovat na zadané příkazy nebo reagovat záporně, pokud je příkaz zadán nesprávně nebo není podporován.

příkaz SELECT

Příkaz SELECT se používá pouze v případě, že je schránka aktivní. Ve výchozím nastavení, dokud není klient přihlášen, není vybrána žádná z poštovních schránek, které vlastní. Dále si klient musí vybrat schránku, se kterou bude pracovat. Obvykle první schránka, kterou klient vybere, je schránka INBOX, kam jsou umístěny nové zprávy. Formát příkazu SELECT je následující:

VYBERTE schránku

Zde poštovní schránka je název poštovní schránky, ke které klient přistupuje. Během jedné relace IMAP může být aktivní pouze jedna poštovní schránka. Pokud poštovní schránka existuje a klient k ní má odpovídající přístup, server poskytne víceřádkovou odpověď popisující stav schránky.

příkaz CREATE

Příkaz CREATE se používá k vytvoření nové poštovní schránky na serveru IMAP. Názvy a umístění nových poštovních schránek jsou určeny podle obecných specifikací operačního systému Linux. V pracovním adresáři uživatele je vytvořena nová poštovní schránka s názvem, ale bez určení umístění, protože je známá z klientského adresáře $HOME. Pokud je například pracovní adresář klienta /home/riley a klient vydá příkaz CREATE k vytvoření nové poštovní schránky stuff/junk, pak nově vytvořená poštovní schránka na poštovním serveru Linux bude mít cestu /home/riley/stuff/ haraburdí. V tomto příkladu můžete vidět, jak se používá znak /. To však není společné pro všechny servery IMAP.

Některé klientské programy IMAP používají termín složka pro označení nových poštovních schránek. Mnoho z nich také umožňuje uživatelům vytvářet je na určité úrovni vnoření, proto buďte opatrní při vytváření nových složek (schránek). Jak se cesta ke schránce zvyšuje, je stále obtížnější ji obsluhovat.

příkaz DELETE

Příkaz DELETE se vztahuje na poštovní schránky, nikoli na zprávy. IMAP server se při přijetí tohoto příkazu pokusí smazat poštovní schránku se jménem zadaným jako argument příkazu. Argument příkazu může používat standardní linuxové popisy cest oddělené /, pokud nejsou umístěny v adresáři $HOME. Zprávy ze smazaných poštovních schránek nelze obnovit a jsou ztraceny spolu s poštovními schránkami.

příkaz RENAME

Příkaz RENAME může klient použít ke změně názvu poštovní schránky. V tomto případě lze použít dva parametry. První parametr je skutečný název poštovní schránky, kterou je třeba přejmenovat. A druhým parametrem je název nové schránky.

Přejmenování nemá vliv na obsah schránky.

příkaz LIST

Příkaz LIST slouží k získání seznamu všech klientských poštovních schránek. Používá dva parametry. Formát příkazu LIST je uveden níže:

SEZNAM referenční poštovní schránky

Zde je odkaz na adresář, kde jsou umístěny poštovní schránky. Pokud místo tohoto parametru ("") zadáte prázdný řetězec, budou poštovní schránky umístěny v pracovním adresáři uživatele $HOME. Druhý parametr poštovní schránky je název poštovní schránky, kterou chcete zobrazit. Zde můžete použít speciální znaky, stejně jako při získávání běžného seznamu adresářů, jako je zástupný znak (*). Pokud je název poštovní schránky zadán jako prázdný řetězec (""), server jako odpověď vrátí hierarchický oddělovač (pro Linux /) a název kořenového parametru.

Tým LSUB

Příkaz LSUB se používá k vyřešení problému popsaného pro příkaz LIST. Na rozdíl od příkazu LIST, který zobrazuje celý obsah pracovního adresáře uživatele, příkaz LSUB zobrazí pouze poštovní schránky klienta, které byly aktivovány dříve popsaným příkazem SUBSCRIBE. Parametry příkazu LSUB jsou úplně stejné jako u příkazu LIST, tzn. odkaz a název poštovní schránky. Stejně jako příkaz LIST určuje parametr link cestu k adresáři, který obsahuje poštovní schránky s odpovídajícími názvy (adresář $HOME, pokud ""). Podle toho název poštovní schránky odkazuje na název poštovní schránky nebo názvy poštovních schránek, které chcete zobrazit v seznamu (je povolen zástupný znak (*).

Poštovní schránky lze poté přidat do seznamu aktivních schránek pomocí příkazu SUBSCRIBE a odebrat ze seznamu pomocí příkazu UNSUBSCRIBE. Pomocí těchto příkazů můžete implementovat čtení diskusních skupin na základě klienta IMAP. Každá diskusní skupina je navíc implementována jako samostatná poštovní schránka na serveru, ke které se pak můžete přihlásit. Dnes většina e-mailových programů obsahuje funkci čtení diskusních skupin, takže provádění těchto operací v protokolu IMAP není nutné.

příkaz APPEND

APPEND je další příkaz z rodiny příkazů IMAP. IMAP se obvykle používá výhradně pro čtení zpráv z poštovních schránek. Příkaz APPEND umožňuje odesílat zprávy do poštovní schránky připojením zprávy na konec souboru poštovní schránky. Tato funkce nefunguje zcela správně a je poměrně nebezpečná, proto ji nedoporučujeme používat jako alternativu k SMTP. Je to spíše příjemná funkce navíc protokolu IMAP než pracant. Základní formát příkazu APPEND je následující:

PŘIPOJIT zprávu poštovní schránky [(příznaky)] (velikost zprávy).

příkaz CHECK

Příkaz CHECK se používá k nastavení kontrolního bodu na poštovní schránce. Veškeré operace, jako je zápis dat z paměti serveru na jeho pevný disk, musí být prováděny v příslušném stavu poštovní schránky. Příkaz CHECK se používá ke kontrole integrity poštovní schránky po disku a dalších podobných operacích. Tento příkaz se používá bez parametrů.

příkaz ZAVŘÍT

Příkaz CLOSE dostojí svému názvu – zavře schránku.

Při zavření poštovní schránky jsou z ní fyzicky odstraněny všechny zprávy označené příznakem \DELETED.

Účinek příkazu ZAVŘÍT je jasně viditelný na nové poštovní schránce, která byla právě otevřena. Otevřenou schránku lze také zavřít pomocí příkazu LOGOUT. Příkaz CLOSE nemá žádné parametry.

příkaz EXPUNGE

Příkaz EXPUNGE se používá k odstranění všech zpráv označených příznakem \DELETED z poštovní schránky bez zavření schránky.

Odezvou serveru na příkaz EXPUNGE je zpráva o novém stavu schránky.

1 $ telnet localhost 143 2 Pokus o 127.0.0.1... 3 Připojeno k localhost. 4 Escape znak je "^]". 5 * OK localhost lMAP4rev1 v12.250 server připraven 6 a1 přihlášení alex bubny 7 a1 OK PŘIHLÁŠENÍ dokončeno 8 a2 vybrat nové pole 9 * 6 EXISTUJE 10 * 0 POSLEDNÍ 11 * OK DĚLAT stav platnosti 12 * OK Předpovězeno další UID 13 * VLAJKY (\Odpověď \Flagged \Deleted \Draft \Seen) 14 * OK Trvalé příznaky 15 * OK první nezobrazená zpráva v /home/alex/newbox 16 a2 OK SELECT dokončeno 17 a3 store 1 +flags \DELETED 18 * 1 FETCH (FLAGS (\Deleted) ) 19 a3 OK STORE dokončeno 20 a4 obchod 2 +příznaky \DELETED 21 * 2 FETCH (VLAJKY (\Smazáno)) 22 a4 OK STORE dokončeno 23 a5 stav newbox (zprávy nezobrazeny) 24 * STATUS newbox (ZPRÁVY 6 NEVIDENÉ 6) 25 a5 OK STAV dokončeno 26 a6 vymazat 27 * 1 VYMAZAT 28 * 1 VYMAZAT 29 * 4 EXISTUJE 30 * 0 POSLEDNÍ 31 a6 OK Vymazáno 2 zprávy 32 a7 stav nové schránka (zprávy nezobrazeny) 33 * STAV nový schránka (ZPRÁVY 44) a dokončeno 35 a8 odhlášení 36 * BYE shadrach.sniallorg.org Server IMAP4rev1 ukončuje spojení 37 a8 OK LOGOUT dokončeno 38 Připojení uzavřeno cizím hostitelem. 39 dolarů

Na řádku 8 uživatel alex vybere poštovní schránku s názvem newbox. Řádky 9–16 jsou odpovědí serveru s informacemi o vybrané poštovní schránce. Řádek 9 říká, že je v něm 6 zpráv. Na řádcích 17 a 20 uživatel alex použil příkaz STORE k označení dvou zpráv jako odstraněných (\DELETED). Potom na řádku 23 uživatel alex vydá příkaz STATUS. Z řádku 24 můžeme usoudit, že z pohledu IMAP serveru je ve schránce stále šest zpráv, i když dvě z nich jsou označeny jako smazané. Na řádku 26 uživatel zadá příkaz EXPUNGE, který vymaže zprávy označené jako smazané. Odpověď serveru na řádcích 27–31 potvrzuje, že zprávy byly smazány ze schránky a ve schránce zbývají čtyři zprávy. To potvrzuje i příkaz STATUS zadaný na řádku 32. Server na něj odpoví, že ve schránce jsou nyní pouze čtyři zprávy.

Tým VYHLEDÁVÁNÍ

Příkaz SEARCH je jedním z nejmocnějších nástrojů v arzenálu IMAP. Tento příkaz vyhledá zprávy na základě kritérií v aktivní poštovní schránce a poté zobrazí výsledky jako číslo zprávy. Formát příkazu SEARCH je následující:

HLEDAT (kritéria vyhledávání)

Zde se specifikace CHARSET skládá z funkčního slova CHARSET následovaného označením znakové sady. Výchozí znaková sada je ASCII, takže tento parametr je obecně vynechán. Parametr vyhledávací kritéria definuje kritéria vyhledávání klíčů a jejich hodnoty. Kritéria vyhledávání jsou popsána v tabulce. 7.3.

Stůl. Kritéria vyhledávání pro příkaz SEARCH

Popis vyhledávacích kritérií Zprávy s čísly odpovídajícími zadanému rozsahu VŠECHNY Všechny zprávy ve schránce ODPOVĚDĚNY Zprávy s příznakem \ODPOVĚĎ BCC Zprávy obsahující zadaný řetězec v poli záhlaví BCC BEFORE Zprávy, které byly vytvořeny před zadaným datem BODY Zprávy, které obsahují zadaný řetězec CC v těle Zprávy obsahující zadaný řetězec v poli záhlaví CC DELETED Zprávy s příznakem \DELETED DRAFT Zprávy s příznakem \DRAFT FLAGGED Zprávy s příznakem nastaveným \FLAGGED Od Zprávy obsahující zadaný řetězec v poli záhlaví From HEADER Zprávy obsahující zadanou hlavičku se zadaným řetězcem KEYWORD Zprávy obsahující zadaný seznam VĚTŠÍCH kritérií Zprávy větší než n NOVÉ Zprávy s příznakem \RECENT, ale bez příznaku \SEEN NOT Zprávy, které neobsahují zadaný seznam STARÝCH kritérií Zprávy bez příznaku \RECENT ON Zprávy, které byly vytvořeny k určenému datu NEBO Zprávy obsahující logická vyhledávací kritéria NEBO POSLEDNÍ zprávy s příznakem \RECENT SEEN Zprávy s příznakem \SEEN SENTBEFORE Zprávy, které byly vytvořeny před zadaným datem, podle pole záhlaví Date SENTON Zprávy, které byly vytvořeny k určenému datu podle pole záhlaví Date SENTSINCE Zprávy, které byly vytvořeny po zadaném datu podle pole záhlaví Datum SINCE Zprávy, které byly vytvořeny po zadaném datu MENŠÍ Zprávy, jejichž velikost nepřesahuje n TEXT Zprávy, které obsahují zadaný řetězec buď v záhlaví nebo v UID těla zprávy Zprávy s UID odpovídajícími zadanému rozsahu NEODPOVÍDAJÍCÍ Zprávy bez příznaku \ODPOVĚĎ UNDELETED Zprávy bez příznaku \DELETED UNDRAFT Zprávy bez příznaku \NÁVRH UNFLAGGED Zprávy bez nastaveného příznaku \FLAGGED UNKEYWORD Zprávy bez sady zadaných kritérií UNSEEN Zprávy bez příznaku \SEEN

Jak můžete vidět z tabulky, existuje velké množství kritérií pro vyhledávání zpráv. To je velmi výhodné, když potřebujete najít konkrétní zprávu ve schránkách, které jsou zaplněny velkým počtem zpráv. Níže je krátký příklad použití příkazu SEARCH.

1 $ telnet localhost 143 2 Pokus o 127.0.0.1... 3 Připojeno k localhost. 2 Escape znak je "^]". 4 * OK localhost IMAP4rev1 V12.250 server připraven 5 a1 přihlášení alex bubny 7 a1 OK PŘIHLÁŠENÍ dokončeno 8 a2 vybrat doručenou poštu 9 * 2 EXISTUJE 10 * 0 POSLEDNÍ 11 * OK Stav platnosti UID 12 * OK Předpovězeno další UID 13 * VLAJKY (\Odpovězeno \Flagged \Deleted \Draft \Seen) 14 * OK Trvalé fs 15 * OK první nezobrazená zpráva ve /var/spool/mail/alex 16 a2 OK VYBRAT dokončeno 17 a3 test předmětu hledání v záhlaví 18 * HLEDAT 1 2 19 a3 OK HLEDÁNÍ dokončeno 20 a4 hledání hlavička předmět jiný 21 * HLEDÁNÍ 2 22 a4 OK HLEDÁNÍ dokončeno 23 a5 vyhledávání nespatřeno 24 * HLEDÁNÍ 1 2 25 a5 OK HLEDÁNÍ dokončeno 26 a6 odhlášení 27 * BYE shadrach.smallorg.org IMAP4rev1 server a6 dokončeno připojení OK29 28 Spojení ukončeno cizím hostitelem. 30 dolarů

Řádky 17, 20 a 23 ukazují příklady použití příkazu SEARCH. Řádky 18, 21 a 24 jsou odpovědi serveru IMAP na příkaz SEARCH. Odpověď obsahuje čísla zpráv, která odpovídají kritériím vyhledávání. Pokud nejsou nalezeny žádné shody, server vrátí slovo SEARCH bez UID zprávy.

příkaz FETCH

Příkaz FETCH se používá k načtení textu e-mailové zprávy. Slouží pouze k zobrazení zpráv. Na rozdíl od POP3 klient IMAP neukládá kopii zprávy na klientském počítači.

Tým STORE

Příkaz STORE se používá ke změně informací o zprávě. Formát příkazu je následující:

OBCHOD

Argument určuje rozsah čísel zpráv, na které se příkaz STORE vztahuje. V současnosti jsou pro tento příkaz definovány pouze dva datové typy ( ). Typ FLAGS definuje sadu příznaků nastavených pro zprávu. Typ FLAGS.SILENT také definuje sadu příznaků, které jsou nastaveny pro zprávu, ale server IMAP ve své odpovědi nevrací jejich novou hodnotu.

Chování těchto datových typů můžete ovládat tak, že k nim přidáte znaménko plus (+) nebo mínus (-). Znaménko plus znamená, že hodnota datového typu ( ) bude přidán do zprávy, mínus - že bude ze zprávy odstraněn.

17 a3 obchod 1 +příznaky \VYMAŽENO 18 * 1 NAČTENÍ (VLAJKY (\Smazáno)) 19 a3 OK STORE dokončeno

Řádek 18 tohoto výpisu ukazuje, jak nastavit příznak \DELETED pro zprávu v aktivní poštovní schránce číslo 1. Všimněte si, že před příznakem je znaménko plus (+). Můžete také zadat příznak (-). Příznak \DELETED by pak byl pro zprávu vymazán (jeden způsob, jak obnovit smazanou zprávu před tím, než začnou platit kontrolní body zprávy).

Zpráva označená příznakem \DELETED není fyzicky odstraněna z poštovní schránky, dokud nejsou spuštěny příkazy pro přiřazení nových kontrolních bodů poštovní schránce. A to pomocí příkazů CHECK, EXPUNGE, SELECT nebo LOGOUT.

příkaz COPY

Příkaz COPY se používá ke kopírování zpráv z jedné schránky do druhé. Formát příkazu COPY je uveden níže:

KOPÍROVAT

Tady určuje rozsah čísel zpráv, které je třeba zkopírovat z aktivní schránky, a určuje název poštovní schránky, do které mají být zkopírovány.

Pro protokol IMAP není definován žádný příkaz pro přesun zpráv, ale je zřejmé, že tato operace není nic jiného než kopírování zpráv do jiné schránky s příznakem \DELETED nastaveným pro původní zprávy. Po dalším otočení schránky (checkpointingu) budou původní zprávy smazány a zůstanou pouze jejich kopie.

Tým KAPABILITY

Příkaz CAPABILITY může klient použít k dotazování serveru IMAP na informace o jeho schopnostech.

Tým NOOP

Akce příkazu NOOP, jak víme, odpovídají jeho názvu, tzn. ona nic nedělá. Lze jej použít k udržení aktivity během relace, aby se relace neukončila kvůli časovači časového limitu. Odpověď serveru na příkaz NOOP by měla být vždy kladná. Protože server ve své odpovědi často vrací stav provádění konkrétního příkazu, lze NOOP použít jako spouštěč pro pravidelné dotazování na stav serveru. Pokud se se schránkou během časového limitu něco stalo, např. server smazal zprávy podle pravidel nastavených pro schránku správcem poštovního systému, pak příkaz NOOP vrátí aktualizované informace o jejím stavu.

příkaz LOGOUT

Příkaz LOGOUT se používá k ukončení relace pro aktuální ID uživatele a zavření všech otevřených poštovních schránek. Pokud byly nějaké zprávy označeny příznakem \DELETED, pak pomocí tohoto příkazu budou fyzicky smazány z poštovní schránky.

Je pravděpodobné, že většina lidí, kteří čtou tuto příručku, již zná nejběžněji používanou komunikační technologii: e-mail. Přemýšleli jste ale někdy nad tím, jak to vlastně funguje? V tomto článku se dozvíme, jak tato služba funguje a co jsou POP3, SMTP a IMAP.

POP3(poštovní protokol verze 3) se často používá ke komunikaci se vzdáleným e-mailovým serverem a stahování zpráv do místního e-mailového klienta a jeho následnému odstranění na serveru, například Thunderbird, Windows Mail atd. E-mailoví klienti však obvykle nabízejí volbu, zda ponechat kopie zpráv na serveru. Pokud k odesílání zpráv používáte více zařízení, doporučujeme ponechat tuto funkci povolenou, jinak na jiném zařízení nebudete mít přístup k odeslaným zprávám, které nebyly uloženy na vzdáleném serveru. Za zmínku také stojí, že POP3 je pouze jednosměrný protokol, což znamená, že data jsou přebírána ze vzdáleného serveru a odesílána místnímu klientovi.

Výchozí porty POP3 jsou:

Port 110 – port bez šifrování

Port 995 je port SSL/TLS, známý také jako POP3S

Krok 2 – Rozdíly mezi POP3 a IMAP a jaké jsou porty pro IMAP?

IMAP (protokol aplikační vrstvy pro přístup k e-mailu), stejně jako POP3, se používá pro příjem e-mailových zpráv na lokálním klientovi, má však podstatný rozdíl - stahují se pouze hlavičky e-mailů, text samotného dopisu zůstává na server. Tento komunikační protokol funguje ve dvou směrech, pokud dojde ke změnám na lokálním klientovi, jsou přeneseny na server. Protokol IMAP se v poslední době stal populárnějším, protože jej obří poskytovatelé e-mailových služeb, jako je Gmail, začali doporučovat místo POP3.

Výchozí porty IMAP jsou:

  • Port 143 – port bez šifrování
  • Port 993 je port SSL/TLS, známý také jako IMAPS

Krok 3 - SMTP, protokol pro odchozí e-mailovou komunikaci

Simple Mail Transfer Protocol ( SMTP), se používá ke komunikaci se vzdáleným serverem a poté k odesílání zpráv z místního klienta na vzdálený server a nakonec na server příjemce zprávy. Na vašem e-mailovém serveru je tento proces řízen speciální službou ( MTA). Za zmínku stojí, že SMTP se používá výhradně pro odesílání zpráv.

SMTP porty:

  • Port 25 – port bez šifrování
  • Port 465 je port SSL/TLS, známý také jako SMTPS

Závěr

Doufáme, že nyní jasně rozumíte tomu, jak fungují e-mailové protokoly a jaké porty používají. V tomto tutoriálu jsme se dozvěděli, co jsou POP3, SMTP a IMAP a k čemu se používají. Například POP3 a IMAP se používají pro stejné účely, ale k těmto úkolům přistupují odlišně. IMAP ponechá obsah zprávy na serveru a POP3 jej stáhne do vašeho počítače. Také jsme zjistili, jaké jsou standardní porty pro SMTP, POP3 a IMAP.

S rozšiřováním informačních technologií se otázka bezpečnosti stává stále důležitější. Zde se musíme propracovat různými aspekty, které souvisí s mnoha vývojovými trendy. Mnozí se například zajímají o otázku, co je zabezpečení IMAP. Jak bezpečný je InternetAccessProtocol?


Jaké to má výhody? K čemu byl vyvinut? Jaké verze existují? Jaký ovládací mechanismus se používá? Všechny tyto otázky se pokusíme vyřešit v této recenzi.

Co je IMAP?

Bezpečnost korespondence je důležitá zejména z toho důvodu, že může obsahovat různé informace. Protokol IMAP se používá k zajištění přístupu k e-mailovým datům pouze oprávněným uživatelům. Byl vyvinut na základě TCP. Tento protokol používá port 143. IMAP vám umožňuje pracovat s poštou, která je umístěna na centrálním serveru. Software, který používá tento protokol, provádí potřebné akce takovým způsobem, že to vypadá, jako by veškerá korespondence byla uložena v počítači uživatele.

Pro velké objemy přenosu lze použít speciální IMAP server. Manipulace s dopisy nevyžaduje neustálé odesílání souborů s obsahem příjemci. Není to zdaleka jediný protokol, který se dnes používá při práci s poštovními službami. K odesílání dopisů lze použít protokol SMTP, protože v IMAP příkaz k odeslání nemůže zaručit 100% bezpečnost. Tento protokol má některé známé chyby zabezpečení.

Proč byl vyvinut IMAP?

Tento protokol byl vyvinut jako alternativa ke známému protokolu POP3. Všechno to začalo kvůli nedostatkům protokolu POP3. Neposkytoval například možnost spravovat, přesouvat a ukládat zprávy na serveru. Z tohoto důvodu byl vyvinut protokol IMAP. Právě s pomocí tohoto protokolu může uživatel přijímat poštu na různých místech. To bylo možné díky skutečnosti, že všechny potřebné informace jsou uloženy na vzdáleném serveru.

Výhody IMAP oproti POP3

Proč se začal používat protokol IMAP? Jde o to, že kromě těch, které jsou uvedeny výše, tento protokol poskytuje řadu výhod:

— spojení se nepřeruší, když je uživatelské rozhraní aktivní;
— zprávy budou staženy pouze v případě, že má klient odpovídající požadavky;
— je možný současný přístup několika uživatelů, přičemž každý uživatel může sledovat provedené změny;
— klient získá možnost vytvářet, mazat nebo měnit názvy schránek. Můžete také přesouvat zprávy mezi poštovními schránkami;
— pokud máte rozšíření IMAP 4 AccessControlList, je možné změnit přístupová práva;
— Můžete také sledovat stav samotné zprávy. Transakční data se nazývají příznaky a jsou uložena na serverech;
— vyhledání požadované zprávy se provede na serveru. Pro prodloužení je speciální mechanismus.

Zprávy a jejich atributy

Protokol IMAP funguje pouze se zprávami, které nevyžadují pakety se speciálními hlavičkami. Každý z těchto balíčků má své vlastní atributy. Mohou být definovány jednotlivě nebo společně s ostatními. Dnes existuje již šest verzí protokolů IMAP. Téměř vždy se používá nejnovější verze.

Při práci s protokolem IMAP dostává každá zpráva svůj vlastní 32bitový kód. Ke kódu je přidán jedinečný identifikátor. Kód a identifikátor společně tvoří 64bitovou sekvenci. Je nutné identifikovat zprávu. Takto je implementováno zabezpečení v protokolu IMAP. Čím později zpráva dorazí, tím důležitější bude UID. Tento parametr se používá jako kód odpovědi během procesu výběru poštovní schránky. Tento kód se nemění během relací ani mezi nimi. Pokud technické podmínky vyžadují úpravu tohoto parametru, pak musí být UID větší než dříve. Port IMAP se používá k přenosu informací.

Číslo zprávy

Pořadové číslo zprávy začíná od 1. Každá následující zpráva bude mít číslo o 1 větší než ta předchozí. Rozdíl oproti poštovní schránce je v tom, že toto číslo se může během relace změnit, například pokud byl smazán dopis.

Příznaky zpráv

Tento atribut je seznam, který obsahuje nula nebo velký počet pojmenovaných tokenů spojených s podkladovými informacemi. IMAP 4.1 zavedl dva typy příznaků. Mohou působit dočasně, například během sezení, nebo mohou být trvalé. Systémový příznak je ten, pro který je název definován ve specifikaci protokolu. Všechny příznaky musí začínat znakem "\". Aktuálně jsou definovány následující systémové příznaky:

— \seen– zpráva již byla přečtena;
— \answered – odpověď odeslána;
— \recent – ​​zpráva se objevila během aktuální relace;
— \draft – zpráva byla označena jako koncept;
— \flagged – uživatel označil tuto zprávu jako důležitou;
— \deleted – uživatel smazal zprávu.

Interní datum a čas

Jak se tyto parametry určují a jaké hodnoty by v nich měly být uvedeny? Pokud byla zpráva doručena pomocí protokolu SMTP, pak se bere čas a datum konečného příjemce. Pokud byl použit příkaz kopírovat, převezmou se parametry odesílatele. Můžete si nastavit vlastní datum a čas. Chcete-li to provést, musíte použít příkaz append.

Interakce klient-server

Při použití protokolu IMAP je komunikace navázána na bázi klient-server. Klient odešle všechny přijaté příkazy a server odešle požadovaná data a informace k dokončení požadavku. Zprávy jsou ve formě řetězců, které končí speciální sekvencí. Všechny procedury jsou prováděny na příkaz klienta. Jsou rozpoznány pomocí speciální předpony identifikátoru. Tento identifikátor je krátký alfanumerický řetězec.

Jinak se také nazývá značka. Každý tým má své unikátní číslo. Existují dva možné případy, kdy mohou být data zaslaná klientem neúplná. První případ nastane, když argument příkazu má kód, který dříve zadával počet oktetů. Druhý případ nastane, když je vyžadována odpověď ze serveru. V obou případech klient obdrží požadavek na pokračování příkazu. Musí začínat symbolem +. Přenos musí být dokončen, když začne přicházet určitý typ dat.

V opačném případě nebude možné zahájit nový proces. Přenos dat na server, čtení a výběr parametrů se provádí pomocí protokolového přijímače. Po dokončení zpracování příkazu bude klientovi zaslána odpověď s tímto upozorněním. Informace, které neoznačují dokončení instrukce, jsou označeny *. Tomu se říká neoznačená odpověď. V protokolu IMAP je také možné odesílat data serveru jako odpověď na požadavky klienta nebo z vlastní iniciativy. Formát dat je nezávislý na důvodu, pro který byla odeslána.

Co můžete říci o používání oblíbených e-mailových služeb? Nastavení nejsou dostupná běžným uživatelům IMAP. Lze je provést pouze v případě, že je dopis odeslán pomocí speciálního klientského programu. Tato nastavení se navíc vztahují pouze na příchozí dopisy. K čemu jsou potřebné odpovědi? Informují uživatele, zda byl požadavek úspěšný nebo neúspěšný. Odpověď vždy používá stejné označení, které klientský příkaz použil při spuštění procedury.

Z tohoto důvodu je možný vícevláknový přenos dat. K objasnění této situace lze použít tři typy odpovědí: úspěch, selhání a chyba protokolu IMAP. Klient musí být vždy připraven zpracovat jakoukoli odpověď, která na něj přijde. Data musí být zapsána tak, aby je klient mohl používat, aniž by musel odesílat požadavky na vyhledávání na server. V Gmailu to vidíte poměrně často. Nastavení IMAP lze změnit nebo upravit při používání e-mailových klientů s širokou škálou funkcí.

Což je lepší: POP3 nebo IMAP není jen otázkou vkusu.

POP3 stahuje veškerou poštu ze serveru do místního počítače. V tomto případě je pošta ve většině případů odstraněna ze serveru ihned po načtení do poštovního klienta nebo po několika dnech. To znamená, že dopisy jsou umístěny pouze na jednom místě - buď na serveru nebo v počítači. Pokud se s počítačem něco stane, budete čelit problému.

POP3 je však stále nejběžnějším protokolem pro stahování e-mailů. Zkratka „POP“ znamená „Post Office Protocol“. Funguje to jako klasická pošta. Rozdíl mezi IMAP a POP3 je v tom, že POP3 je jako pošťák, který vám nese dopis z kanceláře domů. Přirozeně, pokud je dopis u vás, nemůže být již na žádném jiném místě.

Když zvažujete, co je lepší: IMAP nebo POP3, upřednostněte druhou možnost, pokud máte na serveru málo místa a získání dalších megabajtů by bylo příliš drahé. Většina poskytovatelů e-mailových služeb nastavuje určitou kvótu pro objem korespondence. Pokud je vyčerpán, budete moci přijímat nové e-maily až po odstranění některých starých.

IMAP je novější vývoj. Zkratka znamená „Internet Message Access Protocol“ a jak název napovídá, poskytuje přístup pouze ke zprávám na serveru. Rozdíl mezi IMAP a POP3 je v tom, že první protokol nejprve požaduje seznam zpráv uložených na poštovním serveru. Váš e-mailový klient si poté stáhne místní kopie e-mailů a umožní vám s nimi pracovat, ale e-maily samotné zůstanou na serveru, dokud je odtud výslovně neodstraníte.

Při výběru mezi POP3 nebo IMAP byste si měli nejprve odpovědět na otázku, zda budete pracovat s e-mailem z více zařízení nebo pouze z jednoho. Pokud čtete a odesíláte e-maily ze svého domácího nebo pracovního počítače, notebooku nebo tabletu, je nejlepší spolehnout se na IMAP.

Téměř všichni hlavní poskytovatelé e-mailových služeb (Gmail, Yahoo, Hotmail atd.) podporují tento protokol. Microsoft Exchange je navíc varianta IMAP. Tento protokol vám umožňuje snadno synchronizovat e-maily mezi vaším smartphonem, tabletem a počítači, které používáte. Ke své korespondenci budete mít také přístup pomocí běžného internetového prohlížeče. Koneckonců, e-maily jsou uloženy na serveru a mnoho poskytovatelů e-mailových služeb vytváří pohodlné rozhraní pro webový přístup.

V moderním světě plném nejrůznějších digitálních vychytávek je při výběru mezi POP3 a IMAP lepší dát přednost druhému, novějšímu protokolu. S jeho pomocí přerušíme těsné spojení mezi zařízením, emailovým klientem a emailovým serverem. Nyní nezáleží na umístění a typu operačního systému. A snížení nákladů na ukládání dat vám umožní mít k dispozici poštovní schránky velkého objemu. Dnes už jen pár poskytovatelů umožňuje používat e-mail pouze přes protokol POP3. Pokud nemáte zvláštní důvod používat POP3, zvolte protokol IMAP.




Horní