Modul 1 · 1.1
Putovanje jedne e-poruke
Modul 1: Kako funkcionira e-mail · Vrijeme čitanja: 9 minuta
Cilj učenja: Nakon ove lekcije moći ćete korak po korak opisati kako e-poruka stiže od pošiljatelja do primatelja, te za svaki korak reći koji program ili poslužitelj obavlja taj posao.
Ključni pojmovi: program za e-poštu (MUA), poslužitelj za slanje (MSA, submission), mail poslužitelj (MTA), MX zapis, red čekanja, dostava (MDA), mailbox, preuzimanje (IMAP/POP3), envelope, zaglavlja
E-pošta je pismo, a ne poruka u chatu
Kad pošaljete poruku u chat aplikaciji, ona ide preko jedne tvrtke: aplikacija pošiljatelja i aplikacija primatelja razgovaraju s istim poslužiteljima. E-pošta funkcionira drugačije. Pošiljatelj i primatelj mogu biti kod različitih pružatelja usluga: jedan kod hosting tvrtke, drugi na Gmailu, treći na Microsoft 365 ili na vlastitom poslužitelju tvrtke. Pa ipak, poruka stigne na odredište. To uspijeva jer svi mail poslužitelji na svijetu slijede ista pravila.
E-poštu možete dobro usporediti s klasičnom poštom. Napišete pismo (poruku), stavite ga u omotnicu s adresom (envelope), odnesete ga do poštanskog sandučića (poslužitelj za slanje), poštanska tvrtka utvrdi gdje se nalazi ta adresa (pretraga MX zapisa), preveze pismo do odgovarajućeg sortirnog centra (poslužitelj primatelja), a on ga stavi u poštanski sandučić primatelja (mailbox). Primatelj ga odande preuzme kada mu odgovara.
Stanice redom
Recimo da Ana šalje poruku s adrese anna@example.com na jan@example.net. Evo što se događa:
| Korak | Who | Što se događa | Protokol |
|---|---|---|---|
| 1 | Anin program za e-poštu (MUA, mail user agent) | Ana pritisne Send. Program se prijavi na poslužitelj za slanje njezina pružatelja usluge i preda poruku. | SMTP-submission, priključak 587 ili 465, uz prijavu |
| 2 | Poslužitelj za slanje domene example.com (MSA, mail submission agent) | Provjerava je li Ana stvarno Ana (korisničko ime i lozinka) i stavlja poruku u red čekanja. | |
| 3 | Odlazni mail poslužitelj (MTA, mail transfer agent) | Pita DNS: koji poslužitelj prima poštu za example.net? To su MX zapisi. | DNS |
| 4 | Odlazni MTA prema MTA primatelja | Uspostavlja vezu s poslužiteljem iz MX zapisa i dostavlja poruku. | SMTP, priključak 25 |
| 5 | Poslužitelj primatelja domene example.net | Provjerava poruku (spam, viruse, SPF, DKIM, DMARC) i stavlja je u mailbox Jana. Ovaj posljednji dio naziva se MDA (mail delivery agent). | |
| 6 | Janov program za e-poštu ili webmail | Preuzima poruku ili je prikazuje izravno s poslužitelja. | IMAP (priključak 993) ili POP3 (priključak 995) |
Kod malih pružatelja usluga, MSA, MTA i MDA često su jedan te isti program na jednom poslužitelju. Kod velikih pružatelja usluga to su odvojeni klasteri. Za Vas to nema previše značenja: riječ je o ulogama, a ne o fizičkim uređajima.
Obratite pozornost na razliku između koraka 1 i koraka 4. Oba koriste SMTP, Simple Mail Transfer Protocol (RFC 5321). No kod koraka 1 prijavljujete se i koristite priključak 587 ili 465; to se naziva submission (RFC 6409). Kod koraka 4 dva poslužitelja međusobno razgovaraju na priključku 25, bez prijave: poslužitelj primatelja prima poštu za svoje vlastite domene od bilo koga. U lekciji 1.4 vidjet ćete zašto postoji ta podjela.
Korak 3 izbliza: pretraga MX zapisa
Poslužitelj koji šalje poruku sam po sebi ne zna gdje example.net prima svoju poštu. On to pita DNS:
example.net. 3600 IN MX 10 mx1.mailprovider.example.
example.net. 3600 IN MX 20 mx2.mailprovider.example.Niži broj ima prednost. Poslužitelj prvo pokušava mx1, a ako taj ne odgovori, pokušava mx2. Zatim dohvaća IP adresu tog naziva (A ili AAAA zapis) i uspostavlja vezu.
Dva posebna slučaja na koje ćete naići u praksi:
- Nema MX zapisa. Tada pošiljatelj pokušava s A ili AAAA zapisom same domene (takozvani "implicitni MX" iz RFC 5321, odlomak 5.1). To je ostatak iz prošlosti i ne funkcionira pouzdano; svaka domena koja prima poštu trebala bi imati MX zapis.
- Null MX:
0 .Ovo znači: "ova domena nikada ne prima poštu" (RFC 7505). Domenaexample.comima upravo takav zapis. Pošiljatelj odmah odustaje i šalje poruku o grešci natrag, umjesto da danima nastavlja pokušavati.
Kako točno funkcioniraju MX zapisi i prioriteti, pročitajte u lekciji 4.1 tečaja o DNS-u.
Red čekanja: e-pošta smije malo potrajati
E-poruka ne stigne uvijek u roku od sekunde. Ako poslužitelj primatelja ne odgovori, ili kaže "pokušajte ponovno kasnije" (kod koji počinje brojem 4), poruka ostaje u redu čekanja poslužitelja za slanje. Taj poslužitelj kasnije ponovno pokušava, svaki put s malo više vremena između pokušaja. RFC 5321 (odlomak 4.5.4.1) preporučuje najmanje 30 minuta između pokušaja i odustajanje tek nakon 4 do 5 dana. Mnogi poslužitelji nakon nekoliko sati već šalju upozorenje ("delayed", još nije dostavljeno), a nakon nekoliko dana konačnu poruku o grešci.
To je velika prednost e-pošte: ako je mail poslužitelj neispravan sat vremena, nijedna poruka se ne gubi. To je i razlog zašto poruka ponekad stigne tek sati kasnije. U modulu 6 saznat ćete kako prepoznati takvo kašnjenje.
Envelope i zaglavlja: dvije adrese
Baš kao i kod klasične pošte, e-poruka ima dvije vrste adresa:
- Envelope. To su adrese koje poslužitelji međusobno koriste tijekom SMTP razgovora:
MAIL FROM(pošiljatelj za poruke o greškama, kasnije vidljiv kao Return-Path) iRCPT TO(primatelj). Poslužitelji dostavljaju poruku na temelju envelope podataka. - Zaglavlja (headers). To je ono što piše u samom pismu:
From:,To:,Cc:,Subject:,Date:. Vaš program za e-poštu prikazuje upravo to.
Najčešće su jednaki, ali ne uvijek. BCC primatelj se nalazi u envelope podacima, ali ne i u zaglavljima; zato ga drugi ne vide. Usluga za newslettere kao envelope pošiljatelja postavlja svoju vlastitu adresu, tako da poruke o grešci stižu toj usluzi, dok u polju From: stoji Vaša adresa. A prevarant u polje From: može staviti što god želi.
Zašto je ovo važno: SPF provjerava envelope pošiljatelja, a korisnik vidi From:. Zato postoji DMARC, koji povezuje to dvoje (modul 4).
Gdje može poći po krivu
S ovom slikom u glavi, kod svakog problema možete postaviti pitanje: na kojoj stanici nešto ne valja?
- Slanje ne uspijeva (poruka o grešci odmah u Vašem programu): korak 1 ili 2. Gotovo uvijek su u pitanju postavke: priključak, prijava, lozinka (modul 2).
- Dobijete povratnu poruku (bounce): korak 4 ili 5. Poslužitelj primatelja odbio je poruku, ili adresa ne postoji (modul 6).
- Poruka stiže, ali u mapi neželjene pošte: korak 5. Primatelj ne vjeruje poruci (moduli 4 i 5).
- Primatelj ništa ne vidi, a Vi ne dobivate poruku o grešci: poruka je možda još uvijek u redu čekanja, ili je kod primatelja tiho filtrirana. Ovdje pomažu zapisnici (logovi) poslužitelja za slanje (modul 6).
- Poruke uopće ne stižu za Vašu domenu: korak 3. MX zapisi nisu ispravni, na primjer nakon selidbe (modul 8).
U praksi: ovako to izgleda kod hosting paketa
Kod hosting paketa tvrtke WebOké, jedan poslužitelj po paketu obavlja sve uloge: Vaš program za e-poštu predaje poruku tom poslužitelju (korak 1 i 2), poslužitelj je šalje van (korak 3 i 4) te prima poštu za Vašu domenu (korak 5). U DirectAdmin alatu E-mail Tracking možete po poruci provjeriti je li dostavljena. Kod drugih pružatelja usluga to funkcionira slično; tamo se takva funkcija naziva na primjer "praćenje poruka" ili "mail log".
Sažetak
- Poruka ide od Vašeg programa za e-poštu (MUA) preko poslužitelja za slanje (MSA/MTA) do poslužitelja primatelja (MTA/MDA) i odatle do programa za e-poštu primatelja.
- Slanje iz Vašeg programa je SMTP-submission uz prijavu (587/465); poslužitelji međusobno razgovaraju SMTP-om na priključku 25; preuzimanje se odvija putem IMAP-a ili POP3-a.
- Poslužitelj koji šalje poruku pretražuje MX zapise domene iza znaka @. Null MX (
0 .) znači: ova domena ne prima poštu. - Poruka koja se ne može odmah dostaviti ostaje u redu čekanja i ponovno se pokušava dostaviti danima.
- Envelope (Return-Path) i zaglavlja (From) dvije su različite oznake pošiljatelja. SPF gleda prvu, korisnik drugu.
Kviz
Zadatak
Zadatak Z1.1: Pronalaženje prvog mail servera. Pronađite MX zapise domene gmail.com (ili svoje vlastite domene). Upišite koji se poslužitelj prvi pokušava, s njegovim brojem prioriteta, te jednu IP adresu (IPv4 ili IPv6) tog poslužitelja. Program će iste podatke dohvatiti uživo i provjeriti ih.
Daljnje čitanje
Koraci u ovim člancima vrijede za panele tvrtke WebOké; kod drugih pružatelja usluga postupak je sličan.
- Objašnjenje postupka slanja e-pošte / SMTP
- DirectAdmin priručnik 8.7: IMAP ili POP3: koja je razlika?
- Besplatni DNS tečaj 4.1: MX zapisi i prioritet
- RFC 5321 (SMTP), odlomak 5.1 (MX i implicitni MX) i 4.5.4.1 (ponovno pokušavanje); RFC 7505 (null MX)
