SMTP

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
Peršokti į: navigaciją, paiešką
SMTP
Tipas: kliento-serverio
Portas: tcp/25
RFC: 2821
OSI lygis 6-7

SMTP (trumpinys nuo angl. Simple Mail Transfer Protocol '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 graž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 (angl. Extended SMTP), apibrėžta 1995, dokumentavo iki to laiko susikaupusius protokolo patobulinimus ir standartizavo SMTP protokolo išplėtimo galimybes.

Pagrindinės komandos[taisyti | redaguoti kodą]

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[taisyti | redaguoti kodą]

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žbaigas 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