DSN: SMTP мэйлд зориулсан Delivery Status Notification

DSN хэрхэн хүргэх статусыг SMTP имэйл рүү хэрхэн хүргэх талаар олж мэдээрэй.

Таны илгээсэн имэйлд юу тохиолдсоныг гайхаж байсан уу?

SMTP протокол дээр товчхон харуулснаар та ердийн HELO-с гадна байгааг анзаарах болно, EHLO бас байдаг бөгөөд энэ нь SMTP сервер нь өөрийн стандартыг давах чадвараа сурталчилдаг болгодог. Эдгээрийн нэг нь DSN юм. DSN? ДНХ ба DDT хангалттай биш үү?

Э-мэйл нь найдваргүй, хэн нэгэн " ... сервертээ сайн арчлах, энэ нь миний захидлыг идсэн ... " гэж хэлэх нь ховор байдаг. Би өөрөө үүнийг хийдэг. Гэсэн хэдий ч, эдгээр сэжиглэлийг дэмжих шалтгаан байхгүй байна.

RFC 821 (1982 оноос хойш) хүртлээ N окрипт нь эргэн тойрон гарч ирсэн. SMTP протоколын DATA хэсэг дууссаны дараа сервер хүлээж авах имэйлийг хүлээж авсны дараа үүнийг хариуцах болно. Аливаа шалтгааны улмаас түүнийг хүлээн авагчид буцааж илгээж чадахгүй бол уг мэдэгдлийг анхны илгээгчид илгээнэ. Энэ нь зарим тодорхой бус имэйлийг үүсгэсэн.

Үүний зэрэгцээ, энэ хуучин зарчим нь танд алдааны мэдэгдэл байсан эсвэл ямар ч асуудалгүй , та ямар ч мэдэлгүй байсан бөгөөд имэйл ирсэн байж болох юм. Ихэнх тохиолдолд алдааны мэдээллүүд нь алдааны мэдэгдэл биш л дээ. Илүү их чухал ач холбогдолтой цахим захидлаар энэ нь хангалтгүй болсон байна (өмнө нь байсан шиг).

SMTP руу DSN өргөтгөлүүд

RFC 1891 нь SMTP протокол дээр зарим өргөтгөлүүдийг санал болгодог бөгөөд ингэснээр илүү найдвартай, илүү хэрэглэгддэг DSN системийг бий болгоно. Энэ нь MAIL болон RCPT командуудын өргөтгөлүүдийн багц юм (хэрэв танд энэ ямар ч утгагүй бол SMTP хэрхэн ажилладагийг уншаад дараа нь энд буцаж ирнэ үү).

Үгүй EHLO, No Fun

Эхлээд бид сервер DSN дэмждэг эсэхийг шалгах хэрэгтэй. Тиймээс бид EHLO-г түүнд хэлээд анхааралтай сонсох хэрэгтэй. Хэрэв энэ нь DSN-тэй зарим талаараа онцлог шинжтэй бол бид хүсэлтдээ үйлчлэх боломжтой болно. Хэрэв үгүй ​​бол, бид өөр сервер ажиллуулах эсвэл DSN-гүйгээр имэйлрүү буцааж болно. Жишээ нь (оролт нь цэнхэр, серверийн гаралт хар):

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 Сайн уу localhost [127.0.0.1] танд баяртай байна
250-EXPN
250-Хөтөлбөр
250-8BITMIME
250-SIZE
250-DSN
250-ONEX
250-ETRN
250-XUSR
250 HELP

Аз болоход, бид бусад DSN-ээс олж авдаг.

DSN илгээгч өргөтгөлүүд

Дараагийн тушаал нь ихэвчлэн MAIL FROM: байна. DSN-ийн хувьд энэ нь огт өөр. Гэхдээ танд хоёр нэмэлт сонголт байна: RET ба ENVID.

