DSN: SMTP e-pochtasi uchun etkazib berish holatining bildirishnomasi

DSN, SMTP e-pochtasiga etkazib berish holatini qanday qilib joriy etishni maqsad qilganini bilib oling.

Siz yuborgan elektron pochta orqali nima yuz berdi?

SMTP protokoliga faqat qisqacha qarashni bilib olasiz, odatiy HELO bilan bir qatorda, kengaytirilgan SMTP serverining qobiliyatlarini asl standartdan tashqariga reklama qiladigan EHLO ham mavjud. Ulardan biri DSN. DSN? DNK va DDT etarli emasmi?

E-pochta xabari ishonchsiz deb hisoblanishi uchun, " ... serverlarini yaxshi ovqatlantirishim kerak, u mening pochtaimni yeb qo'yishi kerak ... " degan gap kamdan-kam hollarda. Men buni o'zim qilaman. Biroq, bu shubhalarni qo'llab-quvvatlash uchun juda ko'p sabab yo'q.

Yetkazib berish muddati RFC 821 (1982 yildan boshlab) atrofida bo'ldi. SMTP protokolining DATA qismi tugagach, server etkazib berish uchun elektron pochtani qabul qilgandan so'ng, bu mas'ul bo'ladi. Agar biron-bir sababga ko'ra uni qabul qila olmasa, uni asl nusxadagi jo'natuvchiga etkazish kerak. Bu esa, ba'zi yashirin e-pochtalarga olib keldi.

Bundan tashqari, ushbu eski anjuman siz yoki xato xabari borligini yoki siz hech narsa bilmasligingiz uchun hech narsa yo'qligini anglatadi : elektron pochta kelgan bo'lishi yoki bo'lmasligi mumkin. Ko'p hollarda xato xabarlari xato xabari bo'lmaganidek foydalidir. E-pochta xabari tobora ko'proq ahamiyat kasb etishi bilan, bu endi qoniqarli emas (u ilgari bo'lgani kabi).

DSN kengaytmalari uchun SMTP

QRM 1891 SMTP protokoli uchun yanada ishonchli va yanada qulay DSN tizimiga olib keladigan ba'zi kengaytmalarni taklif qiladi. Bu MAIL va RCPT buyruqlar kengaytmasi majmui (agar bu siz uchun hech qanday ma'no bo'lmasa, SMTP qanday ishlashini o'qib, keyin bu erga qaytsa).

Hech qanday EHLO yo'q

Birinchidan, server DSN-ni qo'llab-quvvatlashiga ishonch hosil qilishimiz kerak. Shunday qilib, biz EHLO ni unga aytishimiz va diqqat bilan tinglashimiz kerak. Agar DSN bilan bir xil xususiyat ro'yxatida javob bersa, biz so'rovlarimizga xizmat qila olamiz deb taxmin qilishimiz mumkin. Agar yo'q bo'lsa, unday emas: biz boshqa serverni sinab ko'rishimiz yoki DSNsiz elektron pochtaga qaytishimiz mumkin. Misol uchun (mening kirishim ko'k, serverning chiqishi qora):

220 larose.magnet.at ESMTP Sendmail 8.8.6 / 8.8.6; Sun, 24 Avg 1997 18:23:22 +0200
EHLO localhost
250-larose.magnet.at Hello localhost [127.0.0.1], siz bilan tanishishdan mamnun
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ONEX
250-ETRN
250-XUSR
250 YoRDAM

Yaxshiyamki, boshqa narsalar qatorida biz DSNni topamiz.

DSN jo'natuvchisi kengaytmalari

Keyingi buyruq, odatda, MAIL FROM :. DSN bilan bu farqli emas. Biroq, ikkita qo'shimcha variant mavjud: RET va ENVID.

RET imkoniyatlari oddiy tarzda MAIL buyrug'iga joylashtirildi, lekin u bu erda ham boshqa joyga ham mos keladi. Maqsad, etkazib berishning buzilishi holatlarida asl xabaringiz qanchalik qaytarilishi kerakligini aniqlash. To'g'ri dalillar FULL va HDRS hisoblanadi. Birinchisi, to'liq xabarning xato xabardoriga kiritilishi kerakligini anglatadi, HDRS esa serverga faqatgina muvaffaqiyatsiz xabarlarning sarlavhalarini qaytarishini buyuradi. RET ko'rsatilmagan bo'lsa, serverga nima qilish kerak. Ko'p hollarda HDRS standart qiymat bo'ladi.

ENVID, albatta, jo'natuvchiga tegishli yoki u (aksincha) uning elektron pochtasi mijozi bizni ushbu konvert identifikatoridan yagona qiladi. Uning maqsadi - yuborilgan xabarni elektron pochta orqali yuboradigan odamga javob berishdir. Ushbu identifikatorning shakli asosan jo'natuvchining tasavvuriga qo'yiladi. Bizning misolimizda (tasavvur!) ENVIDdan foydalanmaymiz:

POChTA: sender@example.com RET = HDD
250 sender@example.com ... Yuboruvchi o'q

Ko'rinishidan, biz faqat DSN-dagi sarlavhani qaytarib olishni istaymiz.

DSN Qabul qiluvchilarni kengaytmalari

RCPT TO: kengaytmalarning adolatli ulushini oladi: NOTIFY va ORCPT.

NOTIFY - DSN ning haqiqiy yuragi. Serverga etkazib berish holati haqida bildirishnomani qachon yuborishni bildiradi. Birinchi mumkin bo'lgan qiymat hech qachon DSNni jo'natuvchiga qaytarilmaydi degan ma'noni anglatmaydi. DSN holda bu mumkin emas edi. So'ngra sizning pochta manzilingiz o'zingizning maqsadingiz bo'ylab ko'rsatilganda sizni xabardor qiladi. YO'Q muvaffaqiyatsizlikka ega (!): Etkazib berish vaqtida xatoga yo'l qo'yilgan bo'lsa, DSN kelishi kerak. Oxirgi variant - DELAY: etkazib berishda g'ayritabiiy kechikish bo'lsa, sizga xabar beriladi, ammo haqiqiy yetkazish natijasi (muvaffaqiyat yoki muvaffaqiyatsizlik) hali aniqlanmagan. Hech qachon u ko'rsatmasa, faqat bitta argument bo'lishi kerak, qolgan uchtasi bitta vergul bilan ajratilgan ro'yxatda paydo bo'lishi mumkin. MUVAFFAQIYaT VA FAOLURE sizning mailingizda sodir bo'lgan har qanday vaziyatda sizni juda kuchli jamoa (!) Bilan birga tayyorlaydi.

ORCPTning maqsadi e-mail xabarining asl nusxasini saqlab qolish, masalan, u boshqa manzilga yuborilgan bo'lsa. Ushbu parametrga argument, asl manzilning elektron pochta manzili va manzil turi bilan birga. Unvon turi birinchi bo'lib, keyin nuqta-vergul va oxirida manzil. Masalan:

RCPT TO: support@example.com NOTIFY = FAILURE, DELAY ORCPT = rfc822; support@example.com
250 support@example.com ... Qabul qiluvchilarni OK (navbatda)

Buni biz bilganimizdek DATA kuzatib boradi va natijada umid qilamanki, sizni muvaffaqiyatli xabardor qilish holati haqida xabar beradi.

DSN ishmi?

Albatta, bu go'zallik va aql faqat jo'natuvchidan pochta qabul qiluvchi jo'natuvchiga DSNni qo'llab-quvvatlasa, ishlaydi. Ular bir kun kelib qolishadi.