أواجه مشكلة مماثلة. بالأمس قمت بتصحيح إرسال البريد الإلكتروني على مثيل Discourse جديد لمدة ثلاث ساعات تقريبًا، دون أي نجاح. أحاول إرسال البريد الإلكتروني عبر Fastmail باستخدام STARTTLS على المنفذ 587. الخدمات الأخرى تعمل بنفس بيانات الاعتماد.
لا أحصل على استجابة الخطأ “يجب إصدار أمر STARTTLS أولاً” بهذه الإعدادات:
DISCOURSE_SMTP_ADDRESS: 'smtp.fastmail.com'
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: 'myuser@fastmail.fm'
DISCOURSE_SMTP_PASSWORD: 'mypass'
DISCOURSE_SMTP_ENABLE_START_TLS: true
… متبوعًا بـ ./launcher rebuild app، عندما أقوم بتشغيل ./discourse-doctor وأرسل بريدًا إلكترونيًا، أحصل على خطأ 500 5.5.1 Invalid command كرد.
اليوم بدأت في تتبع الاتصال باستخدام tcpdump، ولاحظت أن Discourse لا يبدو أنه يستخدم STARTTLS بالفعل. إليك ما يحدث عند إرسال بريد إلكتروني لاستعادة كلمة المرور من Grafana:
< 220 smtp.fastmail.com ESMTP ready
> EHLO 9b5ba1569f77
< 250-smtp.fastmail.com
< 250-PIPELINING
< 250-SIZE 71000000
< 250-ENHANCEDSTATUSCODES
< 250-8BITMIME
< 250 STARTTLS
> STARTTLS
< ...[encrypted]
ولكن مع Discourse، يحدث هذا:
< 220 smtp.fastmail.com ESMTP ready
> EHLO localhost
< 250-smtp.fastmail.com
< 250-PIPELINING
< 250-SIZE 71000000
< 250-ENHANCEDSTATUSCODES
< 250-8BITMIME
< 250 STARTTLS
> AUTH PLAIN [redacted]
< 500 5.5.1 Invalid command
لذا، يبدو أن Discourse يرسل بيانات الاعتماد الخاصة بي عبر الإنترنت كنص عادي، على الرغم من تمكين STARTTLS في الإعدادات؟ هل هذا خطأ؟
لاحظت أيضًا أنه عند تشغيل ./discourse-doctor، يلخص ملخص “YML SETTINGS” في الأعلى العناصر التالية:
==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=forum.[redacted]
SMTP_ADDRESS=smtp.fastmail.com
DEVELOPER_EMAILS=sysadmin@[redacted]
SMTP_PASSWORD=[redacted]
SMTP_PORT=587
SMTP_USER_NAME=[redacted]@fastmail.fm
LETSENCRYPT_ACCOUNT_EMAIL=
ومع ذلك، لا يوجد ذكر لـ DISCOURSE_SMTP_ENABLE_START_TLS، على الرغم من أنه تم تعيينه في app.yml. لست متأكدًا مما إذا كانت هذه المشكلة مرتبطة.