Administrare server open source

Platforma de hosting cu software liber, gratuit, open source.

Comentariile sunt închise pentru Cum functioneaza un client de mail

In functie de ISP-ul care il alegeti pentru contul de mail, se intampla sa primiti una sau mai multe adrese carora ISP-ul le spune “servere de mail”. Ok… unii stiu ce-s alea, altii nu… unii dintre cei care stiu ce-s alea nu stiu sigur cum functioneaza… asa ca pun mai jos cateva randuri despre serverele de mail.

Ca sa va puteti verifica mailul folosind Mozilla, Thunderbird, Outlook, The Bat sau orice alt client de mail va place aveti nevoie de 3 lucruri: un cont de mail, acces la serverul SMTP aferent contului de mail si acces la serverul POP3 (sau IMAP – in functie de preferinte).

1. Serverul SMTP are rolul de a primi sau de a trimite mailuri. Adica, daca scrieti un mail si dati send clientul de mail creaza o conexiune pe serverul SMTP si ii spune acestuia sa trimita mesajul. Functionarea e relativ simpla… va dau un exemplu mai jos, va prindeti voi despre ce e vorba:

root @ server# telnet exemplu.ro 25
Trying 64.xxx.xxx.xxx...
Connected to exemplu.ro.
Escape character is '^]'.
220-exemplu.ro ESMTP Exim 4.52 #1 Tue, 25 Jul 2006 11:09:54 +0300
220-We do not authorize the use of this system to transport unsolicited,
220 and/or bulk e-mail.
HELO joe
250 exemplu.ro Hello joe [yyy.yyy.yyy.yyy]
MAIL FROM: utilizator @ exemplu.ro
250 OK
RCPT TO: utilizator @ exemplu.ro
250 Accepted
DATA
354 Enter message, ending with “.” on a line by itself
Test - aici scrieti tot mesajul… (se termina cu un punct pe linie noua)
.
250 OK id=1G5I1h-0001zM-I0
QUIT
221 exemplu.ro closing connection
Connection closed by foreign host.
root @ server#

Ok… Ce am facut acum ? Am facut exact ce trebuie sa faca un client de mail… m-am conectat pe portul 25 al unui server SMTP (in cazul de fata exim) si am dat cateva comenzi cu ajutorul carora am trimis un mesaj. Daca folositi un sniffer puteti vedea ca acelasi lucru il face si clientul de mail… se conecteaza pe portul 25, trimite cateva comenzi, mesajul si… gata…

Acum sa analizam comenzile date… prima data am dat telnet exemplu.ro 25. Asta inseamna ca am pornit o sesiune pe portul 25 (portul SMTP).

Am primit raspuns din partea serverul cum ca totul ar fi OK, conexiunea este permisa.
Mai departe, trebuia sa ma prezint, asa ca folosesc comanda HELO impreuna cu numele sistemului de pe care trimit. Dupa cum vedeti am pus joe… dar puteam la fel de bine sa pun orice altceva pentru ca serverul imi recunoaste IP-ul – se poate vedea in raspunsul 250 exemplu.ro Hello joe [yyy.yyy.yyy.yyy] .
Mai departe am folosit comenzile MAIL FROM pentru a specifica adresa de pe care vreau sa trimit, RCPT TO pentru a specifica adresa catre care trimit si DATA pentru a scrie mesajul. Campul DATA (adica mesajul) se termina cand adaugam o linie noua care va avea ca si continut un punct “.”.

Bineinteles, se pot da mult mai multe comenzi decat am pus eu aici… ce am pus mai sus a fost doar un test simplu (dar functional). Ca sa va distrati putin, ati putea inlocui adresa data la MAIL FROM. Puneti, de exemplu, billy @ microsoft.com. Destinatarul va avea surpriza sa vada ca il cauta tocmai “Billy Gates”

2. Serverul POP3 este folosit impreuna cu serverul de SMTP. Probabil va intrebati “Care e rolul lui?”. Ei bine, serverul SMTP primeste mesajele si le lasa intr-un cont local. Pentru a putea citi mesajele aveti nevoie de acces la sistemul pe care este pus serverul. Bineinteles, nu e comod nici pentru ISP nici pentru client sa se deschida o sesiune telnet sau ssh din care sa se citeasca mailurile. Asa ca s-a facut serverul POP3

Serverul POP3 citeste mailurile dintr-un anumit cont. Bineinteles, trebuie sa aveti user (si parola) pe serverul respectiv pentru a putea citi mailurile.

Daca ati reusit sa va autentificati, prin diferite comenzi puteti citi mailurile, puteti vedea ce mesaje noi mai exista sau, de ce nu, puteti verifica daca e valid contul care il aveti.

Pun mai jos o sesiune telnet pe portul 110 ca sa va faceti o idee despre cum functioneaza:
Code:

root @ server# telnet exemplu.ro 110
Trying 64.xxx.xxx.xxx...
Connected to exemplu.ro.
Escape character is '^]'.
+OK Hello there.
USER user
+OK Password required.
PASS parola_gresita
-ERR Login failed.
+OK Password required.
PASS parola_mea
+OK logged in.
STAT
+OK 0 0
QUIT
+OK Bye-bye.
Connection closed by foreign host.
root @ server#

Ce am facut ? M-am conectat la server pe portul 110 (portul pentru POP3). Dupa cum vedeti, nu mai trebuia sa ma prezint… cum am reusit conexiunea, m-a si “salutat” serverul.

Ca sa ma autentific trebuie sa introduc user si parola folosind comenzile USER respectiv PASS. Daca va uitati in exemplul de mai sus, am introdus intentionat o parola gresita prima data… daca nu a reusit autentificarea am primit mesajul de eroare -ERR Login failed.. Am reincercat (de data asta cu o parola buna) si autentificarea a fost facuta fara problema (si m-a anuntat prin mesajul logged in).

Am folosit comanda STAT pentru a vedea daca am primit mesaje noi. Se pare ca nu am primit nici un mesaj… asa ca am iesit folosind comanda QUIT.

Ce puteam face daca aveam mesaje ? Daca aveam, de exemplu, un mesaj de 1500 bytes, comanda stat mi-ar fi returnat un mesaj de genul +ok 1 1500. Asta inseamna ca am un mesaj… ca sa il citesc pot folosi comanda TOP. Comanda TOP primeste 2 parametrii. Primul e numarul mesajului iar al doilea e numarul de linii din mesaj care vreau sa le citesc.

Adica… daca dau TOP 1 0 serverul imi afiseaza din mesajul nr. 1 doar headerele (nici o linie din mesaj). Daca dau TOP 1 50 serverul imi afiseaza din mesajul nr. 1 primele 50 de linii (sau mai putin, daca mesajul are mai putin de 50 de linii).

Mail

Comments are closed.