Mnogi od vas se zasigurno pitaju što se događa „ispod haube“ kada pošaljete email poruku iz svog omiljenog email klijenta, odnosno na koji način se odvija komunikacija i primopredaja (engl. relay) poruke. One koje to zanima, a žele znati osnovne najpopularnijeg mailing protokola, u nastavku teksta uvodim vas u proces spomenutog načina komunikacije.

Krenuvši od klijentske strane, nije nikakav problem instalirati i konfigurirati softver koji će vršiti proces slanja i primanja email poruka, tzv. klijent-server komunikacija, ako znamo potrebne parametre koji će to omogućiti. Neki od najpopularnijih računalnih email klijenata su Mozilla Thunderbird i Microsoft Outlook. Ovdje ću se fokusirati na lokalne email klijente, dakle one koje instaliramo na svojim računalima, iako su, pogotovo u zadnje vrijeme, popularniji oni koje koristimo na Internetu – web-based email sustavi poput popularnog Google Maila, Yahoo! Maila, Hotmaila itd. Vendori ih još vole nazivati cloud-based email, jer danas je cloud buzzword, svaki javno, visoko dostupni servis na Internetu je danas cloud ili neka vrsta clouda (SaaS, PaaS, IaaS…).

Da bi uopće mogli slati legitimne emailove moramo kod nekog od pružatelja usluga imati kreiranu email adresu, bilo na vlastitoj domeni, bilo na nekoj domeni koja nije u našem vlasništvu. Zašto ovdje spominjem riječ legitimne? Očito zato jer postoje načini da zaobiđemo apsolutno sva pravila valjane email komunikacije, odnosno ne moramo imati niti email klijent, niti email adresu, niti domenu da bi mogli poslati email poruku. Iz ovog teksta ćete možda i naučiti kako zaobići ta pravila no moram napomenuti da: „We do not authorize the use of this blogpost to transport unsolicited, and/or bulk e-mail.“ 😉 Ovu poruku koristi veliki broj transportnih servisa (SMTP) prilikom spajanja na iste, tzv. welcome disclaimer message, naravno umjesto “blogpost” administratori stavljaju “server” ili “system” 🙂

Jedan od spomenutih parametara koje moramo znati kako bi konfigurirali email klijenta jest SMTP (engl. Simple Mail Transfer Protocol). U osnovi, to je jedan od glavnih protokola odnosno servisa koji služi za slanje poruka s email klijenata i za transfer email poruka između mail servera, odnosno MTA (engl. mail transfer agent). Neki od najpoznatijih mail servera su Microsoft Exchange, Qmail, Exim i Sendmail.


Dijagram e-mail komunikacije od klijenta do klijenta.

Svaki od mail servera radi na sličnom principu i imaju neke zajedničke osobine no ipak postoje neke unutarnje razlike u izvedbi tehnologije koje ovdje neću opisivati. SMTP je opisan u RFC821 memorandumu davne 1982. godine, te je naknadno konsolidiran u RFC2821 memorandumu. Usput, ako želite znati sve o metodama i pravilima funckioniranja pojedinih internetskih sustava IETF Request for Comments repozitorij je pravo mjesto za vas 😉

Dakle, ono što mora biti zajedničko svim mail serverima je jezik kojim komuniciraju, a to rade pomoću SMTP servisa u server-server komunikaciji. Ista stvar vrijedi i za klijent-server komunikaciju. Svojem email klijentu, npr. Outlooku, vi morate zadati preko kojeg SMTP servera ćete email dostaviti primatelju.

Microsoft Outlook
Postavke Microsoft Outlook e-mail klijenta.

