Prejsť na obsah

Nastavenia súborov cookie

Vyberte, aké druhy súborov cookie povolíte. Svoj výber môžete kedykoľvek zmeniť cez Nastavenia súborov cookie v dolnej časti každej stránky. Vyhlásenie o ochrane osobných údajov

Nevyhnutné

Vždy zapnuté

Potrebné na prihlásenie, uchovanie košíka a zapamätanie vašich volieb. Sú vždy zapnuté.

Ktoré súbory cookie?
  • weboke_sessie, weboke_klant, weboke_remember: vaša relácia a trvalé prihlásenie
  • weboke_basket: váš košík
  • wkBtwIncl: zobrazovanie cien s DPH alebo bez DPH
  • wok_cookies: váš výber súborov cookie, 12 mesiacov

Merajú, ktorá reklama vedie k návšteve alebo objednávke, aby sme neplatili za reklamy, ktoré nič neprinášajú.

Ktoré súbory cookie?
  • Google Ads cez Google Tag Manager (_gcl_au, _gcl_aw), najviac 90 dní
  • OpenAI Ads, reklamy v ChatGPT
  • wok_aff: ktorý partner vás k nám odporučil (partnerský program), 60 dní

4,6

Krajina a jazyk

Každá krajina má vlastný web s cenami a DPH danej krajiny.

Zobraziť

SMTP: rozhovor medzi mailovými servermi

Modul 1: Ako funguje e-mail · Čas čítania: 10 minút

Cieľ lekcie: Po tejto lekcii dokážete prečítať SMTP rozhovor, vysvetliť, čo robia EHLO, MAIL FROM, RCPT TO a DATA, a podľa kódu odpovede rozpoznať, či je chyba dočasná alebo trvalá.

Kľúčové pojmy: SMTP (RFC 5321), relácia, EHLO/HELO, MAIL FROM, RCPT TO, DATA, QUIT, kód odpovede (2xx, 3xx, 4xx, 5xx), rozšírený stavový kód, rozšírenia (STARTTLS, AUTH, SIZE), null MX

Rozhovor v obyčajnom texte

SMTP je veľmi starý protokol (prvá verzia je z roku 1982), a preto je veľmi čitateľný. Dva servery si navzájom posielajú riadky textu. Odosielateľ (klient) posiela príkaz, príjemca (server) odpovedá trojciferným číslom a krátkym vysvetlením. Takýto rozhovor si môžete doslovne prečítať v chybovom hlásení alebo v logu, a práve preto sa oplatí mu rozumieť.

Nižšie je uvedený úplný rozhovor. S: je prijímajúci server, C: odosielajúci server. Pošta ide z anna@example.com na jan@example.net.

S: 220 mx1.mailprovider.example ESMTP ready
C: EHLO out.hosting.example
S: 250-mx1.mailprovider.example Hello out.hosting.example [192.0.2.25]
S: 250-SIZE 52428800
S: 250-8BITMIME
S: 250-STARTTLS
S: 250 SMTPUTF8
C: STARTTLS
S: 220 2.0.0 Ready to start TLS
   (od tohto momentu je spojenie šifrované; klient znova posiela EHLO)
C: EHLO out.hosting.example
S: 250 ...
C: MAIL FROM:<anna@example.com> SIZE=24310
S: 250 2.1.0 Ok
C: RCPT TO:<jan@example.net>
S: 250 2.1.5 Ok
C: DATA
S: 354 End data with <CR><LF>.<CR><LF>
C: From: Anna <anna@example.com>
C: To: Jan <jan@example.net>
C: Subject: Offerte
C: Date: Sun, 8 Nov 2026 10:15:00 +0100
C: Message-ID: <a1b2c3@example.com>
C:
C: Hoi Jan, hierbij de offerte.
C: .
S: 250 2.0.0 Ok: queued as 4F2A1B
C: QUIT
S: 221 2.0.0 Bye

Príkazy jeden po druhom

