SMTP

SMTP (trumpinys nuo  'paprastas pašto perdavimo protokolas') – de facto standartas el.pašto laiškų perdavimui internete. Naudojamas elektroniniams laiškams pristatyti į gavėjo el.pašto dėžutę.

SMTP protokolas yra santykinai paprastas. Siunčiančioji pusė (klientas) duoda tekstines komandas, gaunančioji (serveris) apie komandų vykdymo rezultatus praneša grąžindama „klaidų (būsenos) kodus“. Originali SMTP protokolo versija reikalavo, kad tiek komandos, tiek laiško turinys būtų ASCII koduotėje. Dėl to buvo komplikuota siųsti dvejetainius failus. Šiai problemai spręsti buvo naudojamas MIME protokolas arba 8BITMIME išplėtimas.

Praplėsta SMTP versija – ESMTP (), apibrėžta 1995, dokumentavo iki to laiko susikaupusius protokolo patobulinimus ir standartizavo SMTP protokolo išplėtimo galimybes.

Pagrindinės komandos 
 HELO siuntėjo.domenas Pirmoji komandą prisijungus prie SMTP serverio
 EHLO siuntėjo.domenas Pirmoji komanda prisijungus prie ESMTP serverio

 MAIL FROM <siuntėjo@adresas> siuntėjo nurodymas
 RCPT TO <gavėjo@adresas> gavėjo adresas, vienos sesijos metu gali būti nurodyti keli gavėjai

 DATA instrukcija, kad klientas pasiruošęs siųsti el.pašto laiško turinį

 QUIT paskutinė sesijos komanda

Klaidų kodai 
Klaidų kodai yra tekstas, susidedantis iš 3 skaitmenų, skyriklio (tarpo simbolio arba minuso) ir paaiškinimo žmogui tiesiogiai suprantama kalba. Tarpas naudojamas, kai atsakymas užima vieną eilutę, jei atsakymas užima daugiau eilučių, tai visose jose, išskyrus paskutinę, naudojamas minusas. Pagrindiniai SMTP protokolo klaidų kodai:

 220 Service ready serveris pasiruošęs priimti komandas
 250 Requested mail action okay, completed komanda įvykdyta (dažniausiai reiškia, kad laiškas priimtas pristatymui)
 354 Start mail input; end with. (a dot) serveris pasiruošęs priimti laiško turinį, laiškas turi būti užbaigtas tašku atskiroje eilutėje
 450 Requested mail action not taken mailbox unavailable (E.g., mailbox busy): serveris šiuo metu negali priimti laiško tokiu adresu, reikia bandyti siųsti vėliau
 500 Syntax error, command unrecognized neatpažinta komanda
 501 Syntax error in parameters or arguments neteisingi komandai pateikti argumentai
 503 Bad sequence of commands neteisinga komandų seka
 550 Requested action not taken, mailbox unavailable serveris nežino tokios pašto dėžutės, laiško siuntimas neturėtų būti kartojamas

Elektroninis paštas