إعداد معالجة الارتدادات
يستخدم Discourse تقنية مسار الإرجاع للمغلف المتغير (VERP) للتعامل مع رسائل البريد الإلكتروني المرتدة.
لتمكين VERP، قم بتعيين إعداد الموقع “reply by email address” (عنوان البريد الإلكتروني للرد) باستخدام قالب عنوان بريد إلكتروني يستخدم علامة +. الإعداد الافتراضي لـ
replies+%{reply_key}@discourse.example.com
… يعمل بشكل جيد. إذا كنت تستخدم خادم البريد الإلكتروني الخاص بك أو خادم شركتك، فهذا كل شيء ![]()
يجب أن يكون مثيل Discourse الخاص بك قادرًا على استقبال البريد الإلكتروني المرسل إلى هذا العنوان. يجب أن يعمل هذا عبر POP، ولكننا نوصي بشدة بـ التسليم المباشر للبريد الإلكتروني الوارد للمواقع المستضافة ذاتيًا
ولكن، إذا كنت تستخدم خدمة بريد إلكتروني تابعة لجهة خارجية، فستحتاج إلى تمكين VERP، أو تفعيل خطافات الويب (webhooks) الخاصة بهم على النحو التالي:
MailGun
- سجّل الدخول إلى MailGun وانتقل إلى لوحة التحكم الخاصة بك؛ ابحث في العمود الأيسر عن صفحة Sending (الإرسال) → Webhooks (خطافات الويب).
- حدد علامة التبويب Configuration (التكوين) وانسخ HTTP signing key (مفتاح توقيع HTTP)
- في موقع Discourse الخاص بك، قم بتعيين إعداد الموقع Mailgun API key (مفتاح API الخاص بـ Mailgun) باستخدام HTTP signing key (مفتاح توقيع HTTP) الخاص بك
- عد إلى Mailgun، وانقر فوق الزر Add webhook (إضافة خطاف ويب) (اختر Domain-level (على مستوى النطاق)) وقم بتعيين HTTP post URL (عنوان URL لـ HTTP post) إلى
https://your.discourse/webhooks/mailgun. اختبر هذا. - حدد كل من
Permanent Failure(فشل دائم) وTemporary failure(فشل مؤقت)، وتحقق مرة أخرى من النطاق (Domain)، ثم أنشئ خطاف الويب (Create Webhook).
SendGrid
- سجّل الدخول إلى SendGrid وانتقل إلى Mail Settings (إعدادات البريد)
- قم بتوسيع إعداد Event Webhook (خطاف ويب للحدث) وقم بتمكينه إذا لم يكن ممكّنًا بالفعل
- انقر فوق edit (تحرير) لتعيين HTTP POST URL (عنوان URL لـ HTTP POST) إلى
http://your.discourse/webhooks/sendgrid - تأكد من تحديد الإجراءات الثلاثة التالية:
Dropped(تم إسقاطه)،Deferred(تم تأجيله) وBounced(تم ارتداده) - احفظ التغييرات بالنقر على

