مشكلة في إرسال بريد التفعيل

لقد قمت بتثبيت Discourse باستخدام التطبيق التلقائي (1-click app) على DigitalOcean مع دعم HTTPS عبر LetsEncrypt. لا أستلم بريد التفعيل على حساب البريد الإلكتروني الخاص بالمسؤول. عند تشغيل الأمر ./discourse-doctor، أواجه الخطأ التالي في خطوة إرسال البريد:

Net::ReadTimeout

أستضيف Discourse على نطاق فرعي، بينما موقعي الرئيسي (النطاق الأساسي) وخادم البريد الخاص بي يستضيفان على Hostgator. سجلات SPF وDKIM نشطة على النطاق الرئيسي. قمت بإعداد إرسال البريد في Discourse ليستخدم المنفذ 465، وهو ما تدعمه خوادم البريد الخاصة بـ Hostgator.

هل يمكن لأحد توضيح ما الذي قد يكون خاطئًا؟

شكرًا مقدّمًا.

تعديل: عند تجربة المنفذ 587، يعطي الأمر ./discourse-doctor خطأ مختلفًا كما هو موضح أدناه:

فشل إرسال البريد.

تحديث: تمكنت من جعل بريد التفعيل يعمل باستخدام المنفذ 587 وباستخدام القيمة التالية في ملف app.yaml:

DISCOURSE_SMTP_ENABLE_START_TLS: false

بمجرد تسجيل الدخول إلى واجهة المسؤول، استطعت رؤية أخطاء Sidekiq التالية (من قبل؟):

Jobs::HandledExceptionWrapper: Wrapped OpenSSL::SSL::SSLError: اسم المضيف “mail.mydomain.com” لا يطابق شهادة الخادم

الآن، أفهم أن هذا الخطأ اختفى لأنني قمت بتعيين DISCOURSE_SMTP_ENABLE_START_TLS إلى false، لكن هل هذه هي الطريقة الصحيحة للقيام بالأمر؟

مرحبًا وأهلاً بك في الميتا @nparab :wave:

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

هذه الرسالة واضحة بذاتها وتعني أن خادم البريد الخاص بك غير مُهيأ بشكل صحيح.

ولكن إذا قمت بالاتصال عبر الأمر التالي:

openssl s_client -starttls smtp -crlf -connect mail.mydomain.com:587

فإن الاتصال يتم بنجاح ويمكنني حتى إرسال رسائل البريد الإلكتروني. إذا كان خادم البريد مُعدًا بشكل خاطئ، فلن يعمل هذا الأمر أيضًا، أليس كذلك؟

تحديث: عند تنفيذ الأمر التالي:

openssl s_client -servername mail.mydomain.com -starttls smtp -crlf -connect mail.mydomain.com:587

يتم إرجاع شهادة لموقع mydomain.com بدلاً من شهادة موقع mail.mydomain.com.

هل هذا هو الخطأ في الإعداد الذي كنت تتحدث عنه؟

في الوقت الحالي، قمت بإعداد Discourse لاستخدام mydomain.com (بدلاً من mail.mydomain.com) كقيمة لـ DISCOURSE_SMTP_ADDRESS في ملف app.yml، بحيث تتطابق الشهادات. هل سيسبب ذلك أي مشاكل؟