DSN: إعلام حالة التسليم للبريد الإلكتروني SMTP

اكتشف كيف تهدف DSN إلى تقديم حالة التسليم إلى البريد الإلكتروني SMTP.

هل تساءلت يومًا ماذا حدث لبريد إلكتروني أرسلته؟

حتى مجرد إلقاء نظرة سريعة على بروتوكول SMTP سوف تلاحظ أنه بالإضافة إلى HELO المعتاد ، هناك أيضًا EHLO ، مما يجعل خادم SMTP الممتد يعلن عن قدراته خارج المعيار الأصلي. واحد من هؤلاء هو DSN. DSN؟ هل الحمض النووي والـ دي. دي. تي غير كاف؟

لمجرد أن البريد الإلكتروني غير موثوق به ، يجب على شخص ما " ... إطعام خادمه بشكل أفضل ؛ أكلت بريدي ... " ليس من غير المألوف. أفعل ذلك بنفسي. ومع ذلك ، ليس هناك سبب كبير لدعم هذه الشكوك.

تم التسليم S tatus N otification منذ RFC 821 (من 1982). بمجرد الانتهاء من جزء DATA من بروتوكول SMTP وقد قبل الخادم البريد الإلكتروني للتسليم ، فهو مسؤول عن ذلك. في حالة عدم تمكنه ، لأي سبب من الأسباب ، من الوصول إلى المستلم ، يجب عليه إعادته مع إشعار الخطأ إلى المرسل الأصلي. هذا أدى إلى بعض البريد الإلكتروني الغامض.

وبصرف النظر عن ذلك ، فإن هذه الاتفاقية القديمة تعني أنك إما حصلت على رسالة خطأ أو أنك لم تحصل على أي شيء في هذه الحالة لم تكن تعرف شيئًا : فقد يكون البريد الإلكتروني قد وصل أو لا. كانت رسائل الخطأ في العديد من الحالات مفيدة تمامًا مثل عدم وجود رسائل خطأ. مع زيادة أهمية البريد الإلكتروني ، لم يعد هذا الأمر مرضياً (كما لو كان من قبل).

ملحقات DSN إلى SMTP

يقترح RFC 1891 بعض ملحقات بروتوكول SMTP التي يجب أن ينتج نظام DSN أكثر موثوقية وأكثر استخداماً. وهو عبارة عن مجموعة من الملحقات لأوامر MAIL و RCPT (إذا لم يكن هذا يعني لك شيئاً ، اقرأ كيفية عمل SMTP ثم عد هنا.).

لا EHLO ، لا المرح

أولاً ، علينا التأكد من أن الخادم يدعم 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 المضيف المحلي
250-larose.magnet.at مرحبا localhost [127.0.0.1] ، سعدت بلقائك
250 EXPN
250 VERB
250-8BITMIME
250-SIZE
250 DSN
250 ONEX
250-ETRN
250 XUSR
250 مساعدة

لحسن الحظ ، من بين أمور أخرى نجد DSN.

ملحقات DSN المرسل

الأمر التالي عادةً هو MAIL FROM :. مع DSN ، وهذا لا يختلف. ولكن هناك خياران إضافيان قد تصدرهما: RET و ENVID.

تم وضع الخيار RET بشكل تعسفي في الأمر MAIL ، ولكنه يناسب هنا وكذلك في أي مكان آخر. والغرض من ذلك هو تحديد مقدار الرسالة الأصلية التي يجب إرسالها في حالة فشل التسليم. الوسيطات الصحيحة هي FULL و HDRS. يعني السابق أن الرسالة الكاملة يجب أن يتم تضمينها في رسالة الخطأ ، حيث يقوم HDRS بإرشاد الخادم لإرجاع رؤوس البريد الفاشلة فقط. إذا لم يتم تحديد RET ، فالأمر متروك للخادم ما يجب القيام به. في معظم الحالات ، تكون HDRS هي القيمة الافتراضية.

تنتمي ENVID حقًا إلى المرسل لأنها أو (بالأحرى) عميل بريدها الإلكتروني سيكون العميل الوحيد الذي يجعلنا من معرف المظروف هذا. الغرض منه هو إخبار المرسل بالبريد الإلكتروني الذي تتطابق معه رسالة الخطأ المحتمل. يتم ترك تنسيق هذا المعرف في الأساس إلى خيال المرسل. لن نستخدم ENVID في مثالنا (خيال!):

البريد من: sender@example.com RET = HDRS
250 sender@example.com ... المرسل حسنًا

على ما يبدو ، لا نريد سوى إرجاع العناوين في DSN.

ملحقات المستلم DSN

RCPT TO: تحصل على نصيبها العادل من الإضافات أيضًا: NOTIFY و ORCPT.

NOTIFY هو القلب الحقيقي لـ DSN. يخبر الخادم عند إرسال إشعار حالة التسليم. أول قيمة ممكنة هي NEVER مما يعني أنه في أي حال من الأحوال يجب إعادة DSN إلى المرسل. هذا لم يكن ممكنا دون DSN. ثم هناك SUCCESS ، والتي سوف يخطرك عندما البريد الخاص بك كما هو محفوظ في وجهتها. FAILURE هو نظير النجاح (!): سيصل DSN إذا وقع عطل أثناء الولادة. الخيار الأخير هو DELAY: سيتم إشعارك إذا كان هناك تأخير غير معتاد في التسليم ، ولكن لم يتم بعد تحديد نتيجة التسليم الفعلي (النجاح أو الفشل). يجب ألا تكون الحجة الوحيدة إذا تم تحديدها ، وقد تظهر الثلاث الأخرى في قائمة ، مفصولة بفاصلة. النجاح والفشل يعوضان عن فريق قوي جدا (!) ، يخبرك في (تقريبا) أي حالة ما حدث لبريدك.

الغرض من ORCPT هو الحفاظ على المستلم الأصلي لرسالة البريد الإلكتروني ، على سبيل المثال إذا تمت إعادة توجيهها إلى عنوان آخر. الوسيطة لهذا الخيار هي عنوان البريد الإلكتروني للمستلم الأصلي مع نوع العنوان. يأتي نوع العنوان أولاً ، متبوعًا بفاصلة منقوطة وأخيرًا العنوان. فمثلا:

RCPT TO: support@example.com NOTIFY = FAILURE، DELAY ORCPT = rfc822؛ support@example.com
250 support@example.com ... مستلم موافق (سوف يقف في الصف)

يلي ذلك بيانات DATA كما نعرفها ، ونأمل في النهاية ، إعلام حالة التسليم بإعلامك بالنجاح.

هل يعمل DSN؟

بالطبع ، كل هذا الجمال والذكاء لن يعمل إلا إذا كانت عوامل نقل البريد من المرسل إلى المستلم تدعم DSN. يوم ما سوف يفعلون.