Modul 1 · 1.1
Slovenčina
Cesta e-mailu
Modul 1: Ako funguje e-mail · Čas čítania: 9 minút
Cieľ lekcie: Po tejto lekcii dokážete krok za krokom popísať, ako sa mail dostane od odosielateľa k príjemcovi, a pri každom kroku povedať, ktorý program alebo server vykonáva prácu.
Kľúčové pojmy: poštový program (MUA), odosielajúci server (MSA, submission), mailový server (MTA), MX záznam, fronta, doručenie (MDA), poštová schránka, sťahovanie (IMAP/POP3), obálka (envelope), hlavičky
Mail je pošta, nie chatová správa
Keď pošlete chatovú správu, prechádza cez jednu spoločnosť: aplikácia odosielateľa a aplikácia príjemcu komunikujú s tými istými servermi. E-mail funguje inak. Odosielateľ a príjemca môžu byť každý u iného poskytovateľa: jeden u hostingovej spoločnosti, druhý na Gmail, tretí na Microsoft 365 alebo na vlastnom firemnom serveri. Napriek tomu mail príde na miesto. Darí sa to preto, lebo všetky mailové servery na svete dodržiavajú rovnaké dohody.
E-mail sa dá dobre prirovnať k pošte. Napíšete list (správu), vložíte ho do obálky s adresou (envelope), odnesiete ho do poštovej schránky (odosielajúci server), poštová spoločnosť zistí, kde sa adresa nachádza (vyhľadanie MX záznamu), prepraví list do správneho triediaceho centra (prijímajúci mailový server) a ten ho vloží do schránky príjemcu (poštová schránka). Príjemca si ho odtiaľ vyzdvihne, keď mu to vyhovuje.
Stanice v prehľade
Predstavme si: Anna posiela mail z anna@example.com na jan@example.net. Deje sa toto:
| Krok | Kto | Čo sa deje | Protokol |
|---|---|---|---|
| 1 | Annin poštový program (MUA, mail user agent) | Anna stlačí Odoslať. Program sa prihlási na odosielajúci server jej poskytovateľa a odovzdá mail. | SMTP-submission, port 587 alebo 465, s prihlásením |
| 2 | Odosielajúci server domény example.com (MSA, mail submission agent) | Overí, že Anna je naozaj Anna (používateľské meno a heslo), zaradí mail do frontu. | |
| 3 | Odchádzajúci mailový server (MTA, mail transfer agent) | Zisťuje v DNS: ktorý server prijíma mail pre example.net? To sú MX záznamy. | DNS |
| 4 | Odchádzajúci MTA voči prijímajúcemu MTA | Nadviaže spojenie so serverom z MX záznamu a doručí mail. | SMTP, port 25 |
| 5 | Prijímajúci server domény example.net | Skontroluje mail (spam, vírusy, SPF, DKIM, DMARC) a vloží ho do schránky Jana. Táto posledná časť sa volá MDA (mail delivery agent). | |
| 6 | Jánov poštový program alebo webmail | Stiahne mail alebo ho zobrazí priamo zo servera. | IMAP (port 993) alebo POP3 (port 995) |
U malých poskytovateľov sú MSA, MTA a MDA často jeden a ten istý program na jednom serveri. U veľkých poskytovateľov ide o samostatné clustery. Pre vás to veľký rozdiel nerobí: sú to úlohy, nie samostatné zariadenia.
Všimnite si rozdiel medzi krokom 1 a krokom 4. Oba používajú SMTP, čiže Simple Mail Transfer Protocol (RFC 5321). Pri kroku 1 sa však prihlasujete a používate port 587 alebo 465; to sa volá submission (RFC 6409). Pri kroku 4 spolu komunikujú dva servery na porte 25, bez prihlásenia: prijímajúci server prijíma mail pre svoje vlastné domény od kohokoľvek. V lekcii 1.4 uvidíte, prečo toto rozdelenie existuje.
Krok 3 zblízka: vyhľadanie MX záznamu
Odosielajúci server sám od seba nevie, kde doména example.net prijíma svoju poštu. Opýta sa teda DNS:
example.net. 3600 IN MX 10 mx1.mailprovider.example.
example.net. 3600 IN MX 20 mx2.mailprovider.example.Najnižšie číslo má prednosť. Server najprv skúsi mx1, a ak ten neodpovedá, mx2. Potom zistí IP adresu tohto názvu (A- alebo AAAA-záznam) a nadviaže spojenie.
Dva osobitné prípady, s ktorými sa v praxi stretnete:
- Žiadny MX záznam. Vtedy sa odosielateľ pokúsi o A- alebo AAAA-záznam samotnej domény (takzvaný „implicitný MX“ z RFC 5321, odsek 5.1). Ide o pozostatok z minulosti, ktorý nefunguje spoľahlivo; každá doména, ktorá prijíma poštu, by mala mať MX záznam.
- Nulový MX:
0 .To znamená: „táto doména nikdy neprijíma poštu“ (RFC 7505). Doménuexample.commá takýto záznam. Odosielateľ to hneď vzdá a pošle späť chybové hlásenie namiesto toho, aby to niekoľko dní skúšal znova.
Ako presne fungujú MX záznamy a priority, si prečítate v lekcii 4.1 DNS kurzu.
Fronta: e-mailu to môže chvíľu trvať
Mail nie je vždy doručený do sekundy. Ak prijímajúci server neodpovedá, alebo povie „skúste to neskôr znova“ (kód začínajúci na 4), mail zostáva vo fronte odosielajúceho servera. Ten to skúsi neskôr znova, vždy s trochu väčším odstupom. RFC 5321 (odsek 4.5.4.1) odporúča aspoň 30 minút medzi pokusmi a vzdať to až po 4 až 5 dňoch. Mnohé servery po pár hodinách pošlú upozornenie („delayed“, zatiaľ nedoručené) a po pár dňoch definitívne chybové hlásenie.
To je silná stránka e-mailu: ak je mailový server hodinu nedostupný, žiadny mail sa nestratí. Je to aj dôvod, prečo mail niekedy príde až o niekoľko hodín neskôr. V module 6 uvidíte, ako takéto oneskorenie rozpoznať.
Obálka a hlavičky: dve adresy
Rovnako ako pri pošte má mail dva druhy adries:
- Obálka (envelope). To sú adresy, ktoré servery navzájom používajú v SMTP komunikácii:
MAIL FROM(odosielateľ pre chybové hlásenia, neskôr viditeľný ako Return-Path) aRCPT TO(príjemca). Servery doručujú podľa obálky. - Hlavičky (headers). To je to, čo je napísané v samotnom liste:
From:,To:,Cc:,Subject:,Date:. Toto zobrazuje váš poštový program.
Väčšinou sa zhodujú, no nie vždy. Príjemca v BCC je síce v obálke, ale nie v hlavičkách; preto ho ostatní nevidia. Služba na rozosielanie newslettrov uvádza ako odosielateľa v obálke svoju vlastnú adresu, aby chybové hlásenia smerovali k nej, zatiaľ čo v poli From: je vaša adresa. A podvodník môže do poľa From: napísať čokoľvek chce.
Prečo je to dôležité: SPF kontroluje odosielateľa v obálke, používateľ vidí pole From:. Preto existuje DMARC, ktorý tieto dve veci prepája (modul 4).
Kde sa to môže pokaziť
S týmto prehľadom sa pri každom probléme môžete opýtať: pri ktorej stanici to zlyháva?
- Odoslanie zlyhá (chybové hlásenie hneď vo vašom programe): krok 1 alebo 2. Takmer vždy ide o nastavenia: port, prihlásenie, heslo (modul 2).
- Dostanete späť bounce: krok 4 alebo 5. Prijímajúci server mail odmietol, alebo adresa neexistuje (modul 6).
- Mail príde, ale do spamového priečinka: krok 5. Príjemca mailu nedôveruje (moduly 4 a 5).
- Príjemca nič nevidí a vy nedostanete žiadne chybové hlásenie: mail môže ešte byť vo fronte, alebo bol u príjemcu potichu odfiltrovaný. Tu pomôžu záznamy (logy) odosielajúceho servera (modul 6).
- Mail vôbec neprichádza pre vašu doménu: krok 3. MX záznamy nie sú v poriadku, napríklad po presťahovaní (modul 8).
V praxi: ako to vyzerá pri hostingovom balíku
Pri hostingovom balíku WebOké vykonáva všetky úlohy jeden server na balík: váš poštový program doručí mail na tento server (krok 1 a 2), server ho odošle von (krok 3 a 4) a prijíma mail pre vašu doménu (krok 5). V DirectAdmin môžete pomocou funkcie E-mailové sledovanie vidieť pri každej správe, či bola doručená. U iných poskytovateľov to funguje podobne; tam sa takáto funkcia volá napríklad „sledovanie správ“ alebo „mail log“.
Zhrnutie
- Mail ide z vášho poštového programu (MUA) cez odosielajúci server (MSA/MTA) na prijímajúci server (MTA/MDA) a odtiaľ do poštového programu príjemcu.
- Odosielanie z vášho programu je SMTP-submission s prihlásením (587/465); servery medzi sebou komunikujú SMTP na porte 25; sťahovanie prebieha cez IMAP alebo POP3.
- Odosielajúci server vyhľadá MX záznamy domény za znakom @. Nulový MX (
0 .) znamená: táto doména neprijíma poštu. - Mail, ktorý sa nedá hneď doručiť, zostáva vo fronte a niekoľko dní sa skúša znova.
- Obálka (Return-Path) a hlavičky (From) sú dvaja rôzni odosielatelia. SPF sa pozerá na prvého, používateľ na druhého.
Kvíz
Úloha
Úloha Z1.1: Nájdenie prvého mailového servera. Vyhľadajte MX záznamy domény gmail.com (alebo vašej vlastnej domény). Vyplňte, ktorý server sa skúša ako prvý, s jeho číslom priority, a jednu IP adresu (IPv4 alebo IPv6) tohto servera. Program si rovnaké údaje overí naživo a skontroluje ich.
Ďalšie čítanie
Postupy v týchto článkoch platia pre panely WebOké; u iných poskytovateľov to funguje podobne.
- Vysvetlenie procesu odosielania e-mailov / SMTP
- Návod na DirectAdmin 8.7: IMAP alebo POP3: aký je rozdiel?
- Bezplatný kurz DNS 4.1: MX záznamy a priorita
- RFC 5321 (SMTP), odsek 5.1 (MX a implicitný MX) a 4.5.4.1 (opakované pokusy); RFC 7505 (nulový MX)
