إعداد VERP للتعامل مع رسائل البريد الإلكتروني المرتدة

إعداد معالجة الارتدادات

يستخدم Discourse تقنية مسار الإرجاع للمغلف المتغير (VERP) للتعامل مع رسائل البريد الإلكتروني المرتدة.

لتمكين VERP، قم بتعيين إعداد الموقع “reply by email address” (عنوان البريد الإلكتروني للرد) باستخدام قالب عنوان بريد إلكتروني يستخدم علامة +. الإعداد الافتراضي لـ
replies+%{reply_key}@discourse.example.com
… يعمل بشكل جيد. إذا كنت تستخدم خادم البريد الإلكتروني الخاص بك أو خادم شركتك، فهذا كل شيء :tada:

يجب أن يكون مثيل Discourse الخاص بك قادرًا على استقبال البريد الإلكتروني المرسل إلى هذا العنوان. يجب أن يعمل هذا عبر POP، ولكننا نوصي بشدة بـ التسليم المباشر للبريد الإلكتروني الوارد للمواقع المستضافة ذاتيًا

ولكن، إذا كنت تستخدم خدمة بريد إلكتروني تابعة لجهة خارجية، فستحتاج إلى تمكين VERP، أو تفعيل خطافات الويب (webhooks) الخاصة بهم على النحو التالي:

MailGun

  1. سجّل الدخول إلى MailGun وانتقل إلى لوحة التحكم الخاصة بك؛ ابحث في العمود الأيسر عن صفحة Sending (الإرسال) → Webhooks (خطافات الويب).
  2. حدد علامة التبويب Configuration (التكوين) وانسخ HTTP signing key (مفتاح توقيع HTTP)
  3. في موقع Discourse الخاص بك، قم بتعيين إعداد الموقع Mailgun API key (مفتاح API الخاص بـ Mailgun) باستخدام HTTP signing key (مفتاح توقيع HTTP) الخاص بك
  4. عد إلى Mailgun، وانقر فوق الزر Add webhook (إضافة خطاف ويب) (اختر Domain-level (على مستوى النطاق)) وقم بتعيين HTTP post URL (عنوان URL لـ HTTP post) إلى https://your.discourse/webhooks/mailgun. اختبر هذا.
  5. حدد كل من 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 (تم ارتداده)
  • احفظ التغييرات بالنقر على :white_check_mark:

MailJet

  • سجّل الدخول إلى MailJet وانتقل إلى event tracking (تتبع الأحداث)
  • تحقق من حدث bounce (الارتداد)
  • قم بتعيين endpoint URL (عنوان URL لنقطة النهاية) إلى http://your.discourse/webhooks/mailjet
  • تحقق من :white_medium_square: في عمود 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 (حفظ خطاف الويب)

اختبار الارتدادات

للتأكد من أن كل شيء يعمل، قم بما يلي:

  1. سجّل حسابًا جديدًا على موقعك باستخدام بريد إلكتروني غير صحيح بشكل واضح، على شكل bademail@obviously-invalid-domain.com أو clearly.nobody.has.this.email.address@gmail.com
  2. انتظر بعض الوقت حتى ترتد رسائل البريد الإلكتروني بالكامل (تحقق من سجلات مزود الخدمة الخاص بك، إذا أردت – سيتم عرضها عادةً تحت مستوى السجل “warn” (تحذير) أو “error” (خطأ))
  3. تحقق من /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

51 إعجابًا
Does Discourse use Mailgun's validations feature?
VERP bounce replies ignored when using Mailgun
Postmark bounce support?
Email-in replies thread wrongly
Amazon SES/SNS email complaints not received, bounces missing information
What mail service do you recommend?
Confused about VERP, email bounces & additional setup on Discourse
Reply-by-Email was working, now broken
Mailgun "temporarily disabled due to high bounce rate"
How to deactive account of those users who're not receiving emails
Surface data about users with too many bounces
"Discourse::NotFound" error when click "Email Type" field on admin/email/bounced
Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver
"Discourse::NotFound" error when click "Email Type" field on admin/email/bounced
Bounced Email Info Not Found
Fix AWS SNS Bounce
How to block outgoing emails to at anon.forumurl?
Mailgun api key check backward (no API key should be required if bounces handled by mail receiver)
Switching from SMTP to oAuth
Is handling bouncing emails optional, or is it something I definitely need to set up?
Moving from Mailgun to Amazon SES as an amateur
"Discourse::NotFound" error when click "Email Type" field on admin/email/bounced
Mailgun api key, what is it for?
Question about the mail-receiver
Goodbye Sparkpost
Migrated forum with many invalid (bouncing) emails
Amazon SES API - How to setup?
Zero entries in bounced email list
Email suppression list handling
Email suppression list handling
How hard is it to handle Discourse after installation
Set up mail-receiver, but now site won't send any emails?
Installation by the book
Too many user emails domains not working lead to mailgun domain disabled: what to do?
Mailgun huge dropped subscriber
Flush bouncing user mail address
Configuring AWS SES for outgoing, bounce, and incoming email
Notes on Silencing or Deleting users
Retrying bounced emails?
Discourse Mailgun Routes
"Discourse::NotFound" error when click "Email Type" field on admin/email/bounced