قاعدة المعرفة
قواعد تكتبها بنفسك
شروطك أنت، وما ينبغي أن يحدث لكل ما يطابقها.
التفاصيل
- تُكتب في Settings → Rules، وعبر REST API عند /rules، وهي مفعّلة لكل مساحة عمل. والقاعدة قائمة شروط على رسالة واصلة وقائمة إجراءات تُطبَّق على كل ما يطابقها: 100 قاعدة لكل صندوق بريد، تحمل كل واحدة 20 شرطًا و10 إجراءات كحد أقصى. وهذه حواجز ضد سكريبت عالق في حلقة لا حدود خطط. والقاعدة رقم 101 تُرفض برسالة تقول ذلك، ولا تُفوتر.
- واحد وعشرون شيئًا يمكن للشرط أن يسأل عنها: عنوان From ونطاقه (حيث تغطي مطابقة example.com أيضًا mail.corp.example.com)، ومرسِل مظروف SMTP، وTo وCc وBcc، وأي مستلم، وReply-To، والعنوان الذي سُلّمت إليه النسخة فعلًا بعد تجريد وسم الزائد منه، والموضوع، والمتن، وأي ترويسة مسمّاة، وList-Id، واسم المرفق أو نوعه أو حجمه، ووجود مرفق من عدمه، وحجم الرسالة كاملة، وحكم الرسائل المزعجة، وساعة الوصول ويوم الأسبوع بتوقيت UTC. والمطابقة إما نمط glob (* و?)، أو يحتوي، أو يساوي، أو يبدأ بـ، أو ينتهي بـ، وأكبر من أو أصغر من في الحقول الرقمية الأربعة. وعلى النمط أن يحمل حرفين أبجديين رقميين من عنده، فيُرفض * المجرّد وقت كتابته بدل أن يطابق كل رسالة ستصل يومًا.
- كل الشروط أو أي منها، مع NOT على كل شرط على حدة. ولا يوجد تداخل بالأقواس: (A and B) or C قاعدتان، وهكذا ستقرؤها بعد ستة أشهر على أي حال.
- أحد عشر إجراءً: الوسم، وإزالة تسمية، والأرشفة، والتعليم كمقروء، والتنجيم، والحفظ كرسالة مزعجة، والنقل إلى المهملات، وإعادة التوجيه، والرد التلقائي من قالب، وحظر المرسِل، ورفض الرسالة تمامًا. وتعمل القواعد بالترتيب الذي وضعتها به، الأدنى أولًا، ويمكن إيقاف أي منها من دون حذفها. والقاعدة المعلَّمة بإيقاف المعالجة تنهي المرور، فلا يُنظر في شيء تحتها، وحيث تسمّي قاعدتان مجلدًا، تفوز اللاحقة، لأن هذا ما تعنيه قائمة مرقّمة.
- الرفض عند الباب يعتمد المظروف وحده، وإلا فهو مرفوض وقت الكتابة. فالرد 550 يتلقاه من سلّمنا الرسالة، وعلى قائمة بريدية يكون ذلك القائمةَ نفسها، التي تقرأه على أنه مشترك مرتد فتلغي اشتراكك في شيء كنت تريد فقط أن يتوقف شخص واحد عن النشر فيه. أما القاعدة التي تطابق مرسِلًا اعتمادًا على ترويسة From وحدها فتحفظ الرسالة تحت Spam بدلًا من ذلك، تمامًا كما يفعل الحظر.
- الرد التلقائي لا يجيب آلة. فهو معطَّل عند وجود Auto-Submitted، أو Precedence: bulk أو list أو junk، أو ترويسة List-Id أو List-Unsubscribe، أو X-Autoreply أو X-Autorespond، وعند مرسِل المظروف الفارغ الذي يحمله كل ارتداد. وبعد ذلك، يحصل المرسِل الواحد على رد واحد في اليوم كحد أقصى. فصندوقا بريد بقواعد رد وبلا حارس يتراسلان إلى أن ينتبه أحد.
- إعادة التوجيه نسخة مُعاد بناؤها لا الرسالة التي وصلت: فهي تخرج عبر مسار الإرسال، ولذلك لا يبقى توقيع DKIM الخاص بالمرسِل، ولا الترويسات غير المعتادة ولا الأجزاء الغريبة. وترافقها الرسالة الأصلية بوصفها مرفق .eml لتبقى الترويسات والأجزاء الدقيقة متاحة للقراءة، إلا إن تجاوزت سقف المرفقات البالغ 5MB، وعندها تخرج إعادة التوجيه بالمتن المقروء وتبقى الأصلية في صندوق بريدك أنت. ولا شيء يخبرك بحدوث ذلك، وهذا هو الجزء الجدير بالمعرفة. وتُفحص الوجهة وقت كتابتك القاعدة، لكن من حيث الشكل فقط: فـ ops، أو ops@example بلا نقطة، تُرفض وأنت تكتبها بدل أن تفشل مرة لكل رسالة مطابقة لاحقًا. أما الخطأ المطبعي الذي يظل عنوانًا صالحًا ([email protected] بدل [email protected]) فيُقبل، ولا يُطلب من وجهة القاعدة أن تؤكد نفسها كما يُطلب من وجهة إعادة توجيه عنوان، فتذهب النسخة إلى ما كتبته بالضبط.
- يمكن تجربة قاعدة قبل تفعيلها: وجّهها إلى آخر ثلاثين يومًا (حتى سنة، وحتى 200 رسالة) فتخبرك أي رسائلك كانت ستلتقطها وماذا كانت ستفعل بها، من دون أن تمسّ واحدة منها. والمطابِق الذي يجيب هو نفسه الذي يعمل على مسار التسليم، لكن الرسالة المخزَّنة ليست الرسالة التي سلّمها SMTP. فمرسِل المظروف وخريطة الترويسات وList-Id والعنوان الذي سُلّمت إليه وحجمها على الشبكة تكون قد زالت عندئذ، ولذلك تجيب أحد عشر حقلًا من الحقول الواحد والعشرين إجابة مختلفة في التجربة الجافة أو لا تستطيع الإجابة أصلًا، والنافذة تسمّيها بدل احتسابها إخفاقات بصمت. وأحدّ الحالات قاعدة ترفض عند الباب: إذ يُشترط أن تحمل شرطًا على مرسِل المظروف، ولا شيء في التخزين يستطيع الإجابة عنه، فتفيد المعاينة بأنها لم تطابق شيئًا مهما كانت سترفض في الواقع.
- لا شيء بأثر رجعي، ولا يوجد عمدًا زر يجعله كذلك. فتطبيق قاعدة على صندوق بريد قائم عمل بلا حدود، ولا تراجع فيه، وسيجرّ كل رسالة يمسّها إلى أعلى صندوق الوارد. القواعد تقرّر ما يحدث للبريد الذي يصل لاحقًا.
- يُسجَّل ما فعلته كل قاعدة لكل رسالة (الإجراءات التي طُبّقت، وبشكل منفصل تلك التي رُفضت وسبب رفضها)، فيصير سؤال «لماذا انتهت هذه هنا» وسؤال «لماذا لم يردّ إشعار غيابي على تلك» قابلين للإجابة. ويحتفظ السجل باسم القاعدة، فيظل مقروءًا بشكل صحيح بعد إعادة تسميتها أو حذفها.
- ينطبق على كل عنوان على نطاقاتك، فتصل القاعدة إلى كل ما يرد بدل أن تُعرض في موضع لا تفعل فيه شيئًا بصمت.
- إن عجز المحرّك عن الإجابة (شرط من عميل أحدث، أو قاعدة بيانات لا تستجيب)، تُسلَّم الرسالة كما كانت ستُسلَّم ويُسجَّل الفشل. فالقاعدة التي ترمي خطأ تعني رسالة لا تصل أبدًا.