الخلاصة

  • عرّفت RFC 5230 إجراءً في Sieve ينشئ رسالة جديدة إلى مرسل الظرف الأصلي، ويتتبع ما إذا كان ذلك العنوان قد تلقى الرد نفسه خلال فترة معينة.
  • لم يكن النص وحده هو المتحكم؛ فأهلية المستلم وهوية الرد وترويسات منع الحلقات والفترة التي يحدها الموقع تحدد من يتلقى الرسالة ومتى.

الغياب قد يؤثر في أشخاص آخرين

تبدو رسالة الغياب بريئة لأنها غالباً قصيرة. لكنها فعل صادر باسم صاحب الحساب من دون سؤاله عن كل مستلم. وقد تكشف أنه غير موجود، أو ترد على قائمة بريدية، أو تدور بين نظامين آليين بلا إشراف. لذلك كان المطلوب قاعدةً تحدد متى يصمت النظام، لا مجرد صياغة مهذبة.

في عام 2008 أضافت RFC 5230 الإجراء vacation إلى Sieve، لغة تصفية البريد المحدودة عمداً. يستطيع البرنامج إعلان أن المستخدم لن يجيب سريعاً، ثم يطلب من المفسر إنشاء رسالة مستقلة. وكان ذلك أول امتداد في Sieve ينشئ رسالة جديدة بالكامل. فالقاعدة لم تعد تفرز البريد إلى مجلد فحسب؛ بل تبدأ اتصالاً خارج الحساب قد يولد رداً آخر.

تذهب الرسالة إلى مرسل ظرف SMTP الأصلي، أي قيمة MAIL FROM التي قد تظهر في Return-Path إذا عالج Sieve البريد بعد تسليمه النهائي، لا إلى حقل From المرئي وحده. ويوصى بأن تستخدم الرسالة المنشأة ظرف إرسال فارغاً. وإذا كان امتداد إشعارات التسليم متاحاً، فينبغي طلب عدم توليد إشعار آخر عند فشل الرد. ويبيّن الحقل Auto-Submitted أن الرسالة آلية. أما التاريخ والمرسل والمستلم وحقول ربط المحادثة، فتصف رداً جديداً بالفعل ولا تجعله يبدو كأنه صادر عن المرسل الأصلي.

عنوان واحد، وردّ محدد، وفترة زمنية

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

ليست هذه إشارة عامة تفيد بأن صاحب الحساب «أُبلغ بأنه في إجازة». بل تميّز المواصفة الرد الذي تلقاه كل مرسل. يتيح :handle الصريح تسمية رد واحد بحيث تتشارك عدة أوامر vacation هوية التتبع نفسها. وإذا لم يُستخدم، تتولد الهوية من :subject و:from و:mime ونص السبب. وهكذا يمكن للمستخدم أن يرسل إجابتين مختلفتين بحسب السياق، بينما تتشارك الأوامر ذات المعاملات المتطابقة سجل الكبح. وعند استخدام امتداد المتغيرات، لا يجوز توسيع القيم قبل حساب هوية الرد: المفتاح يعتمد على المعاملات المحددة، لا على قيمة تتغير في كل تشغيل.

تعمل الفترة كقاعدة بيانات صغيرة للسياسة. ومفتاحها هو الزوج: عنوان المرسل وهوية الرد. وهذا يمنع التكرار من دون منع رسالة جديدة في حالة مختلفة. يحدد كاتب البرنامج ما الردود المتكافئة، فيما يحدد المشغل الحد الفعلي لمعدل تكرارها.

يجب أن تكون الرسالة موجهة إلى الغائب نفسه

تشترط RFC 5230 وجود عنوان المستخدم في To أو Cc أو Bcc أو نظائرها من حقول Resent قبل إرسال رد الغياب. ويمكن للخادم التعرف إلى العنوان من سجلات الحساب، أو من مستلم الظرف النهائي، أو من قائمة :addresses يضيفها كاتب البرنامج للأسماء المستعارة. يفيد ذلك من يملكون عناوين متعددة، لكن إعادة التوجيه والعناوين الفرعية قد تجعل القائمة الكاملة مستحيلة.

وتوجد حواجز أخرى ضد الرد على الأنظمة والقوائم. يجب على التنفيذ الاحتفاظ بقائمة عناوين محظورة، وتشجع المواصفة على إدراج أسماء الخدمات الآلية وأدوات إدارة القوائم. وينبغي ألا يرد التنفيذ على الرسائل التي تحمل ترويسات إدارة قوائم، أو التي تحمل قيمة في Auto-Submitted غير no. كما يجوز له كبح رسالة تجعل ترويساتها أو محتوياتها الرد غير مناسب. لكن المواصفة لا تضمن أن يتعرف كل خادم على كل سير عمل آلي؛ فبعض العناوين يحددها التنفيذ، وتعتمد الحماية على ما يمكنه رصده.

سبقت RFC 3834 هذه المواصفة في عام 2004 بتوصيات أوسع للاستجابات الآلية. وتقول RFC 5230 إن vacation صُممت بما يوافق تلك الإرشادات الخاصة بالمستجيب الشخصي. ثم وسعت الأعمال اللاحقة الحدود: أضافت RFC 6131 معامل :seconds، بما في ذلك الصفر لإرسال رد على كل رسالة؛ وبيّنت RFC 6133 دمج الحضور ودفتر العناوين؛ وأتاحت RFC 8580 حفظ نسخة من الرد المنشأ في صندوق البريد. هذه أمثلة على تطور التصميم، لا قياس لمدى انتشار التنفيذ.

الرسالة أكثر من نصها

تعالج المواصفة UTF-8 وMIME، بما في ذلك تضمين بدائل بلغات متعددة. ويمكن للبرنامج اختيار اللغة استناداً إلى الحقول، لكن RFC تحذر من أن الفحص النصي البسيط قد يُضلل. كما تلاحظ أن درجة الرسمية قد تتوقف على ما إذا كان المرسل زميلاً أو غريباً، لا على اللغة وحدها. فاختيار الرد قرار بشأن الجمهور أيضاً.

الإجراء محدود: يجوز استخدامه مرة واحدة في البرنامج، ولا يتوافق مع reject أو refuse، ولا يلغي keep الضمني في Sieve. توضح هذه القيود مكانه في اللغة، لكنها ليست موضوع التحليل العام في RFC 3028 حول اختيار الإجراءات. الإضافة المميزة هنا هي سياسة الرسالة الصادرة الجديدة: مستلمها، وهوية الرد، وترويساتها، والفاصل بين الإرسالين.

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

المصادر