28-04-04 08:01
SMTP: kodovi grešaka
piše ŽELJA BOROŠ
Zadnji u trojcu "velikih" koje ćemo obraditi je SMTP protokol, odnosno
njegovi statusni kodovi. Na zadnje mjesto nije došao zbog manje važnosti, nego upravo suprotno, zbog velike važnosti u svakodnevnom radu odvojeno je za SMTP statusne kodove najviše vremena. Svakako preporučujemo barem jednom pročitati RFC2821, koji je trenutno važeći SMTP RFC.
Kao i kod HTTP-a i FTP-a, imamo nekoliko glavnih grupa statusnih kodova:
1xy Pozitivni preliminarni odgovor
(samo za "Extended SMTP" naredbe, nisu ovdje obrađene)
2xy Pozitivni završni odgovor
(naredba je prihvaćena)
3xy Pozitivni nezavršni odgovor
(naredba je prihvaćena, ali očekuje se još naredbi, npr. DATA)
4xy Privremeni završni negativni odgovor
(naredba nije prihvaćena, ali se može pokušati ponoviti)
5xy Trajni završni negativni odgovor
(naredba nije prihvaćena)
Detaljnije o kodovima:
211 System status, or system help reply
Ovaj kod je obično popraćen informacijom o serveru, njegovom statusu, operacijskom sustavu itd.
214 Help message
Kao što ime govori, ovaj kod označava pomoć za uporabu prijamnog servera i dobija se SMTP naredbom HELP. Izvršena bez parametara naredba HELP vraća popis naredbi koje server podržava. Ovaj kod je namijenjen samo ljudskoj uporabi i nema primjenu u automatiziranim sustavima.
220 <domain> Service ready
Ovaj kod se pojavljuje odmah nakon uspostavljanja TCP konekcije. Označava
spremnost za rad, i obično sadržava ime hosta i inačicu SMTP softvera.
221 <domain> Service closing transmission channel
Nakon završetka cijele SMTP sesije, server završava TCP konekciju ovim kodom (osim ako je do prekida došlo "nasilno").
250 Requested mail action okay, completed
Ovaj, najčešći kod, označava da je server prihvatio naredbu i da čeka drugu. Izvršavanje se prekida ako druga naredba ne stigne u vrijednosti timeouta.
251 User not local; will forward to <forward-path>
Prilikom svakog pokušaja primanja poruke (RCPT ili VRFY naredbe) provjerava se je li korisnik lokalni. Ako korisnik nije lokalni, ili ima definiranu adresu za forward, server će upotrijebiti ovaj kod kako bi označio da prihvaća poruku te da će je preusmjeriti na drugu adresu.
252 Cannot VRFY user, but will accept message and attempt delivery
Slično kao i kod koda 251, server je spreman primiti poštu ali ne može provjeriti adresu (ili je provjera zabranjena). Ovo zapravo znači da nema garancije isporuke pošte.
354 Start mail input; end with <CRLF>.<CRLF>
Server ovim kodom daje do znanja da očekuje tijelo poruke, a javlja se nakon naredbe DATA u SMTP sesiji. Poruka mora završiti točkom u potpuno praznom retku.
421 <domain> Service not available, closing transmission channel
Ovaj kod se može pojaviti u bilo kojem trenutku, a obično označava da se upravo izvršava restartanja sustava.
450 Requested mail action not taken: mailbox unavailable
Mailbox korisnika trenutno nije dostupan (primjerice, radi se backup podataka na serveru). Klijent može pokušati isporuku pošte malo kasnije.
451 Requested action aborted: local error in processing
Označava neku lokalnu grešku, ali klijent može pokušati isporuku pošte malo kasnije.
452 Requested action not taken: insufficient system storage
Ovaj kod označava nedovoljne resurse na sustavu za obradu pošte. Ovo može značiti i da poruka ima previše navedenih primatelja, ne samo nedostatak diskovnog prostora.
500 Syntax error, command unrecognized
Označava sintaktičku pogrešku, odnosno da server ne razumije što klijent želi učiniti. Može sadržavati i dodatna objašnjenja, ili se pojaviti ako je naredbena linija predugačka (primjerice, može označiti pokušaj DoS napada).
501 Syntax error in parameters or arguments
Naredba je prepoznata, ali njeni parametri ne odgovaraju standardima. Ostalo je isto kao i za kod 500.
502 Command not implemented
Naredba je prepoznata, ali je server ne podržava. Može se pretpostaviti da ju je administrator namjerno izbacio iz nekog razloga (obično sigurnosnog).
503 Bad sequence of commands
SMTP sesija se mora odvijati po strogo definiranim pravilima. Ako tomu nije tako, javlja se ovaj kod greške. Nakon ovog koda, server očekuje pravilnu naredbu i čuva do tad primljene ispravne podatke.
504 Command parameter not implemented
Kod se javlja kad se naredbi pokuša dodati parametar koji naredba ne podržava ili ne razumije. Naredbe koje primaju parametre su HELO, VRFY,
EXPN, HELP.
550 Requested action not taken: mailbox unavailable
Kod je sličan po funkcionalnosti sa kodom 450, ali s razlikom da je stanje trajno. Razlog je administrativna zabrana na mailbox, ne postoji pravo pristupa ili je mailbox nedostupan.
551 User not local; please try <forward-path>
Kod je sličan kodu 251, ali je razlika ta da server neće pokušati isporučiti poštu korisniku koji nije lokalan.
552 Requested mail action aborted: exceeded storage allocation
Zaostatak iz starijeg RFC-a 821. Originalno je zamišljeno da ovaj kod označava da poruka ima previše primatelja, a sad tu funkciju podržava kod 452. Zbog mogućnosti da postoje stariji serveri bazirani samo na RFC821, svi klijenti bi trebali tretirati ovaj kod kao 452.
553 Requested action not taken: mailbox name not allowed
Ime mailboxa ne odgovara standardima, ili je na snazi nekakva administrativna zabrana.
554 Transaction failed ili No SMTP service here
Iako je moguće spojiti se na SMTP server, nije moguće poslati poštu. Ova poruka zamjenjuje kod 220 (spremnost za rad), a server očekuje propisno završavanje SMTP sesije naredbom QUIT, ili će čekati timeout.
|