كيفية تكوين Discourse لاستقبال البريد الإلكتروني من Mailgun

لدي تثبيت Discourse يعمل بالكامل (تم تثبيته باستخدام الطريقة الموصى بها) على خادم (Linode) يعمل بنظام Ubuntu. يمكنني إرسال البريد الإلكتروني دون مشكلة ويتم تسجيل المستخدمين الجدد.

نحن نستخدم هذه الميزة Configuring incoming email to create new topics or group messages : يحتاج Discourse إلى توفير عنوان بريد إلكتروني وارد.

في Mailgun، قمت بإنشاء مسار Catch All الذي يعيد توجيه البريد الإلكتروني إلى خطاف ويب (webhook) كما هو موضح هنا: Discourse Mailgun Routes وقمت بتثبيت المكون الإضافي.

ومع ذلك، بالنظر إلى سجلات Mailgun، يفشل هذا. أي أفكار حول كيفية القيام بذلك؟

{
	"timestamp": 1737657789.428326,
	"recipient-domain": "forum.domain.com",
	"envelope": {
		"transport": "http",
		"targets": "https://forum.domain.com/mailgun/routes/receive_mime",
		"sender": "me@myemail.com"
	},
	"primary-dkim": "",
	"delivery-status": {
		"code": 406,
		"session-seconds": 0.277,
		"message": "Not Acceptable",
		"attempt-no": 1,
		"description": ""
	},
	"event": "failed",
	"id": "4uIIPrRRTQOwluJaE-QpRA",
	"campaigns": null,
	"log-level": "error",
	"tags": [],
	"message": {
		"size": 4089,
		"headers": {
			"message-id": "CA+riLLnyMLCruT2DmhFjTuyvy7OtQ8NrT0X0m5PZXfK3uzwCEg@mail.gmail.com",
			"to": "domain+support-12@forum.domain.com",
			"subject": "Test",
			"from": "Me Me <me@myemail.com>"
		},
		"attachments": []
	},
	"recipient": "https://forum.domain.com/mailgun/routes/receive_mime",
	"user-variables": {},
	"flags": {
		"is-test-mode": false,
		"is-authenticated": false,
		"is-routed": false,
		"is-system-test": false
	},
	"storage": {
		"region": "us-east4",
		"env": "production",
		"key": "BAABAAAVXB5iOt41fPtDZaekVDDH1beaZA",
		"url": "https://storage-us-east4.api.mailgun.net/v3/domains/forum.domain.com/messages/BAABAAAVXB5iOt41fPtDZaekVDDH1beaZA"
	},
	"severity": "permanent"
}

الطريقة الأسهل والموصى بها هي تكوين البريد الإلكتروني الوارد للتسليم المباشر للمواقع المستضافة ذاتيًا باستخدام Mail-Receiver

إعجابَين (2)

إذا قمت بتمكين mailgun_log_rejections وإرسال بريد إلكتروني آخر، فيجب أن يكون هناك سبب رفض في سجلات sidekiq الخاصة بك (لا يحتفظ Mailgun بجسم الاستجابة، لذا فهذه هي الطريقة الوحيدة تقريبًا) ويجب أن يخبرك ذلك.

بخلاف ذلك، يمكنك استخدام إعداد mail-receiver إذا كنت تفضل القيام بذلك.

إعجاب واحد (1)

مرحباً @Wolftallemo شكراً لك على المكون الإضافي الممتاز :slight_smile:

لقد تحققت من /logs ولكن لم أجد شيئاً يتعلق بهذه المشكلة. لست متأكداً مما إذا كان هذا هو المكان الصحيح لقراءة سجلات sidekiq أم لا؟

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

مع خالص التقدير،

دان

نعم، هذا هو المكان الذي ستكون فيه، على الرغم من أن ذلك غير معتاد.

أود أن أبدأ بالتحقق من عامل تصفية البريد العشوائي الوارد. من الممكن أنه تم تعيينه لعدم التصفية من جانب Mailgun.

إذا كان هذا هو الحال، فسأقوم إما بما يلي:

  • تغيير تصفية البريد العشوائي الوارد في Mailgun لإضافة رؤوس البريد العشوائي (وهو موجود في إعدادات النطاق)
  • تعيين mailgun_spam_detection إلى none (لكنني لا أوصي بذلك)

لكنني أفترض أن تعيينه إلى none يمكن أن يكون اختبارًا سهلاً جدًا هنا أيضًا.

مرحباً،

تبدو تلك الإعدادات مطبقة بالفعل. ربما أفعل شيئًا غبيًا جدًا. لقد جربت مستقبل البريد بسرعة؛ المشكلة الوحيدة هي أنني أعمل خلف وكيل عكسي لـ Traefik، لذا سأحتاج بلا شك إلى بضع محاولات لجعل ذلك يعمل مع جميع تسميات Docker Compose المطلوبة، وما إلى ذلك. لهذا السبب أحببت المكون الإضافي الخاص بك كثيرًا!

هل تتلقى رسائل الارتداد بنجاح من Mailgun عن طريق الصدفة؟ السببان الوحيدان لرفضها بدون سجل هما إما: أن لديك المفتاح الخاطئ (يجب أن يكون تحديدًا مفتاح توقيع الويب هوك) أو ليس لديك المفتاح على الإطلاق.

سأتحقق مرة أخرى مما إذا كنت قد قمت عن طريق الخطأ بتعيين شيء آخر غير مفتاح توقيع الويب هوك (لأن الصياغة داخل Discourse مشكوك فيها إلى حد ما ويجب تغييرها على الأرجح).

يعمل مستلم البريد على المنفذ 25، لذلك لا يحتاج treafik إلى معرفة ذلك.

لقد قمت بالفعل بتغيير سجلات MX الخاصة بي الآن، لذلك لتجنب تأخير آخر لمدة 24 ساعة، سأستمر في نهج مستقبل البريد.

هذا يبسط الأمور كثيرًا. في هذه الحالة، هل يمكنني تقريبًا تشغيل البرنامج النصي النموذجي دون أي تغييرات أو تكامل مع مكدس traefik/docker-compose؟