Discourse يتصل بخادم SMTP ولكنه يفشل في إرسال البريد الإلكتروني من خلاله

تعذر استلام البريد الإلكتروني الأول لتسجيل المستخدم:

يقول تشخيص Discourse:
اتصال خادم SMTP ناجح.
فشل إرسال البريد.

ومع ذلك:
يعمل الاتصال عبر Telnet إلى mail.domain.com على المنفذ 587، ويعمل أمر EHLO الخاص بخادم البريد.

كيف يمكنني حل هذه المشكلة؟ أي مساعدة ستكون محل تقدير كبير.

قد تحتاج إلى الاطلاع على سجلات خادم البريد. فأي خطأ يحدث لا يفهمه أداة Discourse-doctor في بعض الأحيان.

ستحتاج إلى البحث في Google حول كيفية تكوين exim4.

من 7. The default configuration file

يحدث التجميد عندما تواجه رسالة ارتداد فشلاً دائماً لأن عنوان المرسل للرسالة الأصلية التي تسببت في الارتداد غير صالح، وبالتالي لا يمكن تسليم رسالة الارتداد.

أعتقد أنك بحاجة إلى تغيير عنوان البريد الإلكتروني للإشعار أو تكوين exim لاستخدام نطاقك الفرعي.

هل نسيت إعادة بناء الحاوية؟

على أي حال، يمكنك فحص حاويتك عن طريق:

docker exec -it app rails c

ثم، من وحدة تحكم rails:

[1] pry(main)>ENV

يمكنك بسهولة عرض جميع متغيرات البيئة الخاصة بـ SMTP.

تم اختبار Exim4 للتأكد من إرسال واستقبال الرسائل الإلكترونية.
تم إعادة بناء Discourse باستخدام discourse-setup، مع استخدام جميع بيانات الاعتماد الصحيحة:

Hostname      : forum domainname com
Email         : user@test com
SMTP address  : mail forum domainname com
SMTP port     : 587
SMTP username : postmaster@forum domainname com
SMTP password : password

ثم تم تشغيل discourse-doctor لاختبار ما إذا كان Discourse قادرًا على إرسال البريد من خادم البريد المحلي exim4.

يُظهر discourse-doctor:
“اتصال بخادم SMTP ناجح.”
“فشل إرسال البريد.”

ومع ذلك، لا توجد أخطاء في سجل exim4.

لماذا يفشل إرسال البريد؟
هل هذه مشكلة شائعة؟

لاحظ أن عنوان SMTP هو: mail forum domainname com،
هل يجب أن يحتوي على “mail” في البداية؟

يُظهر discourse-doctor أن Discourse يتصل بـ:
mail forum domainname com،
ولكن Discourse لا يرسل البريد الإلكتروني.

تخميني هو وجود عدم تطابق بين اسم مضيف المنتدى واسم النطاق الذي سيرسله خادم البريد.

ما هو اسم المضيف (hostname) الذي يستخدمه Discourse لإرسال البريد الإلكتروني؟
هل يستخدم forum.somedomain.com؟
أم
هل يستخدم mail.forum.somedomain.com؟

بشكل افتراضي، يكون هو email@forum.somedomain.com كما أتذكر.

هذا يربك بعض الأشخاص لأنهم يتوقعون أن يكون

email@somedomain.com