Quais são as configurações corretas passadas para ./discourse-setup para conectar a um servidor SMTP em localhost:25 sem autenticação?
Fico muito surpreso que isso não seja suportado OOTB (fora da caixa); é a configuração padrão na maioria das instalações Linux.
Meu servidor executa o Postfix localmente; ele não é acessível pela Internet. Funciona bem, por exemplo, ao executar o comando mail. Encontrei alguns guias não oficiais na Internet sugerindo alterações em /var/discourse/containers/app.yml, e finalmente consegui instalá-lo e iniciá-lo com as seguintes configurações:
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
Observe que, se eu omitir as variáveis DISCOURSE_SMTP_USER_NAME ou DISCOURSE_SMTP_PASSWORD, o script de instalação reclama dizendo que elas são obrigatórias (bug?).
Agora, quando clico no botão “Reenviar E-mail de Ativação” na interface web do Discourse, esta entrada aparece no arquivo de log (/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
…Mas meu tipo de autenticação é ‘none’. Qual deve ser a configuração correta para nenhuma autenticação?
EDIT: Além disso, alguém pode me enviar o link para a documentação que define todas as possíveis variáveis “DISCOURSE_SMTP_*” e todos os seus valores válidos?
EDIT2: Isso está se provando muito mais difícil do que deveria. Acredito que ‘localhost’ esteja sendo resolvido dentro do contêiner Docker para o próprio contêiner Docker do Discourse (app) — e não para o host Docker que está executando meu servidor SMTP Postfix. Isso é ainda mais complicado pelas configurações de mynetworks do Postfix e iptables (que foram configurados pelo script discourse-setup ou seus scripts filhos). Qual é a configuração correta aqui para fazer com que o Discourse use apenas o servidor SMTP no qual pretendo executar o Discourse, sem autenticação SMTP?