Cum funcţionează e-Mailul

by donpedro

În ultimul secol, de trei sau patru ori tehnologia comunicării a fost revoluţionată transformând societatea în toate aspectele ei. Nume precum Morse, Bell sau Marconi sunt cunoscute de oricine şi legate de inventarea telegrafului, a telefonului sau a radioului, invenţii fără de care nu ne putem concepe viaţa. Puţină lume a auzit însă de Ray Tomlison. El este persoana care a trimis în 1971 primul e-mail din lume şi cel care a folosit semnul @ pentru a desemna computerul care urma să-l primească. Treptat, email-ul a devenit folosit pe scară largă rivalizând cu telefonia fixă şi, mai târziu cu cea mobilă. Puţină lume ştie sau se întreabă cum funcţionează telefonul, iar şi mai puţină ştie cum funcţionează e-mailul. La fel ca şi în cazul DNS-urilor, nici un utilizator obişnuit nu are nevoie să înţeleagă principiile pentru a-l folosi fără nici o problemă, dar în cazul în care doriţi realizarea unor aplicaţii care să folosească Internetul într-un fel sau altul, vă poate fi util. De aceea am să încerc să prezint mai jos principiul de funcţionare al acestuia.
Pentru a putea primi, trimite sau citi emailuri aveţi nevoie de un Client de Mail. Cele mai folosite sunt incluse în sistemele de operare (Outlook Express) sau în diverse pachete de aplicaţii (Microsoft Outlook ca parte din Microsoft Office sau Netscape Messenger ca parte din Netscape Communicator). Serviciile de email gratis (Hotmail, Yahoo) oferă clienţi de mail pe web care pot fi folosiţi cu ajutorul unui browser obişnuit. De orice tip ar fi, un client de mail îndeplineşte următoarele funcţii:
– primeşte şi arată mesajele afişând header-ul acestora (header ce conţine dimensiunea mesajului, cine l-a trimis, data şi ora la care a fost primit, etc.);
– permite selectarea unui email şi afişează conţinutul propriu-zis;
– permite crearea unui mesaj nou şi trimiterea lui la una sau mai multe adrese.
Programele mai complicate pot oferi diverse alte facilităţi, dar acestea trei reprezintă baza şi sunt absolut necesare.
Este de la sine înţeles că veţi avea nevoie şi de un server de web la care programul de mail folosit să se conecteze. Pe acest server trebuie să aveţi definită o adresă de email. Serverul de mail va funcţiona similar cu orice alt server, folosind însă standardele, porturile şi protocoalele specifice.
În teorie un server simplu de email ar funcţiona în felul următor:
– va conţine o listă cu conturile de email definite – spre exepmlu sunt definite două conturi bnita (pentru Bogdan Nita) şi rvilceanu (pentru Radu Vilceanu);
– va crea câte un fişier (să presupunem că este un simplu fişier text) pentru fiecare cont – bnita.txt şi rvilceanu.txt;
– dacă cineva doreşte să îmi trimită un mesaj cu conţinutul “Aş vrea să ne vedem la ora 11. Radu”, îl va compune cu un client de mail şi va indica la destinatar bnita. Apăsând butonul de trimitere serverul va primi un mesaj care va conţine destinatar (bnita), expeditor (rvilceanu) şi conţinutul propriuzis.
– serverul va adăuga la bnita.txt un text de genul:
From: rvilceanu
To: bnita
Aş vrea să ne vedem la ora 21.
Radu
– în momentul în care mă voi conecta la server cu un client de mail acesta va trimite către client bnita.txt, îl va goli, clientul va salva fişierul pe computerul meu, va separa mesajele după cuvântul “From” şi îmi va afişa headerul fiecăruia.

