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