خطأ في مصادقة SMTP من Discourse-Doctor في تثبيت جديد

لقد أجريت للتو تثبيتًا جديدًا لـ Discourse في Digital Ocean Droplet، وقد سار الأمر بشكل جيد جدًا، لكنني لم أتلق البريد الإلكتروني للإشعار عند محاولة تسجيل حساب المسؤول الخاص بي.

لقد مررت بـ استكشاف الأخطاء وإصلاحها ولم أتمكن من العثور على الحل حتى وصلت إلى أحد التعليقات التي قالت:

علامات الاقتباس المزدوجة تعمل. إذا كان لديك أحرف معينة (مثل الشرطة المائلة العكسية؟) في كلمة المرور الخاصة بك، فستحتاج إلى تحرير الملف باستخدام محرر مثل nano.

هذا، والملاحظة في /containers/app.yml حول “#” الذي يسبب مشاكل جعلتني أتساءل عن كلمة المرور الخاصة بي. لقد احتوت على كل من الشرطة السفلية والمد.

لقد أنشأت حساب بريد إلكتروني جديدًا يحتوي فقط على أحرف أبجدية رقمية لكلمة المرور، وهذا أصلح المشكلة. يعمل البريد الإلكتروني الآن في ./discourse-doctor، وتمكنت من إعادة إرسال واستقبال البريد الإلكتروني للإشعار.

اعتقدت أنه ستكون فكرة جيدة مشاركة هذا في حال واجه أي شخص آخر صعوبة في SMTPAuthenticationError دون سبب واضح. جرب حسابًا بدون أي أحرف خاصة في كلمة المرور. :grinning:

3 إعجابات

لدي كلمة مرور تحتوي على - فيها، ولم أواجه المشاكل التي واجهتها.

# منطقي لأنه يلغي التعليق عن الكود في ملفات yml، من أي مكان في السطر: تبدأ التعليقات بعلامة الرقم (#)، ويمكن أن تبدأ في أي مكان في السطر، وتستمر حتى نهاية السطر (YAML - Wikipedia).

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

@MarcP:

مثير للاهتمام. لو طُلب مني التخمين، بما أن كلمة مرور SMTP في ملف app.yml موجودة بين علامتي اقتباس مزدوجتين، كنت سأخمن أن أي حرف ما عدا علامة الاقتباس المزدوجة سيكون مقبولاً. لقد جعلتني أتساءل عما إذا كان الأمر يتعلق بشيء آخر فعلته.

سأقوم ببعض الاختبارات الإضافية وسأعود بالنتائج.

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

هذا ما أحصل عليه لكوني في عجلة من أمري.

لقد أعدت تعيين DISCOURSE_SMTP_USER_NAME و DISCOURSE_SMTP_PASSWORD إلى الحساب الأصلي الذي أعطاني خطأ مصادقة SMTP، وبعد تدمير التطبيق، عندما قمت بتشغيل ./launcher start app، حصلت على الخطأ التالي:

found unknown escape character while parsing a quoted scalar at line 67 column 28 -e LANG=en_US.UTF-8
YAML syntax error. Please check your containers/*.yml config files.

بالتأكيد، كان هناك \ في كلمة المرور لم ألاحظها بالأمس.

للتأكيد، استخدمت عنوان البريد الإلكتروني للحساب الجديد، وغيرت كلمة مرور الحساب إلى كلمة مرور الحساب الفاشل بدون \، وحفظتها في app.yml، وأعدت تشغيل التطبيق دون تكرار رسالة الخطأ. نجح اختبار البريد الإلكتروني باستخدام discourse-doctor. بعد ذلك، أنشأت كلمة مرور جديدة بمجموعة من الأحرف الخاصة ولكن ليس علامة # أو \ وكررت الاختبار. لقد نجح أيضًا.

باختصار، يبدو أن الأحرف الخاصة مقبولة في حقل DISCOURSE_SMTP_PASSWORD في app.yml، باستثناء علامة المربع #، والشرطة المائلة العكسية \، وربما علامة الاقتباس المزدوجة \"؟

إعجابَين (2)

:+1: يعجبني، ممتاز :sunglasses: