Какие правильные настройки нужно передать в ./discourse-setup для подключения к SMTP-серверу на localhost:25 без аутентификации?
Меня очень удивляет, что это не поддерживается из коробки (OOTB); это конфигурация по умолчанию в большинстве установок Linux.
Мой сервер локально запускает 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
Обратите внимание, что если я omit переменные 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 разрешается в сам контейнер Discourse (app), а не в хост Docker, на котором запущен мой SMTP-сервер postfix. Это усложняется ещё и настройками mynetworks и iptables postfix (которые были настроены скриптом discourse-setup или его дочерними скриптами). Какое правильное конфигурационное решение здесь, чтобы просто заставить Discourse использовать SMTP-сервер, на котором я хочу запустить Discourse, без аутентификации SMTP?