الوثائق

البريد الإلكتروني

البريد الوارد (IMAP) والصادر: حفظ السلاسل للسياق متعدد الأدوار، تحليل المرفقات، ومتابعة جودة العناوين وحالات عدم التسليم.

تستوعب قناة البريد الإلكتروني رسائلك الواردة، وتتيح لـpipeline الردّ عليها أو إعادة توجيهها أو إنشاء مهام لاحقة.

النموذج

وحدتان متكاملتان:

  • email_inbound — الاستقبال (IMAP)
  • email_outbound — الإرسال (مشغّل مُهيَّأ، أو ترحيل عبر SMTP الخاص بك)

وهما مستقلّتان: يمكنك استخدام وحدة الاستقبال فقط (للفرز دون الردّ)، أو وحدة الإرسال فقط (لإرسال الإشعارات من pipeline مُشغَّل بطريقة أخرى).

الإعداد

  1. الإعدادات ← الخدمات ← بريد إلكتروني، تبويب الحسابات — اربط صندوق بريد IMAP ببيانات اعتماده.
  2. اربط صندوق البريد بـpipeline مستهدَف.
  3. (اختياري) هيّئ مُرسِلًا (SMTP) للردّ.

بالنسبة إلى البنى التي تحتاج إلى الاحتفاظ بالتحكّم في خوادم بريدها، فإنّ betool لا يستبدل خادم MTA الخاص بك: نحن نقرأ ونكتب عبر IMAP / SMTP القياسي.

ما يستقبله الـpipeline

لكل بريد وارد، يُنشأ exchange جديد يحتوي على:

  • exchange.user_message — نصّ البريد (HTML ← نصّ مُطبَّع)
  • exchange.email.subject — سطر الموضوع
  • exchange.email.from — المُرسِل المُطبَّع
  • exchange.email.thread_id — مُعرِّف السلسلة (مفيد لسياق متعدّد الدورات)
  • exchange.email.attachments — قائمة FileMetadata (مرفقات مُحلَّلة)

المرفقات

يمكن تمرير المرفقات إلى عقدة file_transform: النصّ القابل للتحديد في ملف PDF (pdf_extract_text، دون OCR — ملف PDF الممسوح لا يُعيد نصًّا)، وقراءة مصنّف Excel على شكل صفوف (xlsx_to_json، xls_to_json)، وتقسيم ملف PDF أو تحويل صفحاته إلى صور، واستخراج أرشيف. ومن هناك، يستطيع وكيلك التعامل معها كنصّ أو كبيانات مُهيكَلة.

السلاسل والسياق متعدّد الدورات

عندما يردّ عميل على ردّ سابق، يتعرّف betool على thread_id ويستعيد سِجلّ السلسلة في سياق الوكيل. وهذا شفّاف بالنسبة إلى تصميم الـpipeline.

جودة العناوين وحالات عدم التسليم

ثلاث عُقد تحمي سمعتك كمُرسِل:

  • email_check — تتحقّق من عنوان واحد أو أكثر قبل الإرسال: قائمة الحظر الخاصة بالمؤسسة، ثم الصياغة، ثم DNS النطاق (MX، وإلا A/AAAA؛ و«null MX» يُعدّ رفضًا). وتُنبِّه أيضًا، دون تغيير الحكم، إلى العناوين المؤقّتة، والصناديق العامة (info@…)، والمخاطر (خطأ إملائي في اسم مزوّد كبير، امتداد مكرَّر، خادم «يلتقط كل شيء» catch-all). ولا تحظر شيئًا بنفسها: فهي تنشر الأحكام وقائمة العناوين القابلة للتسليم. ولا يُجرى أي فحص SMTP.
  • email_list_clean — تُصنِّف قائمة كاملة (مستوردة مثلًا من ملف) في ثلاث أوراق: سليمة، وللمراجعة، ومرفوضة، جاهزة للتصدير عبر data_to_file. إزالة التكرار، والفحوص نفسها التي تجريها email_check، وتحليل شكل العنوان. تُفوتَر بالأرصدة لكل عنوان مميَّز، مع التحقّق من الرصيد قبل المعالجة.
  • email_bounce_parse — تقرأ إشعار عدم تسليم وارد إلى صندوق بريد وارد. لا تُؤخذ العناوين إلا من الحقول المُهيكلة في الإشعار، ولا تُؤخذ أبدًا من النص الحرّ. وتُضاف إلى قائمة الحظر: الفشل الدائم يحظر منذ أول حدوث؛ والفشل المؤقّت يحظر بعد 3 حالات، لمدة 72 ساعة.

عمليات الإرسال اللاحقة (العقدة email_outbound والأداة email.send) تستبعد تلقائيًا العناوين المحظورة؛ وإذا لم يتبقَّ أي مستلِم، فلا يُرسَل شيء. ولا يستطيع رفع الحظر الدائم إلا مسؤول.

القيود المعروفة

  • لا يوجد دعم أصيل لـMS Exchange EWS بعد (يمكنك عرض Exchange عبر IMAP).
  • لا يوجد دعم لـMicrosoft Graph لـOffice 365 (ضمن خارطة الطريق).
  • تحليل رسائل قديمة جدًا (تنسيق RTF المتداخل في Outlook 2003) قد يفقد بعض التنسيق.