PríkazVýznamPozor na
(pripojenie)Server pozdraví kódom 220 a svojím názvom.Toto sa nazýva banner. Ak server hneď povie 554, nechce vôbec komunikovať s vašou IP adresou (často kvôli blokovaciemu zoznamu).
EHLO názov„Ahoj, som out.hosting.example." Server odpovie rozšíreniami, ktoré pozná.Názov by mal byť skutočný názov odosielajúceho servera, najlepšie zhodný s jeho PTR záznamom (lekcia 5.1). HELO je stará varianta bez rozšírení.
STARTTLS„Od teraz šifrujme."Len ak to server ponúka. Medzi servermi je to zvyčajne dobrovoľné (lekcia 5.4).
MAIL FROM:<adresa>Odosielateľ obálky (envelope): sem smerujú chybové hlásenia.Neskôr sa stáva hlavičkou Return-Path. SPF kontroluje práve túto adresu. Prázdneho odosielateľa <> používajú servery pre vlastné chybové hlásenia, aby bounce nikdy nevyvolal ďalší bounce.
RCPT TO:<adresa>Príjemca. Môže sa opakovať, jeden na každého príjemcu.Práve tu by mal server už povedať, či adresa existuje. 550 5.1.1 v tomto momente je korektná, okamžite rozpoznateľná chyba.
DATA„Teraz príde samotná pošta." Server odpovie 354.Potom nasledujú hlavičky, prázdny riadok a text. Riadok s jedinou bodkou rozhovor ukončí.
QUITKoniec rozhovoru.

Najdôležitejšie poznanie: všetko pred DATA je obálka (envelope), všetko po DATA je obsah. To, čo je v MAIL FROM, a to, čo je v hlavičke From:, sa dodávajú oddelene a nemusia byť rovnaké. Server doručuje podľa RCPT TO; riadok To: v obsahu pri doručovaní nehrá žiadnu úlohu.

Kódy odpovedí

Prvá číslica kódu je najdôležitejšia:

Začína saVýznamČo robí odosielateľ?
2Úspech.Pokračuje sa ďalším krokom. 250 po DATA znamená: server poštu prevzal a je za ňu teraz zodpovedný.
3Pokračujte, čakám na viac.Len pri 354 po DATA (a pri prihlasovaní).
4Dočasná chyba: teraz nie, skúste neskôr.Pošta zostáva vo fronte a neskôr sa ponúkne znova.
5Trvalá chyba: toto sa nepodarí.Odosielateľ to vzdáva a posiela chybové hlásenie (bounce) na adresu odosielateľa z obálky.

Za trojciferným kódom uvádzajú moderné servery rozšírený stavový kód v tvare class.subject.detail (RFC 3463), napríklad 5.1.1. Prvá číslica je znova 2, 4 alebo 5. Druhá číslica hovorí, o čo ide: 1 = adresa, 2 = schránka, 3 = mailový systém, 4 = sieť a smerovanie, 5 = protokol, 6 = obsah, 7 = bezpečnosť a politika. Niekoľko príkladov, ktoré uvidíte často:

550 5.1.1  The email account that you tried to reach does not exist
452 4.2.2  Mailbox full (dočasné)
552 5.3.4  Message size exceeds fixed limit
451 4.7.1  Greylisted, please try again later
550 5.7.1  Message rejected (politika: spam, blokovací zoznam, DMARC)

V module 6 sa naučíte prečítať celý bounce a nájdete tam tabuľku s najčastejšími kódmi.

Prečo je dočasnosť a trvalosť taká dôležitá

Server, ktorý má pochybnosti, často odpovie kódom 4xx. Známym príkladom je greylisting: server, ktorý odosielateľa ešte nepozná, povie pri prvom pokuse „skúste to neskôr". Skutočný mailový server sa po pár minútach vráti, mnohé spamové programy nie. Aj veľkí príjemcovia používajú 4xx na spomalenie tempa, keď IP adrese ešte nedôverujú. Pre vás ako odosielateľa to znamená: oneskorenie, ale nie stratu. Systém si to zväčša vyrieši sám.

5xx je iné. Vtedy sa odosielateľ už nebude znova pokúšať. Ak dostanete 5xx, musí niekto niečo zmeniť: adresu, obsah alebo nastavenia odosielajúcej domény.

Jedna nástraha: niektoré servery vracajú 5xx, hoci je problém dočasný (napríklad pri plnej schránke 552 5.2.2), a iné vracajú 4xx pre niečo, čo sa nikdy nepodarí. Preto si vždy prečítajte text za kódom, nielen číslo.

