فشل البريد الإلكتروني بعد التثبيت

لقد قمت بتثبيت Discourse وحصلت الآن على صلاحيات المسؤول، لكن عند محاولة إرسال الدعوات أو رسائل البريد الإلكتروني التجريبية، يحدث فشل كامل.

لدي خادم بريد إلكتروني (mail.mydomain.com) مع حساب postmaster@mydomain.com. بعد قراءة عدة أسئلة وأجوبة للدعم، يبدو أن mydomain.com قد تتطلب سجلات DNS لـ SPF و DKIM. هل فاتني هذا في تعليمات التثبيت؟

وجدت واختبرت سجل SPF ويبدو أنه صحيح.
يمكنني إرسال بريد إلكتروني من بريدي الشخصي إلى postmaster@mydomain ويتم استلامه بشكل صحيح.

إذا أرسلت بريدًا تجريبيًا من Discourse، فلا يتم استلامه. هل يُطلب وجود DKIM؟ إذا كان الأمر كذلك، كيف أقوم بتثبيت DKIM؟ مرة أخرى، هل فاتني هذا الخطوة في مكان ما؟

شكرًا مسبقًا…

لا ينبغي أن تمنع بروتوكولات SPF و DKIM خروج البريد من Discourse إلى خادم البريد الخاص بك. تحقق من مجلد /logs في منتداك وسجلات خادم البريد للبحث عن أي رسائل خطأ.

أي توثيق لهذه السجلات سيأتي من مزود البريد الإلكتروني الخاص بك، حيث لا توجد طريقة واحدة لإعدادها. ولكن كما ذُكر، فمن غير المرجح للغاية أن يكون هذا هو سبب فشل التسليم.

شكرًا لكم جميعًا. آسف على التأخير. يبدو أن اختبارات البريد الصادر تضيع في فراغ. لقد أدركت الآن أنه لا يجب أن تكون سجلات SPF و DKIM مطلوبة. إليك ما أراه الآن بعد تسجيل الدخول كمسؤول:

/emails/settings أدخل أي عنوان بريد إلكتروني (خاص بي أو لمستخدم مدعو؛ سواء كان ضمن نطاق المضيف أم لا) وأحصل على رسالة الخطأ التالية:

حدثت مشكلة في إرسال بريد الاختبار. يرجى التحقق مرة أخرى من إعدادات البريد، والتأكد من أن المضيف لا يحظر اتصالات البريد، ثم المحاولة مرة أخرى.

كما أفهم إعدادات البريد في Discourse، أعتقد أنها صحيحة، لكنني لم أرَ تعريفًا واضحًا لها. نطاق المضيف لا يحظر لأنني أستطيع إرسال بريد إلكتروني من عنواني الشخصي. لقد تفحصت جدار الحماية UFW في Droplet الخاص بـ Discourse وأظهر أنه معطل.

/logs/error logs فارغة. هناك خطأ واضح (كما ورد أعلاه) لكنه لم يُسجّل! خيار “تسجيل جميع فشل معالجة البريد في [/logs]” مفعل (تم التحقق منه). لم أجد أي خطأ في نطاق المضيف.

بالإضافة إلى ذلك، لدي موقع WordPress مثبت عليه إضافة WP Discourse ولكنها غير مفعله. هل قد تساعد هذه الإضافة بطريقة ما؟

شكرًا مسبقًا

تعديل…
عدت إلى لوحة التحكم ورأيت ما يلي:

