مرحباً يا أصدقاء،
أواجه بعض المشاكل المتعلقة بالبريد الإلكتروني في تثبيت جديد لـ Discourse على نطاق فرعي. لقد راجعت خطوات استكشاف الأخطاء وإصلاحها، لكن المشكلة لا تزال قائمة. بشكل أساسي، لا تصل رسائل البريد الإلكتروني الصادرة من Discourse عبر MailGun إلى عناوين البريد الإلكتروني المستضافة لدي.
بعض تفاصيل بيئة التثبيت:
- مُستضاف على Vultr
- نطاق فرعي على استضافة عادية
- استخدام Cloudflare
- استخدام Mailgun
تفاصيل أخرى:
- تصل رسائل البريد الإلكتروني من Mailgun-Discourse إلى خدمات أخرى (مثل Gmail) وحتى إلى mail-tester.com دون أي مشكلة.
- تصل أنواع أخرى من رسائل البريد الإلكتروني إلى المستلم (أي البريد العادي المرسَل من عنوان Gmail الخاص بي).
- تم إعداد سجلات DNS و MX في Cloudflare وتحديثها في Mailgun.
ليس من المهم حقاً أن تصل رسائل البريد الإلكتروني إلى تلك الحسابات في استضافتي (على الرغم من أنني أردت استخدام واحدة منها كمسؤول)، لكنني قلق من أن قد يحدث نفس الأمر مع عناوين بريد إلكتروني مستضافة ذاتياً أخرى.
رأس رسالة فشل البريد الإلكتروني:
{
"severity": "permanent",
"tags": [],
"storage": {
"url": "https://sw.api.mailgun.net/v3/domains/[subdomain here]messages/eyJwIjpmYWxzZSwiayI6IjgwYzAzNzQ2LTN.........",
"key": "eyJwIjp...."
},
"delivery-status": {
"mx-host": "dc-94c828295f73.[domain here[",
"attempt-no": 1,
"description": "",
"session-seconds": 0.5889058113098145,
"code": 550,
"message": "Verification failed for <bounce+f45d38.b55c5c-[username]=[domain]@[subdomain]>\nNo Such User Here\nSender verify failed"
},
"recipient-domain": "[domain here]",
"id": "DSLvcNXnTEKYl7gsFOGkDg",
"campaigns": [],
"reason": "generic",
"user-variables": {},
"flags": {
"is-routed": false,
"is-authenticated": true,
"is-system-test": false,
"is-test-mode": false
},
"log-level": "error",
"timestamp": 1535055760.1404,
"envelope": {
"transport": "smtp",
"sender": "noreply@[subdomain]",
"sending-ip": "184.173.153.194",
"targets": "[user]@[domain]"
},
"message": {
"headers": {
"to": "[recipient user]@[recipient-domain]",
"message-id": "e438348c-9414-48e8-8af3-25df2174d5f7@[discourse subdomain]",
"from": "Discourse <noreply@[discourse subdomain]>",
"subject": "Email Deliverability Test"
},
"attachments": [],
"size": 7127
},
"recipient": "[recipient user]@[recipient-domain]",
"event": "failed"
}
نقلاً عن رد التذكرة من Mailgun:
الخطأ الذي تراه هو نتيجة للتحقق من عنوان المرسل، ويمكنك قراءة المزيد عنه في الرابط التالي: Callback verification - Wikipedia. بشكل أساسي، هذا يعني أن نطاق المستلم يقوم بفحص للتأكد من صحة عنوان الإرسال.
الخيارات التالية ستساعدك في حل هذا الخطأ:
- إيقاف التحقق من عنوان المرسل (هذا يتم على مستوى الخادم).
- إضافة “x-mailgun-native-send: true” إلى رأس رسالتك لإيقاف إعادة كتابة عنوان المرسل.
- الإرسال من نطاق فرعي تابع لنطاقك.
- تغيير سجلات MX لتشير إلى Mailgun بدلاً من ذلك. ( تحذير : لا تفعل ذلك إلا إذا كان لديك إعداد توجيه يعيد توجيه الرسائل إلى الخادم الداخلي.)
- إنشاء catch_all مع الخدمة التي تستقبل فيها البريد الإلكتروني، بحيث عندما يتحقق خادم المستلم، ستمر عملية التحقق بنجاح.
هل لدى أي شخص أي اقتراحات بخصوص هذا؟
شكراً جزيلاً!
دانيال
