إذًا.. لقد قضيتُ حوالي 6 ساعات في هذا الأمر، وفكرتُ أخيرًا في طلب القليل من المساعدة.
لقد قمت بإعداد Discourse على خادم، وأطلقت الحاوية، وحاولت إنشاء حساب أول مدير.
المشكلة: لا أستلم بريد التسجيل.
ما قمتُ به:
- تأكدتُ من أن بروتوكول SMTP مُهيأ بشكل صحيح في الإعدادات، واستخدمتُ أداة اختبار عبر الإنترنت SMTP Test Tool للتأكد من عمل هذه الإعدادات، وقد نجح ذلك. (باستخدام ذلك الموقع)
DISCOURSE_SMTP_ADDRESS: MY_SMTP_HOST
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: MY_SMTP_USERNAME
DISCOURSE_SMTP_PASSWORD: MY_SMTP_PASSWORD
DISCOURSE_SMTP_ENABLE_START_TLS: true # (اختياري، الافتراضي true)
-
تأكدتُ من إعداد بريد إلكتروني واحد فقط للتكوين الأولي لحسابات المديرين.
-
تحققتُ من أن شهادة SSL تعمل بالفعل (وهي كذلك!).
-
حاولت إعادة التثبيت من جديد مرتين لنظام Ubuntu واتباع الدليل المنشور عبر الإنترنت للإعداد.
-
تحققتُ من عدم وجود جدران حماية للشبكة تمنع أي اتصال خارجي أو داخلي.
-
تمكنتُ بنجاح من الاتصال عبر بروتوكول Telnet بخادم SMTP الخاص بي من الخادم الذي يستضيف Discourse.
-
لدي الأمر الإضافي:
- exec: rails r "SiteSetting.notification_email='noreply@MY_WEB_SITE'"
مُعد بشكل صحيح في نهاية ملف app.yml.
لا أعرف ما الذي يمكنني تجربته بعد الآن، شكرًا لك.
إذا قمت بتشغيل discourse-doctor، فهل يعطيك أي خطأ واضح؟
cd /var/discourse
./discourse-doctor
أهلاً، نعم، نسيت أن أذكر ذلك. لحظة، دعني أعيد تشغيله لأحصل على المخرجات التي لاحظتها.
==================== اختبار البريد ====================
لإجراء اختبار قوي، احصل على عنوان من http://www.mail-tester.com/
أو أرسل ببساطة رسالة اختبار إلى نفسك.
عنوان البريد الإلكتروني لاختبار البريد؟ ('n' لتخطي) [MY_EMAIL]:
جاري إرسال البريد إلى MY_EMAIL...
جاري اختبار الإرسال إلى MY_EMAIL باستخدام smtp.MY_SMTP:587.
تم الاتصال بخادم SMTP بنجاح.
جاري الإرسال إلى MY_EMAIL...
فشل إرسال البريد.
استبدال: SMTP_PASSWORD
استبدال: LETSENCRYPT_ACCOUNT_EMAIL
استبدال: DEVELOPER_EMAILS
استبدال: DISCOURSE_DB_PASSWORD
استبدال: جاري إرسال البريد إلى
==================== تم! ====================
هل ترغب في تقديم نسخة متاحة للعامة من هذا الملف؟ (Y/n)
ألاحظ لسبب ما “فشل إرسال البريد.” على الرغم من أن “اتصال خادم SMTP كان ناجحاً”
إذا كانت كلمة المرور الخاصة بك تحتوي على بعض الأحرف الخاصة، هل جربت وضعها بين علامتي اقتباس؟
كان محاطًا بعلامات اقتباس سابقًا، لكنني كنت أتبع دليلًا على الإنترنت لم يكن يحتوي عليه بين علامات اقتباس، وسأحاول مرة أخرى باستخدام علامات اقتباس مزدوجة ".
أقوم بإعادة البناء الآن.
حسنًا، عاد للعمل. لحظة واحدة.
نفس الخطأ:
==================== اختبار البريد الإلكتروني ====================
لإجراء اختبار قوي، احصل على عنوان من http://www.mail-tester.com/
أو أرسل ببساطة رسالة تجريبية إلى نفسك.
عنوان البريد الإلكتروني لاختبار البريد؟ ('n' لتخطي) [MY_EMAIL]: MY_EMAIL
جاري إرسال البريد إلى MY_EMAIL...
اختبار الإرسال إلى MY_EMAIL باستخدام MY_SMTP_SERVER:587.
تم الاتصال بخادم SMTP بنجاح.
جاري الإرسال إلى MY_EMAIL...
فشل إرسال البريد.
استبدال: SMTP_PASSWORD
استبدال: LETSENCRYPT_ACCOUNT_EMAIL
استبدال: DEVELOPER_EMAILS
استبدال: DISCOURSE_DB_PASSWORD
استبدال: إرسال البريد إلى
==================== تم! ====================
هل ترغب في تقديم نسخة متاحة للعامة من هذا الملف؟ (Y/n)n
لم يتم إنشاء سجل متاح للعامة.
يمكنك فحص مخرجات هذا السكربت باستخدام الأمر:
LESS=-Ri less /tmp/discourse-debug.txt
لكن قبل ذلك، تأكد من أنك تعرف الأوامر الثلاثة الأولى أدناه!!!
الأوامر التي يجب معرفتها عند عرض الملف بالأمر المذكور أعلاه (المسمى 'less'):
q -- الخروج
/error<ENTER> -- البحث عن كلمة 'error'
n -- البحث عن التكرار التالي
g -- الانتقال إلى بداية الملف
f -- الانتقال إلى الصفحة التالية
b -- الرجوع إلى الصفحة السابقة
G -- الانتقال إلى نهاية الملف
جربته بكلمة مرور عادية بدون أحرف، وجربته مع علامات الاقتباس وبدونها، لكن النتيجة لم تتغير.
فشل إرسال البريد.
أقترح عليك تجربة إعداد Mailgun.
سأجرب ذلك الآن. شكرًا لك.
قبل تجربة ذلك، سأجرب الرابط التالي Discourse app.yml doesn't like email password contain "#" - #15 by elijah عن طريق وضع علامات اقتباس مزدوجة حول كلمة المرور، ثم أخيرًا تعيين كلمة مرور لا تحتوي على أي أحرف خاصة.
إذا لم ينجح ذلك، سأقوم بتكوين Mailgun (كحل أخير لأن خادم بريدي الحالي يحتوي على العديد من الرسائل الإلكترونية).
تقدّم! ظهرت رسالة خطأ جديدة بعد وضع كلمة المرور بين علامتي اقتباس مزدوجتين هكذا "'mypass'"
==================== اختبار البريد الإلكتروني ====================
لإجراء اختبار شامل، احصل على عنوان من http://www.mail-tester.com/
أو أرسل ببساطة رسالة تجريبية إلى نفسك.
عنوان البريد الإلكتروني لاختبار البريد؟ (اكتب 'n' لتخطي) [sender_email]: my_email
جاري إرسال البريد إلى my_email. . .
جاري اختبار الإرسال إلى my_email باستخدام my_smtp:587.
======================================== خطأ ========================================
خطأ غير متوقع
تم طلب مصادقة SMTP لكن العبارة السرية مفقودة
====================================== الحل =======================================
هذا ليس خطأ شائعًا. لا يوجد حل موصى به!
يرجى الإبلاغ عن رسالة الخطأ الدقيقة أعلاه إلى https://meta.discourse.org/
(وأضف حلاً إذا وجدته!)
=======================================================================================
جاري استبدال: SMTP_PASSWORD
جاري استبدال: LETSENCRYPT_ACCOUNT_EMAIL
جاري استبدال: DEVELOPER_EMAILS
جاري استبدال: DISCOURSE_DB_PASSWORD
جاري استبدال: Sending mail to
==================== تم! ====================
هل ترغب في تقديم نسخة متاحة للعامة من هذا الملف؟ (Y/n)
يبدو أن إرسال البريد الإلكتروني يدويًا باستخدام telnet يعمل، لكنه لا يعمل عند استخدام رسائل Discourse، مما يشير إلى وجود مشكلة ما.
في production.log، وجدت هذا، هل يمكن أن يكون هذا هو السبب؟
Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL) subscribe failed, reconnecting in 1 second. Call stack ["/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.3/lib/redis/client.rb:362$
Job exception: Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL)
Job exception: Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL)
Job exception: Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL)
Job exception: Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL)
Job exception: Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL)
Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL) subscribe failed, reconnecting in 1 second. Call stack ["/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.3/lib/redis/client.rb:362$
Job exception: Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL)
Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL) subscribe failed, reconnecting in 1 second. Call stack ["/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.3/lib/redis/client.rb:362$
Job exception: Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL)
أظهرت المزيد من البحث عن Job exception: SSL_connect returned=1 errno=0 state=error: dh key too small، مما يشير إلى وجود مشاكل في SSL الخاص بخادم البريد. يبدو أن المشكلة من Mailgun.