Kto je zodpovedný?

Po 250 na konci DATA leží zodpovednosť na prijímajúcom serveri. Ak sa mu potom nepodarí umiestniť poštu do schránky, musí sám poslať chybové hlásenie späť. To je zdroj nepríjemného javu: backscatter. Server, ktorý najprv všetko prevezme a až neskôr zistí, že adresa neexistuje, posiela bounce na adresu odosielateľa z obálky. Ak bola táto adresa sfalšovaná spamerom, bounce dostane nevinná tretia strana. Preto by servery mali odmietnuť to, čo sa nedá doručiť, už pri RCPT TO (pozri aj catch-all v lekcii 3.3).

V praxi: SMTP vo vašom vlastnom prostredí

Bežný používateľ zriedka vidí celý SMTP rozhovor, ale vidí jeho časti:

  • v bounci je posledný riadok rozhovoru, napríklad Remote-MTA: mx1.mailprovider.example a Diagnostic-Code: smtp; 550 5.1.1 ...;
  • v hlavičkách prijatej pošty je pre každý server riadok Received: s názvom z EHLO a IP adresou (lekcia 1.5);
  • v paneli s mailovým logom, ako je E-mailové sledovanie v DirectAdmin u WebOké, vidíte pri každej správe odpoveď prijímajúceho servera. U iných poskytovateľov sa to môže volať napríklad sledovanie správ alebo mail log, a obsah je podobný.

Na to, aby ste si toto mohli prečítať, sa teda sami nemusíte pripájať k mailovému serveru. Kto to chce aj tak vyskúšať: pomocou openssl s_client -starttls smtp -connect server:25 môžete rozhovor viesť ručne, ale mnohí domáci poskytovatelia blokujú odchádzajúcu komunikáciu na porte 25 (lekcia 1.4).

Zhrnutie

  • SMTP je čitateľný rozhovor: EHLO, (STARTTLS), MAIL FROM, RCPT TO, DATA, QUIT.
  • Všetko pred DATA je obálka (doručovanie a chybové hlásenia), všetko po DATA je obsah s hlavičkami, ktoré vidíte.
  • 2xx = úspech, 4xx = dočasné (neskôr znova), 5xx = trvalé (bounce).
  • Rozšírený kód X.Y.Z hovorí, o čo ide; X.1 adresa, X.2 schránka, X.7 politika a bezpečnosť.
  • Vždy si prečítajte text za kódom; servery nie sú vždy dôsledné.

Kvíz

1. Ktorý príkaz obsahuje adresu, kam smeruje chybové hlásenie?



2. Server odpovie 451 4.7.1 Greylisted, please try again later. Čo robí dobrý odosielajúci server?



3. V ktorej časti rozhovoru je hlavička Subject:?



4. Čo hovorí druhá číslica v 550 5.1.1?



5. Prečo je lepšie, keď server neexistujúcu adresu odmietne už pri RCPT TO, namiesto toho, aby poštu najprv prevzal?



Úloha

Úloha Z1.2: Doména, ktorá nedostáva poštu. Vyhľadajte MX záznamy domény example.com. Zapíšte, čo ste našli, a vyberte, čo urobí odosielajúci server s poštou pre info@example.com: (a) doručí ju na server s prioritou 0, (b) skúsi A-záznam, (c) hneď to vzdá, alebo (d) skúsi to neskôr znova. Program MX záznam vyhľadá naživo a výsledok skontroluje.

Úloha Z1.2: Doména, ktorá nedostáva poštu

Vyhľadajte MX záznamy domény example.com a vyberte, čo odosielajúci server urobí s poštou pre info@example.com.



Čo vyplníte a čo nájdeme, neukladáme. Váš prehliadač si pamätá vaše odpovede a to, či ste úlohu splnili. Po prihlásení si v sekcii Moje kurzy uchovávame iba to, že úloha bola (takmer) správne vyriešená; aj to tam môžete odstrániť.

Ďalšie čítanie

Kroky v týchto článkoch platia pre panely WebOké; u iných poskytovateľov to funguje podobne.

Chvíľu strpenia…

Nastavte svoje domény

Pri každej doméne nastavte nameservery, prepojenie s hostingom a to, kto bude jej vlastníkom.

Načítavajú sa vaše domény…