DSN: Notification ng Katayuan sa Paghahatid para sa SMTP Email

Alamin kung paano nilayon ng DSN na ipakilala ang katayuan ng paghahatid sa SMTP email.

Kailanman Nagtaka Ano ang Nangyari sa isang Email na Ipinadala mo?

Kahit na lamang ng isang maikling pagtingin sa SMTP protocol ay mapansin mo na bukod sa karaniwang HELO, mayroon ding EHLO, na ginagawang ang Extended SMTP server na nag-anunsiyo ng mga kakayahan nito nang higit sa orihinal na pamantayan. Ang isa sa mga ito ay DSN. DSN? Hindi ba sapat ang DNA at DDT?

Upang magtaltalan na ang email ay hindi kapani-paniwala, na ang isang tao ay dapat na " ... feed ang kanilang server mas mahusay na ito kumain ang aking mail ... " ay hindi bihira. Ginagawa ko ito sa sarili ko. Gayunpaman, hindi gaanong dahilan upang suportahan ang mga hinalaang ito.

Ang pagsulat ng N otorasyon ay nasa paligid simula noong RFC 821 (mula 1982). Sa sandaling ang DATA bahagi ng SMTP protocol ay tapos na at tinanggap ng server ang email para sa paghahatid na ito ay responsable para dito. Kung, para sa anumang kadahilanan, hindi ito maaaring makuha sa pamamagitan ng sa tatanggap na dapat itong ipadala pabalik sa abiso ng error sa orihinal na nagpadala. Nagresulta ito sa ilang nakakubli na email .

Bukod sa na, ang lumang kombensyong ito ay nangangahulugan na mayroon kang isang mensaheng error o wala kang anumang bagay kung saan wala kang alam: ang email ay maaaring dumating o maaaring hindi ito. Ang mga mensahe ng error sa maraming mga kaso ay kapaki-pakinabang din bilang walang mga mensahe ng error. Sa pamamagitan ng email na nagiging mas at mas mahalaga ito ay hindi na kasiya-siya (tulad ng kung ito ay bago).

DSN Mga Extension sa SMTP

Inirerekomenda ng RFC 1891 ang ilang mga extension sa SMTP protocol na dapat magresulta sa mas maaasahan at mas kapaki-pakinabang na sistema ng DSN. Ito ay isang hanay ng mga extension sa MAIL at RCPT utos (kung ito ay walang kahulugan sa iyo, basahin kung paano SMTP gumagana at pagkatapos ay bumalik dito.).

Walang EHLO, Walang Kasayahan

Una, kailangan nating tiyakin na sinusuportahan ng server ang DSN. Kaya, dapat nating sabihin sa kanya ang EHLO at maingat na makinig. Kung ito ay tumutugon sa DSN sa ilang bahagi sa listahan ng tampok maaari naming ipagpalagay na ito ay magagawang upang maihatid ang aming mga kahilingan. Kung hindi, pagkatapos ay hindi: maaari naming subukan ang isa pang server o lamang bumalik sa email nang walang DSN. Halimbawa (ang aking input na asul, ang output ng server ay itim):

220 larose.magnet.at ESMTP Sendmail 8.8.6 / 8.8.6; Sun, 24 Agosto 1997 18:23:22 +0200
EHLO localhost
250-larose.magnet.at Hello localhost [127.0.0.1], nalulugod na makilala ka
250-EXPN
250-PANDIWA
250-8BITMIME
250-SIZE
250-DSN
250-ONEX
250-ETRN
250-XUSR
250 HELP

Sa kabutihang-palad, bukod sa iba pang mga bagay nakita namin ang DSN.

DSN Pagpapadala ng Mga Extension

Ang karaniwang command ay karaniwang MAIL MULA:. Sa DSN, ito ay hindi naiiba. Ngunit mayroong dalawang karagdagang mga opsyon na maaari mong i-isyu: RET at ENVID.

