Kao što veb server šalje HTTP statusne kodove tako i imejl serveri imaju svoje SMTP statusne kodove. SMTP statusni kodovi govore o detaljima isporuke imejla.
Kada imejl ne može uspešno da se isporuči, imejl server odlazne pošte šalje automatsku poruku o statusu isporuke (Delivery Status Notification). Ova poruka se takođe naziva i „ bounce message “ ili samo „bounce “. Poruka sadrži SMTP statusni kod i šalje je Mailer-Daemon@senderdomain.com ( Mail Delivery System).
Jedan od najprepoznatljivijih statusnih kodova je 404 Not Found. Kada pokušate da učitate veb sajt i primite poruku 404, to znači da veb resurs koji tražite nije dostupan na serveru.
Slično tome, kada pošaljete imejl i u odgovoru primite bounce poruku sa SMTP statusnim kodom 550-5.1.1, znaćete da je adresa primaoca pogrešno napisana ili jednostavno ne postoji na imejl serveru.
SMTP kodovi
SMTP statusni kodovi se zapravo sastoje od dve vrste kodova – SMTP koda odgovora na zahteva / komandu i SMTP koda za status isporuke.
Pre nego što su počeli da se koriste SMTP statusni kodovi (Enhanced Mail System Status Codes) kao dodatak imejl usluzi, koristili su se SMTP kodovi za odgovor korišćeni su za status. Obe vrste kodova se i danas koriste u imejl sistemu da prikaću status isporuke.
Na primer u saopštenju:
550 5.1.1 emailnotvalid@abv.bg: Recipient address rejected:User unknown in virtual mailbox table
- 550 je kod kojim je server za dolaznu poštu odgovorio na naredbu (RCPT TO:emailnotvalid@abv.bg), koju je poslao server za odlaznu poštu;
- 5.1.1 je statusni kod za isporuku imejla .
Potpuni opis odgovarajućih SMTP kodova ( Code-status code/Associated basic status code) može se naći u tablici zvanične organizacije za registraciju ovih kodova: IANA: Simple Mail Transfer Protocol(SMTP) Enhanced Status Codes Registry.
SMTP kodovi odgovora koji su najčešće primenljivi za kodove isporuke pošte SMTP statusa su:
- 4xx – Privremeni otkaz izvršenja. Pošiljac može opet da pokuša slanje imejla.
- 5xx – Trajni otkaz izvršenja. Potrebno je da se izvrše određene proemen vezane za imejl pre nego što se opet pokuša slanje
SMTP statusni kodovi, koji se dodaju posle kodova za odgovor, se sastoje od tri grupe cifara odvojena tačkom (x.xxx.xxx):
status-code = class“.” subject“.” detail
- class = moće da bude: 2, 4 ili 5
- subject = od 1 do 3 cifre
- detail = od 1 do 3 cifre
Klasa statusnog koda može biti jedna od navedene tri:
- 2.xxx.xxx (Success) – uspešno;
- 4.xxx.xxx (Persistent Transient Failure) – privremeni problem;
- 5.xxx.xxx (Permanent Failure) – trajni problem;
Na primer, šifra statusa: 5.1.1 – Prvi deo koda “class” pokazuje da li je isporuka uspešna ili ne (5). Drugi deo „subject“ (1) prikazuje pretpostavljeni uzrok problema sa isporukom. Treći deo, “detail” (1), precizira tačan uzrok greške.
SMTP sttusni kod 5.1.1 označava:
- 5.x.x (Permanent Failure) – Isporuka nije uspešna i ovo je trajno odbijanje isporuke. Ponovni pokušaj slanja imejla u ovom obliku neće uspeti.
- x.1.x (Addressing Status) – Pretpostavlja se problem sa adresom primaoca u pogeldu sintakse ili validnosti. Ovaj kod sugeriše da pošiljalac može da ispravi adresu i pokuša ponovno slanje.
- x.1.1 (Bad destination mailbox address) – Navedeni imejl nalog ne postoji. Deo adrese ispisan pre imena domena (pre karaktera @) nije važeća. Ovaj kod ukazuje na trajni problem koji se neće rešiti ponovnim slanjem imejla bez promene adrese.
Sve SMTP statusne kodove možete videti u specifikaciji: RFC 3463.
SMTP statusni kodovi 4.x.x и 5.x.x
SMTP kodovi statusa za neuspešnu isporuku (4.x.x i 5.x.x) mogu se definisati kao:
- 4.x.x – “soft bounce” или “meko odbijanje isporuke”. Ovi kodovi ukazuju na privremeni problem sa isporukom imejla. Imejl server može opet da pokuša slanje.
- 5.x.x – “hard bounce” или “tvrdo odbijanje isporuke” – problem sa isporukom je trajan. Imejl server neće pokušati ponovno slanje.
SMTP statusni kodovi 4.x.x
SMTP statusni kodovi za meko odbijanje isporuke počinju sa 4.X.X
- premašena kvota diska za poštansko sanduče;
- imejl je preveliki;
- privremeni prestanak rada imejl servera primaoca.
Server za odlaznu poštu zna kako da procesuira SMTP statusne kodove imejl servera primaoca. Na neke od njih automatski reaguje i vrši određene akcije. Na primer, kada se vrati od primaoca kod za meko odbijanje isporuke jer je recimo premašena kvota diska, server će pokušati ponovno slanje imejla nakon određenog vremenskog perioda, na primer 24, 48, 72 sata. Nakon određenog broja odbijanja imejlova, server će prestati sa daljim pokušajima slanja ovom primaocu.
4.2.2 – Premašena kvota diska
Ovaj statusni kod ukazuje da je poštansko sanduče primaoca puno. Samo primalac može rešiti ovaj problem. Moraće da osloboditi prostor za primanje novih imejlova.
Primer poruke sa kodom 4.2.2 za neuspešnu isporuku na imejl nalog sa punom kvotom:
From: Mail Delivery System Mailer-Daemon@goodexample.eu
Subject: Warning: message 1hdwCd-0002nw-BK delayed 24 hours
This message was created automatically by mail delivery software.
A message that you sent has not yet been delivered to one or more of its recipients after more than 24 hours on the queue on goodexample.eu.
The address to which the message has not yet been delivered is:
emailoverquota@gmail.com
host alt4.gmail-smtp-in.l.google.com [173.194.203.27]
SMTP error from remote mail server after RCPT TO:emailoverquota@gmail.com:
452-4.2.2 The email account that you tried to reach is over quota. Please direct
452-4.2.2 the recipient to
452-4.2.2 https://support.google.com/mail/?p=OverQuotaTemp w2plp.271 – gsmtp:
retry timeout exceeded
No action is required on your part. Delivery attempts will continue for some time, and this warning may be repeated at intervals if the message remains undelivered. Eventually the mail delivery software will give up,and when that happens, the message will be returned to you.
Server za odlaznu poštu će pokušati da pošalje imejl primaocu u određenom intervalu. Prilikom svakoh neuspelog pokušaja, pošiljaocu će se vratiti saopštenje sa naslovom „Warning: message 1hgyyb-00Gcdi-R1 delayed 24/48/72 hours“. Server za slanje imejlova će prestati sa pokušajima slanja imejla posle 72 sata.
SMTP statusni kodovi 5.x.x
SMTP statusni kodovi za “tvrdo” odbijanje isporuke počinju sa 5.x.x a najčešći razlozi za to su:
- imejl adresa ne postoji (5.1.1);
- domen koji je deo imejl adrese ne postoji;
- tvrdo odbijanje isporuke.
Prilikom tvrdog odbijanja isporuke, server za slanje imejlova neće pokušati ponovno slanje. Ovo odbijanje isporuke zahteva verifikaciju i ljudsku intervenciju kako bi se utvrdilo šta nije u redu sa imejlom i njegovim parametrima.
5.1.1 – Nepostojeća imejl adresa
Ovaj kod označava da je pošiljalac uneo pogrešnu imejl adresu ili da takva adresa ne postoji na serveru za dolanu poštu.
Primer koda 5.1.1 za neuspešnu isporuku imejla na nepostojeću imejl adresu:
From: Mail Delivery System Mailer-Daemon@goodexample.eu
Subject: Mail delivery failed: returning message to sender
This message was created automatically by mail delivery software.
A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:
emailnotvalid@abv.bg
host pmx.abv.bg [194.153.145.203]
SMTP error from remote mail server after RCPT TO:emailnotvalid@abv.bg:
550 5.1.1 emailnotvalid@abv.bg: Recipient address rejected:
User unknown in virtual mailbox table
Pročitajte više o statusnim kodovima u članku: Najčešći SMTP statusni kodovi i saopštenja