SERVERUL SMTP
Deşi acest sistem teoretic este foarte simplu, cel real nu este mult mai complicat. Majoritatea programelor de email folosesc două servere SMTP (Simple Mail Transfer Protocol – care are ca rol dirijarea mailurilor trimise) şi POP3 (Post Office Protocol – care dirijează mailurile primite). SMTP-ul foloseşte portul 110, iar SMTP-ul portul 25.
Să presupunem că doresc să trimit un mail de la adresa bnita@electronica-azi.ro la rvilceanu@ealliance.ro folosind Outlook Express. După ce am compus mesajul şi apăs butonul Send sistemul va funcţiona după cum urmează:
– Outlook Express se va conecta la serverul de SMTP de pe mail.electronica-azi.ro pe portul 25;
– Outlook-ul va trimite serverului adresa destinatarului, expeditorul şi conţinutul mesajului;
– serverul va despărţi destinatarul în două părţi după caracterul @ – destinatarul, “rvilceanu” şi domeniul, “ealliance.ro”;
– serverul SMTP discută cu un DNS de la care obţine adresa IP pentru domeniul ealliance.ro;
– serverul SMTP de la electronica-azi.ro se conectează la serverul SMTP al ealliance.ro şi îi trimite mesajul;
– serverul SMTP de la ealliance.ro va trimite mesajul serverului POP3 de pe aceeaşi maşină care va depune mesajul în recipientul rvilceanu. Comunicaţia între serverul POP3 şi SMTP de pe aceeaşi maşină se face printr-un program denumit delivery agent;
– dacă dintr-un oarecare motiv serverul SMTP al ealliance.ro nu poate fi contactat atunci mesajul dumneavoastră va fi trimis într-o coadă de aşteptare. La intervale fixe serverul va încerca să retrimită mesajele din coadă, până când va reuşi sau timpul de aşteptare în coadă (aproximativ câteva ore) va expira, caz în care va trimite un mesaj de eroare.
Discuţia pe care clientul de email o are cu serverul SMTP arată în felul următor:
Client: helo test
Server: 250 mx1.mindspring.com Hello abc.sample.com
Server: [220.57.69.37], pleased to meet you
Client: mail from: test@sample.com
Server: 250 2.1.0 test@sample.com… Sender ok
Client: rcpt to: jsmith@mindspring.com
Server: 250 2.1.5 jsmith… Recipient ok
Client: data
Server: 354 Enter mail, end with “.” on a line by itself
Client: from: test@sample.com
Client: to:jsmith@mindspring.com
Client: subject: testing
Client: John, I am testing…
Client: .
Server: 250 2.0.0 e1NMajH24604 Message accepted for delivery
Client: quit
Server: 221 2.0.0 mx1.mindspring.com closing connection
Server: Connection closed by foreign host.
O astfel de discuţie puteţi simula şi dumneavoastră pe portul 25 având în vedere că serverul SMTP acceptă comenzi text simple. Cele mai folosite sunt:
HELO – prezentarea dumneavoastră
EHLO – prezentarea dumneavoastră şi cerere de extended mode
MAIL FROM: – specifică expeditorul
RCPT TO: – specifică destinatarul
DATA – specifică conţinutul mesajului
VRFY – verifică o adresă
RSET – reset
QUIT – închide conexiunea cu serverul
HELP – afişează lista de comenzi acceptate

SERVERUL POP3
În cele mai simple implementări ale sale serverul POP3 foloseşte exact fişierele text descrise în modelul teoretic. Conectarea se va face de către client pe portul 110, similar cu SMTP-ul, cu excepţia ca de această dată aveţi nevoie de autentificare cu username şi parola. Serverul POP3 acceptă de asemenea un set de comenzi text foarte simple:
USER – introduceţi username-ul
PASS – introduceţi parola
LIST – afişează mesajele şi dimensiunea lor
RETR – descarcă un mesaj anume
DELE – şterge un mesaj anume
TOP – arată primele x linii dintr-un mesaj anume
QUIT – închide conexiunea cu serverul

ATTACHMENTS
Lucrurile se complică un pic în momentul în care doriţi să ataşaţi la mesajul dumneavoastră un fişier anume. Din moment ce aceste fişiere sunt de obicei altceva decât text nu pot fi trimise în mod obişnuit. La începuturile emailului se folosea un program uuencode. Acesta citea fişierul în cauză şi fiecare 3 octeţi îi transforma în patru caractere (la fiecare 6 biţi adăuga 32 la valoarea lor şi obţinea un caracter conform tabelului ASCII). Un astfel de program returna o succesiune de caractere în genul celor de mai jos:
“begin 644 reports
M9W)E<" B<&P_(B O=F%R+VQO9R]H='1P9"]W96(V-1F-V-EIMC (Internet Mail Consortium),

http://www.imc.org.
bogdan.popa@ealliance.ro

S-ar putea să vă placă și