MailJet
- سجّل الدخول إلى MailJet وانتقل إلى event tracking (تتبع الأحداث)
- تحقق من حدث bounce (الارتداد)
- قم بتعيين endpoint URL (عنوان URL لنقطة النهاية) إلى
http://your.discourse/webhooks/mailjet - تحقق من
في عمود group events (تجميع الأحداث) - انقر فوق الزر save (حفظ)
SparkPost
- سجّل الدخول إلى SparkPost وانتقل إلى لوحة التحكم الخاصة بك.
- حدد Account (الحساب) من أيقونات القائمة اليسرى
- حدد Webhooks من القائمة ( SparkPost )
- حدد New Webhook (خطاف ويب جديد).
- أدخل قيمة ودية لـ Webhook Name (اسم خطاف الويب) مثل
Discourse Forum - أدخل Target URL (عنوان URL الهدف) كـ
http://your.discourse/webhooks/sparkpost - حدد Add Webhook (إضافة خطاف ويب).
Amazon Simple Email Service (AWS SES)
- على Discourse:
- قم بتعيين
reply by email enabled(تم تمكين الرد عبر البريد الإلكتروني) وreply by email address(عنوان البريد الإلكتروني للرد) كما هو موضح في أعلى الموضوع - قم بتعيين
manual polling enabled(تم تمكين الاستطلاع اليدوي)
- قم بتعيين
- على AWS:
- أنشئ موضوع SNS
- أنشئ اشتراك SNS للموضوع الذي تم إنشاؤه كـ HTTPS يشير إلى
https://your.discourse/webhooks/aws - انتقل إلى SES ← Verified Identities (الهويات المُتحقق منها)، وحدد نطاق موقعك، وانتقل إلى علامة التبويب Notifications (الإشعارات). قم بتحرير إشعارات الملاحظات (Feedback Notifications). قم بتعيين إشعار الارتداد (Bounce feedback) وإشعار الشكوى (Complaint feedback) إلى موضوع SNS الذي أنشأته للتو
Postmark
- سجّل الدخول إلى Postmark ثم حدد الخادم المستخدم لإرسال رسائل البريد الإلكتروني الخاصة بـ Discourse
- حدد تدفق الرسائل المرتبط برسائل البريد الإلكتروني الخاصة بـ Discourse، وعادةً ما يكون Default Transactional Stream (تدفق المعاملات الافتراضي)
- انقر فوق Webhooks (خطافات الويب)
- انقر فوق Add webhook (إضافة خطاف ويب)
- أدخل Webhook URL (عنوان URL لخطاف الويب) كـ
http://your.discourse/webhooks/postmark - ضمن، Which events should we send? (ما هي الأحداث التي يجب أن نرسلها؟)، حدد Delivery (التسليم) وSpam complaint (الشكوى من البريد العشوائي)
- قم بالتمرير لأسفل وانقر فوق Save webhook (حفظ خطاف الويب)
اختبار الارتدادات
للتأكد من أن كل شيء يعمل، قم بما يلي:
- سجّل حسابًا جديدًا على موقعك باستخدام بريد إلكتروني غير صحيح بشكل واضح، على شكل
bademail@obviously-invalid-domain.comأوclearly.nobody.has.this.email.address@gmail.com - انتظر بعض الوقت حتى ترتد رسائل البريد الإلكتروني بالكامل (تحقق من سجلات مزود الخدمة الخاص بك، إذا أردت – سيتم عرضها عادةً تحت مستوى السجل “warn” (تحذير) أو “error” (خطأ))
- تحقق من
/admin/email/bouncedعلى موقعك لتأكيد أن الارتداد قد تم التقاطه. ضع في اعتبارك أن هذا قد يستغرق ما يصل إلى 48 ساعة اعتمادًا على عدد مرات إعادة المحاولة والمنطق المحدد لمزود البريد الإلكتروني الخاص بك.
تكوين الارتدادات
يمكن تخصيص معالجة الارتدادات باستخدام إعدادات الموقع التالية
- soft bounce score (نقاط الارتداد المؤقت): النقاط المضافة إلى “نتيجة الارتداد” للمستخدم عندما نتلقى ارتدادًا مؤقتًا من عنوان بريده الإلكتروني
- hard bounce score (نقاط الارتداد الدائم): النقاط المضافة إلى “نتيجة الارتداد” للمستخدم عندما نتلقى ارتدادًا دائمًا (أو غير معروف) من عنوان بريده الإلكتروني
- reset bounce score after days (إعادة تعيين نتيجة الارتداد بعد أيام): عدد الأيام التي يجب ألا نتلقى فيها أي ارتداد قبل أن نتمكن من إعادة تعيين “نتيجة الارتداد” للمستخدم إلى 0
- bounce score threshold (عتبة نتيجة الارتداد): العتبة النقطية التي سنتوقف عندها عن إرسال رسائل غير عاجلة إلى المستخدم
آخر مراجعة بواسطة @SaraDev في 2022-07-19T20:00:00Z