ما هي الإعدادات الصحيحة التي يجب تمريرها إلى ./discourse-setup للاتصال بخادم SMTP على localhost:25 بدون مصادقة؟
أنا مندهش جدًا من أن هذا غير مدعوم افتراضيًا (OOTB)؛ فهو الإعداد الافتراضي في معظم تثبيتات لينكس.
يعمل خادمي محليًا باستخدام Postfix؛ ولا يمكن الوصول إليه من الإنترنت. يعمل بشكل جيد، على سبيل المثال، عند تشغيل أمر mail. عثرت على بعض الأدلة غير الرسمية على الإنترنت تقترح تغييرات في /var/discourse/containers/app.yml، وأخيرًا تمكنت من تثبيته وتشغيله باستخدام الإعدادات التالية:
DISCOURSE_SMTP_ADDRESS: localhost
DISCOURSE_SMTP_PORT: 25
DISCOURSE_SMTP_USER_NAME: discourse@opensouceecology.org
DISCOURSE_SMTP_PASSWORD: "none"
DISCOURSE_SMTP_AUTHENTICATION: none
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
DISCOURSE_SMTP_ENABLE_START_TLS: false
لاحظ أنه إذا حذفت متغيري DISCOURSE_SMTP_USER_NAME أو DISCOURSE_SMTP_PASSWORD، فإن برنامج التثبيت يصيح قائلاً إنهما مطلوبان (هل هذا خطأ؟).
والآن، عند النقر على زر “إعادة إرسال بريد التفعيل” في واجهة المستخدم الرسومية لـ Discourse، يظهر هذا الإدخال في ملف السجل (/var/discourse/shared/standalone/log/rails/production.log):
Started PUT "/finish-installation/resend-email" for 127.0.0.1 at 2019-11-07 13:15:31 +0000
Processing by FinishInstallationController#resend_email as HTML
Parameters: {"authenticity_token"=>"SzQCvRWiqdXsBKzOjIB0X7KkvXro7Od6SdP8Qa8vvrskPeNYZNos5ORHJfyDUrHiKShZR/txM6NHuqHHCQCR1w=="}
Rendering finish_installation/resend_email.html.erb within layouts/finish_installation
Rendered finish_installation/resend_email.html.erb within layouts/finish_installation (Duration: 0.7ms | Allocations: 103)
Rendered layouts/_head.html.erb (Duration: 0.5ms | Allocations: 103)
Completed 200 OK in 98ms (Views: 3.0ms | ActiveRecord: 0.0ms | Allocations: 4763)
Rendering layouts/email_template.html.erb
Rendered layouts/email_template.html.erb (Duration: 0.5ms | Allocations: 141)
Delivered mail c4ca58ca-345e-46c4-81bc-6d0eac7afa04@discourse.opensourceecology.org (11.3ms)
Job exception: wrong authentication type none
…لكن نوع المصادقة الخاص بي هو بالفعل ‘none’. ما هو الإعداد الصحيح لعدم وجود مصادقة؟
تحرير: أيضًا، هل يمكن لأحد أن يرسل لي رابطًا للوثيقة التي تحدد جميع متغيرات “DISCOURSE_SMTP_*” الممكنة وجميع قيمها الصالحة؟
تحرير 2: يبدو أن هذا الأمر أكثر صعوبة بكثير مما ينبغي. أعتقد أن ‘localhost’ يتم حلها داخل حاوية Docker إلى حاوية Docker الخاصة بـ Discourse نفسها (app) – وليس المضيف الذي يشغل خادم SMTP الخاص بـ Postfix. هذا الأمر معقد أكثر بسبب إعدادات mynetworks و iptables الخاصة بـ Postfix (والتي تم تكوينها بواسطة برنامج discourse-setup أو البرامج الفرعية التابعة له). ما هو الإعداد الصحيح هنا لجعل Discourse يستخدم خادم SMTP الذي أريد تشغيل Discourse عليه، دون أي مصادقة SMTP؟