¿Cuáles son la configuración correcta que se debe pasar a ./discourse-setup para conectarse a un servidor SMTP en localhost:25 sin autenticación?
Me sorprende mucho que esto no sea compatible de forma nativa (OOTB); es la configuración predeterminada en la mayoría de las instalaciones de Linux.
Mi servidor ejecuta Postfix localmente; no es accesible desde Internet. Funciona perfectamente, por ejemplo, al ejecutar el comando mail. Encontré algunas guías no oficiales en Internet que sugieren cambios en /var/discourse/containers/app.yml, y finalmente logré que se instalara e iniciara con la siguiente configuración:
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
Tenga en cuenta que si omito las variables DISCOURSE_SMTP_USER_NAME o DISCOURSE_SMTP_PASSWORD, el script de instalación me reclama indicando que son obligatorias (¿es un error?).
Y ahora, cuando hago clic en el botón “Reenviar correo de activación” en la interfaz web de Discourse, aparece esta entrada en el archivo de registro (/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
…Pero mi tipo de autenticación es ‘none’. ¿Cuál debería ser la configuración correcta para indicar que no hay autenticación?
EDIT: Además, ¿alguien puede enlazar la documentación que define todas las posibles variables “DISCOURSE_SMTP_*” y todos sus valores válidos?
EDIT2: Esto está resultando ser mucho más difícil de lo que debería. Creo que ‘localhost’ se está resolviendo dentro del contenedor Docker al propio contenedor Docker de Discourse (app), y no al host de Docker que ejecuta mi servidor SMTP Postfix. Esto se complica aún más por mynetworks de Postfix y iptables (que fueron configurados por el script discourse-setup o sus scripts hijos). ¿Cuál es la configuración correcta aquí para que Discourse simplemente utilice el servidor SMTP en el que quiero ejecutar Discourse, sin autenticación SMTP?