Ang RET na opsiyon ay sa halip ay nakalagay sa MAIL command, ngunit angkop dito pati na rin ito sa ibang lugar. Ang layunin ay upang tukuyin kung gaano karami ng iyong orihinal na mensahe ang dapat ibalik sa kaso ng pagkabigo ng paghahatid. Ang mga wastong argumento ay BUONG at HDRS. Ang dating ay nangangahulugan na ang kumpletong mensahe ay dapat kasama sa mensahe ng error, ang HDRS ay nagtuturo sa server na ibalik lamang ang mga header ng nabigo mail. Kung hindi tinukoy ang RET, nasa server kung ano ang gagawin. Sa karamihan ng mga kaso ang HDRS ang magiging default na halaga.

Ang ENVID ay talagang pag-aari sa nagpadala bilang siya o (sa halip) ang kanyang email client ay ang isa lamang na gumagawa sa amin ng tagatukoy ng sobre na ito. Ang layunin nito ay upang sabihin sa nagpadala na mag-email sa posibleng inisyu na mensahe ng error na tumutugma sa. Ang format ng ID na ito ay karaniwang naiwan sa imahinasyon ng nagpadala. Hindi namin gagamitin ang ENVID sa aming halimbawa (imahinasyon!):

MAIL MULA SA: sender@example.com RET = HDRS
250 sender@example.com ... Nagpadala ok

Tila, gusto lang naming makuha ang mga header sa aming DSN.

Mga Extension ng Tatanggap ng DSN

Ang RCPT SA: nakakakuha ng makatarungang bahagi ng extension pati na rin: NOTIFY and ORCPT.

NOTIFY ay ang tunay na puso ng DSN. Sinasabi nito sa server kung kailan magpadala ng notification ng paghahatid sa katayuan. Ang unang posibleng halaga ay HINDI na nangangahulugan na sa ilalim ng anumang pagkakataon isang DSN ay dapat ibalik sa nagpadala. Ito ay hindi posible na walang DSN. Pagkatapos ay mayroong TAGUMPAY, na magpapaalam sa iyo kapag ang iyong mail ay arraved sa patutunguhan nito. Ang kapansanan ay katumbas ng counterpart (!): Isang DSN ang darating kung ang isang artero ay naganap sa panahon ng paghahatid. Ang huling pagpipilian ay DELAY: aabisuhan ka kung may di-pangkaraniwang pagkaantala sa paghahatid, ngunit ang kinalabasan ng aktwal na paghahatid (tagumpay o kabiguan) ay hindi pa napagpasyahan. HINDI kailangang maging ang tanging argumento kung ito ay tinukoy, ang iba pang tatlo ay maaaring lumitaw sa isang listahan, na itinatakda ng isang kuwit. KALAGAYAN at KAHILINGAN ang bumubuo para sa isang medyo malakas na koponan magkasama (!), Na nagsasabi sa iyo sa (halos) anumang kaso kung ano ang nangyari sa iyong mail.

Ang layunin ng ORCPT ay preserver ang orihinal na tatanggap ng isang mensaheng email, halimbawa kung ito ay ipapasa sa ibang address. Ang argumento sa pagpipiliang ito ay ang email address ng orihinal na recipient kasama ang uri ng address. Ang uri ng address ay una, sinundan ng isang tuldok-tuldok at sa wakas ang address. Halimbawa:

RCPT TO: support@example.com PAUNAWA = KAHULUGAN, PANAHON NG ORCPT = rfc822; support@example.com
250 support@example.com ... Tatanggap ok (ay pila)

Sinusundan ito ng DATA tulad ng alam namin at sa kalaunan, sana, isang notification sa paghahatid sa katayuan na nagpapaalam sa iyo ng isang tagumpay.

Gumagana ba ang DSN?

Siyempre, ang lahat ng kagandahan at pagpapatawa na ito ay gagana lamang kung ang mga mail transport agent mula sa nagpadala sa suportang sumusuporta sa DSN. Ilang araw ay gagawin nila.