Nakon što ste pravilno podesili email postavke spremni ste za slanje i primanje email poruka. Napisali ste poruku koju želite nekom poslati i u trenutku slanja s email klijenta isti zapravo izvodi nekoliko komandi prema postavljenom SMTP serveru enkapsuliranih u paketima koje mi zapravo ne vidimo, ali u sljedećem primjeru ću napraviti okvirni prikaz kako to izgleda. Moram napomenuti da se proces može razlikovati a ovisi o tome kako je SMTP server konfiguriran i koji su njegovi zahtjevi, no u ovom primjeru proces će biti temeljen u suradnji sa SMTP serverom koji uglavnom dobijemo od pružatelja Internet usluga (ISP), tzv. Open Relay SMTP server koji je dostupan samo korisnicima njihovih internetskih usluga. Npr. ako koristite T-Com kao pružatelja usluga, možete koristiti i njihov SMTP server “mail.t-com.hr”. Osnovni (komunikacijski) alat kojim ću se koristiti u „razgovoru“ sa SMTP servisom je telnet naredba koju možemo pozvati iz komandnog sučelja.

Da bi uspostavili kontakt sa SMTP serverom, moramo se na njega spojiti. Osim ako drugačije nije definirano, SMTP je po defaultu mapiran na port 25 (nekriptirana veza) i port 465 (kriptirana veza). S obzirom da telnet klijent koristi clear-text komunikaciju, s njim se moguće spojiti samo na nekriptirani kanal, dakle u ovom slučaju na port 25. Sintaksa je sljedeća:

K: # telnet mail.t-com.hr 25 //s ovom komandom se spajamo na SMTP servis

S: 220 Welcome to the SMTP server. //ako je veza dopuštena, SMTP će odgovoriti s porukom 220. Poruke iza ovih brojeva variraju, a svaki broj ima svoje značenje.

K: # HELO testiram //da bi uopće započeli komunikaciju moramo se uljudno 😉 predstaviti SMTP serveru s komandom HELO „neko ime“ (postoji i EHLO – Extended HELO)

S: 250 OK //server potvrđuje

K: # MAIL FROM: sender@domena.tld //specificiramo s koje adrese želimo poslati poruku

S: 250 2.1.0 Ok //server potvrđuje

K: # RCPT TO: recipient@domena.tld //specificiramo kome želimo poslati email

S: 250 2.1.5 Ok //server potvrđuje

K: # DATA //ovime poručujemo serveru da želimo nešto i napisati u emailu

S: 354 End data with .  //server odgovara da je u redu i da poruku moramo završiti s točkom u zadnjem retku

K: # Subject: Ovo je testni email //definiramo temu poruke i prebacimo se na novi redak s tipkom Enter gdje započinjemo s pisanjem tijela (engl. body) poruke.

#  Ovo je testna email poruka. //tijelo poruke

# .  //točkom završavamo poruku čime se email automatski šalje, kao da ste stisnuli “Send Message” u email klijentu

S: 250 2.0.0 Ok: queued as IDporuke //server na temelju unešenih podatka analizira poruku te je dalje prosljeđuje u lokalni mailbox store ukoliko se domena primatelja nalazi u njegovoj bazi ili je pak prosljeđuje dalje.

K: # QUIT //ovom naredbom zaključujemo komunikaciju sa SMTP serverom

U ovom slučaju, server će daljnu primopredajuemaila vršiti sličnom komunikacijom sa SMTP konektorom koji je zadužen za domenu primatelja, a odluku gdje će poruku dostaviti uglavnom temelji na provjeri lokalne baze emailova ili provjerom MX recorda za domenu.  

U gornjem primjeru je navedena tek desetina komandi koje se mogu koristiti, kao što je rečeno – ovisno o postavljenim zahtjevima (npr. metodi autentikacije, sigurnosnim postavkama i sl.), a za one koje žele znati više koristite RFC memorandume, primjere na webu ili jednostavno komentirajte pa ćemo pokušati odgovoriti.

Naravno, SMTP je tek jedan od protokola ili servisa povezanih sa email sustavima, no imamo i ostale poput POP3 i IMAP koji su zaduženi za primanje emailova. Email sustavi su kompleksna tema, a ovdje je ukratko opisan proces transakcije emaila.

CyberFolk
>
CyberFolk
Vaš sam vodič u digitalnom carstvu i prisutan sam u svijetu hostinga više od 25 godina. Na internetu istražujem nove tehnologije, pružajući podršku i rješenja koja odražavaju vaše jedinstvene potrebe.

Dodaj komentar

Vaša email adresa neće biti objavljena.

Tražite li dalje?