هناك 7 وظائف بريد إلكتروني فشلت. تحقق من ملف app.yml وتأكد من صحة إعدادات خادم البريد. [عرض الوظائف الفاشلة في Sidekiq](https://talk.thesturdytree.com/sidekiq/retries)

نقرت على Sidekiq ورأيت 7 إدخالات وهي نسخ مكررة من هذه:

[خلال 3 ساعات](https://talk.thesturdytree.com/sidekiq/retries/1585096899.6700559-58d9041788be7dd98d743894) 15 [افتراضي](https://talk.thesturdytree.com/sidekiq/queues/default) Jobs::InviteEmail {"invite_id"=>2, "current_site_id"=>"default"} Jobs::HandledExceptionWrapper: Wrapped Net::ReadTimeout: Net::ReadTimeout مع #<TCPSocket:(closed)>

[خلال 3 ساعات](https://talk.thesturdytree.com/sidekiq/retries/1585097052.665957-fc6f06d948e7d37ec15354cc) 15 [حرج](https://talk.thesturdytree.com/sidekiq/queues/critical) Jobs::CriticalUserEmail {"type"=>"email_login", "user_id"=>1, "email_token"=>"da467ec8590f0ecb0220d3aed5b33c61", "current_site_id"=>"default"} Jobs::HandledExceptionWrapper: Wrapped Net::ReadTimeout: Net::ReadTimeout مع #<TCPSocket:(closed)>

تقول صفحة لوحة التحكم هذه أيضًا “أنت على أحدث إصدار!” لكن عند الدخول عبر SSH إلى الـ Droplet، يُبلغني النظام أن “55 حزمة يمكن تحديثها.” هل يتطلب هذا إجراءً معينًا؟

مشكلتان منفصلتان. تخبرك لوحة تحكم الإدارة أن نظام Discourse نفسه محدث. أما الرسالة الظاهرة عند تسجيل الدخول إلى القطرة فتشير إلى وجود برمجيات نظام يمكن تحديثها. يُرجى على الأرجح البحث في كيفية إعداد التحديثات التلقائية لهذا النظام.

يبدو أن هذا يعني أن مثيل Discourse غير قادر على الاتصال بخادم البريد المحدد على المنفذ المحدد. تأكد من صحة إعداداتك، وأن مزود الخدمة (DO) لا يحظر الاتصالات الصادرة على المنفذ الذي تحاول استخدامه.

https://github.com/discourse/discourse/blob/master@{2020-03-24}/docs/INSTALL-cloud.md#post-install-maintenance

في Ubuntu، استخدم أمر dpkg-reconfigure -plow unattended-upgrades.

اقتراحات، بالترتيب المنطقي للتنفيذ:

  1. تحقق من إمكانية اتصال قطرة (Droplet) بخادم البريد عبر بروتوكول Telnet.
  2. تحقق من أن بيانات اعتماد SMTP تعمل بشكل مستقل عن القطرة.

إذا فشل الإجراء 1، فهذا يعني وجود مشكلة في الشبكة. فمن المعروف أن DigitalOcean تقوم بحجب بعض المنافذ الصادرة، وهذه هي المشكلة في 85% من الحالات.

إذا نجح كل من الإجراءين 1 و2، فراجع ملف app.yml؛ فمن المرجح أن كلمة المرور تحتوي على حرف يمنع تحليلها بشكل صحيح (حوالي 5% من الحالات)، أو أنك لم تدخلها بشكل صحيح.

بخصوص خادم البريد، إذا كنت تستضيف خادم بريد خاص بك بدلاً من استخدام أحد موفري البريد الموصى بهم، فإن بروتوكولي SPF وDKIM يمكن أن يساعدا بالتأكيد في تحسين قابلية التوصيل، لكنك على الأرجح ستواجه مشاكل بريدية معقدة وغير شائعة.

شكرًا لكم جميعًا على المساعدة.
أعتقد أن المشكلة كانت في خادم البريد الإلكتروني الذي قدمته GoDaddy. لم أستطع أبدًا تحديد سبب المشكلة. يبدو أن GoDaddy تواجه العديد من المشكلات مع الحسابات المشتركة. في النهاية، قررت أن الأمر لا يستحق المتاعب، فبحثت عن موفري بريد إلكتروني موصى بهم واختتار mailjet.com. قمت بإنشاء حساب مجاني على mailjet وعدلت ملف app.yml وفقًا لذلك. تطلّب الأمر بعض إعدادات mailjet الإضافية. حاولت مرة أخرى اختبار البريد الإلكتروني في Discourse: نجح الأمر. مجتمع Discourse الخاص بي صغير، لذا لا ينبغي أن تكون هناك مشكلة مع حدود البريد الإلكتروني المجاني من mailjet. يبدو كل شيء جيدًا في هذه المرحلة، لكنني أستطيع أن أرى أن هناك الكثير من الإعدادات التي تنتظرنا بعد.
شكرًا مرة أخرى…