DSN: obaveštenje o statusu isporuke za SMTP e-poštu

Saznajte kako DSN ima za cilj da uvede status isporuke na SMTP e-poštu.

Da li ste se ikada zapitali šta se dogodilo sa poslatom e-poštom koju ste poslali?

Čak i samo kratak pregled SMTP protokola primjet ćete da osim uobičajenog HELO-a postoji i EHLO, zbog čega Extended SMTP server oglašava svoje mogućnosti izvan prvobitnog standarda. Jedno od njih je DSN. DSN? Da li su DNK i DDT nedovoljni?

Da tvrdim da je e-pošta nepouzdana, da bi neko "trebao bolje hraniti svoj server, pojeo moju poštu ... " nije neuobičajeno. Uradim to sama. Ipak, nema mnogo razloga da podrži ove sumnje.

Dostava S tatus N otifikacioni je od RFC 821 (od 1982). Čim se završi DATA deo SMTP protokola i server prihvata e-poštu za isporuku, ona je odgovorna za to. Ako, iz bilo kog razloga, ne može doći do primaoca, mora ga poslati nazad sa obavještenjem o greškosti prvobitnom pošiljaocu. Ovo je rezultiralo nekim nejasnim e-poštom .

Osim toga, ova stara konvencija je značila da ili imate poruku o grešci ili nemate ništa u kom slučaju niste znali ništa : email možda je stigao ili možda nije. Poruke o grešci u mnogim slučajevima bile su isto korisne kao i poruke o grešci. Pošto e-pošta postaje sve važnija, ovo više nije zadovoljavajuće (kao da je to bilo ranije).

DSN ekstenzije za SMTP

RFC 1891 predlaže neke proširenja SMTP protokola koji bi trebali rezultirati pouzdanijim i korisnijim DSN sistemom. To je skup nadogradnje za MAIL i RCPT naredbe (ako vam ovo ništa ne znači, pročitajte kako SMTP funkcioniše, a zatim se vratite ovde.).

Ne EHLO, nema zabave

Prvo moramo biti sigurni da server podržava DSN. Dakle, moramo mu reći EHLO i pažljivo slušati. Ako se sa DSN-om reagira negde u listi karakteristika, možemo pretpostaviti da će moći da služi našim zahtevima. Ako ne, onda ne: možemo pokušati drugi server ili jednostavno povratiti e-poštu bez DSN-a. Na primjer (moj ulaz je plavi, crni izlaz servera):

220 larose.magnet.at ESMTP Sendmail 8.8.6 / 8.8.6; Sun, 24 Aug 1997 18:23:22 +0200
EHLO localhost
250-larose.magnet.at Zdravo lokalni [127.0.0.1], drago mi je što smo se upoznali
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ONEX
250-ETRN
250-XUSR
250 HELP

Na sreću, između ostalog nalazimo DSN.

DSN Sender Extensions

Sledeća naredba je obično MAIL FROM :. Sa DSN-om, ovo se ne razlikuje. Ali postoje dve dodatne opcije koje možete izdati: RET i ENVID.

Opcija RET je bila prilično proizvoljno postavljena u komandu MAIL, ali se ovde uklapa i na bilo koji drugi način. Svrha je precizirati koliko će se vaša originalna poruka vratiti u slučaju neuspele isporuke. Valjani argumenti su FULL i HDRS. Prvi znači da se u poruku o grešci uključi kompletna poruka, HDRS instruiše server da samo vrati zaglavlja neuspele pošte. Ako RET nije naveden, na serveru je šta treba uraditi. U većini slučajeva HDRS će biti podrazumevana vrednost.

ENVID stvarno pripada pošiljaocu jer će ona ili (pre) njen klijent e-pošte biti jedini koji nas čini od ovog identifikatora koverte . Njena svrha je da kažu pošiljaocu koji odgovara e-mailu eventualno izdate poruke o grešci. Format ovog ID-a je u osnovi ostavljen mašti pošiljaoca. Nećemo koristiti ENVID u našem primeru (maštovitost!):

MAIL OD: sender@example.com RET = HDRS
250 sender@example.com ... Sender ok

Očigledno, samo želimo da vratimo zaglavlja u našu DSN.

DSN primaocima

RCPT TO: dobija i dobar deo proširenja: NOTIFY i ORCPT.

NOTIFY je pravo srce DSN-a. Ona priča serveru kada pošalje obaveštenje o statusu isporuke. Prva moguća vrednost je NIKADA što znači da se DSN nikada ne mora vratiti pošiljaocu. Ovo nije bilo moguće bez DSN-a. Zatim, postoji SUCCESS, koji će vas obavestiti kada je vaša pošta ušla na odredište. FAILURE je kolega SUCCESS-a (!): DSN će stići ako je došlo do gubljenja prilikom isporuke. Poslednja opcija je DELAY: bićete obavešteni da li postoji neobično kašnjenje u isporuci, ali stvarni rezultat isporuke (uspeh ili neuspjeh) još uvek nije odlučen. NIKADA mora biti jedini argument ako to odredi, ostala tri mogu se pojaviti na spisku, ograničena zarezom. SUCCESS i FAILURE sastavljaju veoma skupu ekipu (!), Govoreći vam (skoro) u svakom slučaju šta se dogodilo sa vašom poštom.

Svrha ORCPT-a je da obezbedi originalnog primaoca poruke e-pošte, na primer ako se prosleđuje na drugu adresu. Argument za ovu opciju je adresa e-pošte prvobitnog primaoca zajedno sa tipom adrese. Prva adresa se pojavljuje, a zatim slijede tačka-zarez i na kraju adresa. Na primjer:

RCPT TO: support@example.com NOTIFY = FAILURE, DELAY ORCPT = rfc822; support@example.com
250 support@example.com ... Primalac ok (će se pojaviti u redu)

Zatim sledi DATA kao što znamo i eventualno, nadamo se, obaveštenje o statusu isporuke koje vas obaveštava o uspehu.

Da li DSN radi?

Naravno, svu ovu lepotu i umjetnost će raditi samo ako agenti za transport pošte od pošiljaoca do primaoca podrže DSN. Jednog dana hoće.