مشاكل خادم Outlook (SMTPSyntaxError)

أهلاً بالجميع!

لقد كنت أعمل وأحاول تشغيل نسخة مستضافة ذاتيًا من Discourse على خادم CentOS. في معظم الأحيان، تبدو الأمور جيدة، حيث قمت بتكوين اسم المضيف وأشياء أخرى، ويتم تشغيل حاوية Docker ويمكنني الوصول إلى مثيل Discourse الخاص بي داخل شبكتي المحلية على http://discourse.foo.co.

ومع ذلك، هذا هو المكان الذي أواجه فيه بعض الصعوبات حيث أنني غير قادر على إنشاء المستخدم الأول الخاص بي لأن إعدادات SMTP التي أستخدمها لا تعمل ويبدو أنها ترمي باستمرار خطأ Net::SMTPSyntaxError، بغض النظر عما أحاول.

إعدادات SMTP الخاصة بي في app.yml هي:

## TODO: قائمة بالبريد الإلكتروني المفصولة بفواصل والتي سيتم جعلها مسؤولة ومطورة
## عند التسجيل الأولي، على سبيل المثال 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'brian@foo.co'

  ## TODO: خادم بريد SMTP المستخدم للتحقق من الحسابات الجديدة وإرسال الإشعارات
  # عنوان SMTP واسم المستخدم وكلمة المرور مطلوبة
  # تحذير: يمكن أن تسبب الأحرف '#' في كلمة مرور SMTP مشاكل!
  DISCOURSE_SMTP_ADDRESS: foo.mail.protection.outlook.com
  DISCOURSE_SMTP_PORT: 25
  DISCOURSE_SMTP_USER_NAME: user@foo.co
  DISCOURSE_SMTP_PASSWORD: كلمة مرور تحتوي على بعض الأحرف الخاصة '@' و '/'. لا تحتوي كلمة المرور على الحرف الخاص '#'.
  DISCOURSE_SMTP_AUTHENTICATION: login
  DISCOURSE_SMTP_ENABLE_START_TLS: true         # (اختياري، الافتراضي صحيح)
  #DISCOURSE_SMTP_DOMAIN: discourse.example.com    # (مطلوب من قبل بعض مقدمي الخدمة)
  DISCOURSE_NOTIFICATION_EMAIL: 'community@foo.co'    # (العنوان الذي يتم إرسال الإشعارات منه)

لقد بحثت في كل مكان في منتديات Discourse ولكن البحث عن ‘SMTPSyntaxError’ لا يعطيني أي نتائج. على Google، لا يبدو أنني أجد حلولًا تساعد أيضًا.

نفس إعدادات SMTP، عند إدخالها في خوادم Bamboo و Jira لدينا تعمل بشكل جيد تمامًا وقادرة على إرسال رسائل البريد الإلكتروني بشكل جيد.

لقد استخدمت أيضًا أدوات اختبار عبر الإنترنت مثل https://dnschecker.org/smtp-test-tool.php وهي قادرة على إرسال رسائل بريد إلكتروني تجريبية بشكل جيد تمامًا. على سبيل المثال، إدخال نفس التفاصيل الموضحة أعلاه يرسل بريدًا إلكترونيًا تجريبيًا بالمحتويات التالية بنجاح إلى صندوق الوارد الخاص بي.

SMTP host: foo.mail.protection.outlook.com.
Port: 25
Use Explicit TLS encryption: No
Use Implicit TLS/SSL encryption:
Use Authentication: No
Email from: test@foo.co
Email to: brian@foo.co

أي مساعدة ستكون موضع تقدير، شكرًا،
برايان

أنصح بتفريغ حركة المرور المتجهة من الحاوية الخاصة بك إلى خادم SMTP حتى تتمكن من رؤية ما يحدث بالضبط على الشبكة.

يمكنك تشغيل بريد إلكتروني عن طريق تشغيل الأمر التالي داخل الحاوية:

rake 'emails:test[your.email.address@your.domain]'

ويجب أن ترى شيئًا مثل:

root@michael-discourse-docker-app:/var/www/discourse# rake 'emails:test[michael@contoso.com]'
Testing sending to michael@contoso.com using mail.contoso.net:587, username:michael with plain auth.
SMTP server connection successful.
Sending to michael@contoso.com. . .
Mail accepted by SMTP server.
Message-ID: e7adb5c4-f404-4800-b070-631b06ff5335@mx1.contoso.com

والذي قد يعطيك أيضًا بعض الأدلة.

3 إعجابات

مرحباً مايكل،

شكراً لاقتراحك، لكن يبدو أنه يعطي نفس الخطأ الذي يظهر عند استخدام ./discourse-doctor.

root@discourse-app:/var/www/discourse# rake 'emails:test[brian.lui@foo.co]'
Testing sending to brian.lui@foo.co using foo.mail.protection.outlook.com:25, username:user@foo.co with login auth.
======================================== ERROR ========================================
                                    UNEXPECTED ERROR

Net::SMTPSyntaxError

====================================== SOLUTION =======================================
This is not a common error. No recommended solution exists!

Please report the exact error message above to https://meta.discourse.org/
(And a solution, if you find one!)
=======================================================================================

برايان

عند تشغيل الأمر داخل الحاوية (كما رأيت في دليل استكشاف أخطاء SMTP في Discourse):

openssl s_client -connect foo.mail.protection.outlook.com:25 -starttls smtp

كل شيء يبدو طبيعيًا ولكن بدلاً من 250 DSN، أرى 250 SMTPUTF8. ثم عندما أحاول إدخال الأمر EHLO "i am here"، لا يحدث شيء وينتهي الوقت مني في النهاية:

451 4.7.0 Timeout waiting for client input [YT1PEPF00001E8C.CANPRD01.PROD.OUTLOOK.COM 2024-02-23T17:51:16.770Z 08DC342D15BDD245]\nread:errno=0

أحصل على نفس النتيجة.

ليس لدي أي اقتراحات أخرى سوى أن هذه تبدو مشكلة في خادم البريد نفسه بدلاً من Discourse.

لا أتوقع استخدام هذا الخادم لإرسال البريد. هل أنت متأكد من أن هذا صحيح؟

أرى أن أشخاصًا آخرين استخدموا خادم إرسال مختلف وحققوا ذلك بنجاح:

إعجابَين (2)