رمز الحالة المحسّن هو دليل منظم، وليس تقريرًا كاملاً عن الحادث. يمكن لـ "5.7.1" تضييق نطاق التحقيق نحو الأمان أو السياسة، ولكن لا يمكنه تحديد مالك السياسة أو المسار المتأثر أو تغيير التكوين الصحيح من تلقاء نفسه. احتفظ بالتشخيص الكامل بجانب الرمز طوال عملية استكشاف الأخطاء وإصلاحها.
قراءة جميع المكونات الثلاثة
يحدد RFC 3463 رموز الحالة المحسنة مع مكونات الفئة والموضوع والتفاصيل. ويميز الفصل بين النجاح والفشل المؤقت المستمر والفشل الدائم. تميز فئات الموضوعات مجالات مثل العنونة وحالة صندوق البريد والتوجيه والأمان أو السياسة. التفاصيل تضيق الشرط داخل هذا الموضوع. تظل استجابة SMTP العادية المكونة من ثلاثة أرقام جزءًا من الدليل. RFC 3463.
لا تعامل الرقم النهائي كمعرف خطأ عالمي. يعتمد المعنى على الكود المحسن الكامل والتسجيل المعمول به أو وثائق المزود. يمكن لنظام الاستقبال أيضًا إرجاع نثر مفيد بدون رمز محسّن. إذا ظهرت الفئات الأساسية والمحسنة غير متناسقة، فاحتفظ بالبايتات الدقيقة وتحقق من سلوك الموفر بدلاً من إعادة كتابة السجل بصمت.
ردود SMTP منفصلة عن تقارير التسليم
يحدث رد SMTP أثناء المحادثة. يمكن لإشعار حالة التسليم الإبلاغ عن النتائج لاحقًا ويمكنه وصف عدة مستلمين. يحدد RFC 3464 الحقول بما في ذلك المستلم النهائي والإجراء والحالة وRemote-MTA ورمز التشخيص. اقرأ الكتل الخاصة بكل مستلم بشكل مستقل؛ فشل واحد لا يثبت فشل كل مستلم. RFC 3464 القسم 2.
الإجراء والحالة يجيبان على أسئلة مختلفة. الإجراء: فشل يعني الإبلاغ MTA أوقف المحاولات لهذا المستلم. الحالة: 4.2.2 لا يزال بإمكانه وصف السبب الكامل لصندوق البريد العابر بعد استنفاد عمليات إعادة المحاولة؛ فشل بالإضافة إلى أن حالة 4.xx صالحة في DSN، وليس رد SMTP غير متناسق. على سبيل المثال، لن يتم استئناف العنصر منتهي الصلاحية الذي يحتوي على هذه الحقول تلقائيًا لمجرد عودة السعة. تحقق من قائمة الانتظار الفعلية قبل السماح بأي استبدال. يرى RFC 3464 القسم 2.3.3.
يعد موضوع الارتداد الذي يمكن قراءته بواسطة الإنسان مفيدًا للفرز، لكن يمكنه حذف الحقول الحاسمة. احصل على التقرير المقروء آليًا أو سجل الإرسال عندما يكون ذلك ممكنًا. احتفظ بخادم التقارير منفصلاً عن الخادم البعيد، وقم بتمييز الطابع الزمني للتقرير عن الطابع الزمني لأمر SMTP الفاشل.
قراءة كتلة المستلمين الافتراضية
لنفترض أن سجل الإرسال يسجل RCPT TO لـ missing@example.test متبوعًا بـ 550 5.1.1. يمكن أن تحتوي كتلة مستلم DSN التوضيحية على المستلم النهائي: rfc822؛ missing@example.test ، الإجراء: فشل، الحالة: 5.1.1، Remote-MTA: dns؛ mx.example .test ورمز التشخيص: smtp; 550 5.1.1 لا يوجد مثل هذا المستخدم. هذه هي قيم الحقول المخترعة، وليست معاملة منفذة أو تقرير MIME كامل.
يعتبر الإجراء الفاشل نهائيًا بالنسبة لهذا المستلم، بينما يشير التشخيص إلى المعالجة. ولا يحدد سبب عدم توفر العنوان أو ما حدث للمستلمين الآخرين. احصل على هذه الإجابات من الكتل الخاصة بهم والسجلات الموثوقة. حقول المستلم النهائي والإجراء والحالة مطلوبة لكل مستلم؛ Remote-MTA وDiagnostic-Code مشروطتان أو اختياريتان. غيابهم ليس إذنًا لاختراع مضيف مرفوض أو نص خطأ.
للحصول على تفاصيل مسجلة غير مألوفة، راجع الحالي سجل الحالة المعزز IANA والمواصفات المذكورة، ثم الشرح الحالي للمزود. يوفر RFC 3463 إطار العمل، وليس قائمة شاملة لكل رمز لاحق.
تحويل الكود إلى فرضية قابلة للاختبار
للحصول على رمز العنونة، قم بتأكيد العنوان المقصود وسلوك نظام الاستقبال. للحصول على رمز التوجيه، قم بفحص تكوين المسار والخطوة التالية الفاشلة. للحصول على رمز الأمان أو السياسة، حدد المتطلب المحدد ومالكه. تجنب البدء بتغيير DNS المفضل ثم تفسير كل استجابة على أنها دعم لها.
سجل فرضية واحدة والأدلة التي تتنبأ بها وأصغر اختبار معتمد. يجب مقارنة الرسالة المصححة بالرسالة الأصلية على المسار ذي الصلة وفئة المستلم. احتفظ بنتيجة متناقضة كدليل مفيد بدلاً من فرضها على التفسير الأصلي. يجب أن تتضمن حزم التصعيد الطوابع الزمنية والاستجابة الدقيقة والنطاق المتأثر والتغييرات التي تم اختبارها بالفعل، مع تقليل محتوى الرسالة والبيانات الشخصية. البحث عن الكود هو بداية التشخيص، وليس اكتماله.
قم ببناء حزمة تصعيد مفيدة
- الهوية: الاحتفاظ بمعرفات الرسالة وقائمة الانتظار ومستلم المظروف الفاشل والنطاق المتأثر.
- الجدول الزمني: تقديم السجل والمحاولة الفاشلة والإبلاغ عن الوصول بشكل منفصل.
- التشخيص: يتضمن رد SMTP الدقيق ومرحلة الأمر وحقول DSN لكل مستلم.
- الملكية: تمييز نظام الإبلاغ عن نظام الرافض، مع ذكر الأدلة لكل منهما.
- الخطوة التالية: اذكر سببًا واحدًا قابلاً للاختبار، وأصغر فحص معتمد وأي دليل متناقض. تقليل البيانات الشخصية.