SMTP – Simple Mail Transfer Protocol

Cu toti trimitem zilnic mail-uri ( la colegi, prieteni, etc). Acest lucru nu ar fi posibil fara existenta protocolului SMTP.
Obiectivul protocolului SMTP este de a trimite mail-uri intr-un mod eficient. El este independent de sistemele care participa la comunicatie, atat timp cat se asigura un canal prin care datele ( sub forma de siruri ) sa fie transmise intr-un mod ordonat .

Protocolul SMTP foloseste urmatorul model de comunicatie: transmitatorul, ca urmare a unei cereri de transmisie a mail-ului, stabileste o legatura bidirectionala cu receptorul. Receptorul poate fi destinatarul final al mail-ului sau doar un intermediar. Comenzile SMTP sunt generate de catre transmitator si trimise catre receptor. Raspunsurile SMTP sunt generate de catre receptor si transmise transmitatorului.

modelsmtp

Dupa ce se stabileste canalul de comunicatie intre transmitator si receptor, transmitatorul trimite comanda MAIL indicand expeditorul mail-ului. Daca receptorul poate accepta mail-ul de la expeditorul respectiv va raspunde cu mesajul OK.
Apoi, transmitatorul trimite comanda RCPT indicand destinatarul mail-ului. Daca receptorul poate primi mail-uri pentru destinatarul respectiv va raspunde cu mesajul OK, in caz contrar va raspunde cu un mesaj de eroare. Transmitatorul si receptorul pot negocia mai multi destinatari. Atunci cand destinatarii au fost negociati, transmitatorul trimite mesajul propriu-zis, terminat cu o secventa speciala.Daca receptorul primeste mesajul corect, va raspunde cu mesajul OK. Dialogul trebuie sa aiba loc secvential, pas cu pas, cate un singur pas o data.

Dupa cum spuneam mail-urile pot fi trimise direct spre receptorul final sau spre un intermediar. Din acest motiv este necesar sa se precizeze numele de host al destinatiei finale precum si utilizatorul caruia ii este destinat mesajul.
Atunci cand un mesaj este trimis catre mai multi destinatari, protocoul SMTP incurajeaza trimiterea datelor din mesaj o singura data pentru toti destinatarii care apartin aceluiasi sistem destinatie.

Comenzile si raspunsurile folosite de catre protocolul SMTP au o sintaxa rigida, care trebuie respectata cu strictete. Raspunsurile au atasate si cate un cod numeric. Comenzile si raspunsurile pot fi scrise atat cu majuscule cat si cu minuscule si sunt formate din caractere din setul ASCII.

Codurile numerice ale raspunsurilor sunt prezentate mai jos, ordonate dupa functii:

500 Syntax error, command unrecognized
501 Syntax error in parameters or arguments
502 Command not implemented
503 Bad sequence of commands
504 Command parameter not implemented
211 System status, or system help reply
214 Help message
220 <domain> Service ready
221 <domain> Service closing transmission channel
421 <domain> Service not available, closing transmission channel
250 Requested mail action okay, completed
251 User not local; will forward to <forward-path>
450 Requested mail action not taken: mailbox unavailable
550 Requested action not taken: mailbox unavailable
451 Requested action aborted: error in processing
551 User not local; please try <forward-path>
452 Requested action not taken: insufficient system storage
552 Requested mail action aborted: exceeded storage allocation
553 Requested action not taken: mailbox name not allowed
354 Start mail input; end with <CRLF>.<CRLF>
554 Transaction failed

Comenzile SMTP sunt urmatoarele:

HELO <SP> <domain> <CRLF>
MAIL <SP> FROM:<reverse-path> <CRLF>
RCPT <SP> TO:<forward-path> <CRLF>
DATA <CRLF>
RSET <CRLF>
SEND <SP> FROM:<reverse-path> <CRLF>
SOML <SP> FROM:<reverse-path> <CRLF>
SAML <SP> FROM:<reverse-path> <CRLF>
VRFY <SP> <string> <CRLF>
EXPN <SP> <string> <CRLF>
HELP [<SP> <string>] <CRLF>
NOOP <CRLF>
QUIT <CRLF>
TURN <CRLF>

Un exemplu simplu de trimitere a unui mesaj este cel de mai jos, unde mail-ul este trimis de Ionel de la host-ul exemplu.net catre Sergiu, Paul, Dan de la hostul dest.net

Transmitator: MAIL FROM:<Ionel@exemplu.net>
Receptor: 250 OK
Transmitator: RCPT TO:<Sergiu@dest.net>
Receptor: 250 OK
Transmitator: RCPT TO:<Paul@dest.net>
Receptor: 550 No such user here
Transmitator: RCPT TO:<Dan@dest.net>
Receptor: 250 OK
Transmitator: DATA
Receptor: 354 Start mail input; end with <CRLF>.<CRLF>
Transmitator: Blah blah blah…
Transmitator: …etc. etc. etc.
Transmitator : <CRLF>.<CRLF>
Receptor: 250 OK

Acest mail a fost acceptat pentru Sergiu si Dan. Paul nu are cont la host-ul dest.net.

Articole asemanatoare:

Bogdan Turcanu

Bogdan Turcanu

One thought on “SMTP – Simple Mail Transfer Protocol

  1. Is chiar faine tutorialele.
    Daca as gasi astfel de tutoriale in romana si pentru Linux ar fi ceva.
    Oricum, citesc in engleza dar pacat ca nu sunt romani sa faca tutoriale pt Linux in romana…

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.