Quelles sont les bonnes paramètres à passer à ./discourse-setup pour se connecter à un serveur SMTP sur localhost:25 sans authentification ?
Je suis très surpris que cela ne soit pas pris en charge par défaut (OOTB) ; c’est la configuration par défaut sur la plupart des installations Linux.
Mon serveur exécute Postfix localement ; il n’est pas accessible depuis Internet. Cela fonctionne parfaitement, par exemple, lors de l’exécution de la commande mail. J’ai trouvé quelques guides non officiels sur Internet suggérant des modifications dans /var/discourse/containers/app.yml, et j’ai finalement réussi à l’installer et à le démarrer avec les paramètres suivants :
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
Notez que si j’omet les variables DISCOURSE_SMTP_USER_NAME ou DISCOURSE_SMTP_PASSWORD, votre script d’installation me réprimande en indiquant qu’elles sont requises (bug ?).
Et maintenant, lorsque je clique sur le bouton « Renvoyer l’email d’activation » dans l’interface web de Discourse, cette entrée apparaît dans le fichier de journal (/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
…Mais mon type d’authentification est « none ». Quelle devrait être la bonne configuration pour aucune authentification ?
EDIT : pouvez-vous également me fournir un lien vers la documentation définissant toutes les variables possibles « DISCOURSE_SMTP_* » et toutes leurs valeurs valides ?
EDIT2 : cela s’avère beaucoup plus difficile que cela ne devrait l’être. Je pense que « localhost » se résout à l’intérieur du conteneur Docker au conteneur Docker Discourse lui-même (app) — et non à l’hôte Docker exécutant mon serveur SMTP Postfix. Cela est encore compliqué par mynetworks de Postfix et iptables (qui ont été configurés par le script discourse-setup ou ses scripts enfants). Quelle est la bonne configuration ici pour simplement que Discourse utilise le serveur SMTP sur lequel je souhaite exécuter Discourse, sans authentification SMTP ?