RET сонголтыг MAIL тушаалаар дур зоргоороо байрлуулсан боловч энд бас үүнтэй яг тохирч байгаа. Зорилго нь хүргэх алдаа гарсан тохиолдолд таны анхны мэдэгдэл хэр их байх ёстойг зааж өгөх явдал юм. Хүчин төгөлдөр аргументууд нь БҮРЭН ба HDRS юм. Хуучин нь бүрэн мэдээг алдааны мэдэгдэлд оруулах ёстой гэсэн үг юм. HDRS нь серверийг амжилтгүй захидлын толгойнуудыг буцаахыг заадаг. Хэрэв RET тодорхойлогдоогүй бол серверт юу хийх вэ гэдэг нь дээр байна. Ихэнх тохиолдолд HDRS нь анхдагч утга болно.

ENVID нь илгээгчийнх юм уу, эсвэл (гэхдээ түүний и-мэйл клиент нь бидэнд энэ дугтуйг тодорхойлогч болгодог цорын ганц байх болно). Үүний зорилго нь магадгүй гаргасан алдааны мэдэгдэлийг илгээгч илгээгчдэд хэлнэ. Энэ ID-ийн формат нь үндсэндээ илгээгчийн төсөөлөлд үлддэг. Бидний жишээн дээр ENVID-ийг ашиглахгүй (төсөөлөл!):

MAIL FROM: sender@example.com RET = HDRS
250 sender@example.com ... илгээгч нь зөв

Үүний хариуд бид DSN-д толгойлогчдыг буцаахыг л хүсч байна.

DSN Хүлээн авагчийн Өргөтгөлүүд

RCPT TO: мөн өргөтгөлийн шударга хувь авдаг: NOTIFY болон ORCPT.

Мэдээ нь DSN-ийн жинхэнэ зүрх юм. Энэ нь серверийг хүргэх байдлын мэдэгдэл илгээх үедээ мэдэгдэнэ. Эхний боломжит үнэ цэнэ нь ҮГҮЙ гэсэн үг бөгөөд ямар ч тохиолдолд DSN илгээгч рүү буцаах ёстой гэсэн үг юм. DSN-гүйгээр энэ боломжгүй байсан. Дараа нь SUCCESS байна, энэ нь таны имэйлийг хүрэх газраа хүрэх үед мэдэгдэх болно. Алдааг үүсгэх нь SUCCESS-ийн хамтрагч (!): Дамжин өнгөрөх үедээ боомилогдох тохиолдолд DSN ирэх болно. Сүүлчийн сонголт нь DELAY: Хэрэв танд хүргэх ер бусын саатал байвал мэдэгдэх болно, гэхдээ хүргэх бодит үр дүн (амжилт эсвэл алдаа) шийдэгдээгүй байна. Хэрвээ энэ нь тодорхойлогдох цорын ганц нэмэлт өгөгдөл байх албагүй бол үлдсэн гурван нь жагсаалт дээр гарч, таслалаар хязгаарлагдаж болно. ТОГТОЛЦОО, ГЭГЖҮҮЛЭГЧ нь хамтдаа нэлээн хүчтэй багийг бүрдүүлэх (!), Таныг захидалдаа юу тохиолдсон тухай (бараг) -д мэдэгдэнэ.

ORCPT-ийн зорилго нь имэйлийн анхны хүлээн авагчийг хамгаалах явдал юм. Жишээлбэл, энэ нь өөр хаягаар дамжуулагдана. Энэ сонголтод өгөх нэмэлт өгөгдөл бол анхдагч хүлээн авагчийн хаягийн хаяг бөгөөд хаягийн төрлийг хамт ирүүлнэ. Хаягийн төрөл нь эхлээд дараа нь цэг таслал, эцэст нь хаяг ирдэг. Жишээлбэл:

RCPT TO: support@example.com NOTIFY = Хохирол, DELAY ORCPT = rfc822; support@example.com
250 support@example.com ... Хүлээн авагчийн ok (дараалал болно)

Үүний дараа DATA нь бид үүнийг мэддэг бөгөөд эцэст нь амжилтанд хүргэх хүргэх хүргэх байдлын мэдэгдлийг найдаж байна.

DSN ажил хийдэг үү?

Мэдээжийн хэрэг, энэ бүх гоо үзэсгэлэн, гоо үзэсгэлэн зөвхөн илгээгчээс илгээсэн мэйлийн тээвэрлэгч DSN-ээр дэмжиж байгаа тохиолдолд л ажиллана. Тэд хэдэн өдөр болно.