Comment configurer SMTP pour utiliser localhost ?

J’ai configuré postfix pour qu’il fonctionne sur l’hôte Docker local, de sorte qu’un test via swaks --to destination@domain.tld --from admin@hostdomain.tld --server localhost -tls aboutisse comme prévu. Il utilise le port 25 et envoie l’e-mail sans aucun problème.

Je me pose donc la question suivante : comment configurer correctement les paramètres SMTP dans app.yml pour utiliser localhost pour la livraison des e-mails ?

Définissez l’adresse SMTP sur 127.0.0.1

Pour être clair, voulez-vous dire que seul l’adresse IP doit être configurée et les autres champs commentés ? Par exemple :

  DISCOURSE_SMTP_ADDRESS: 127.0.0.1
  #DISCOURSE_SMTP_PORT: 25
  #DISCOURSE_SMTP_USER_NAME: 
  #DISCOURSE_SMTP_PASSWORD:
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optionnel, par défaut true)

Si l’application se trouve sur le même hôte Docker mais dans un conteneur Docker différent, vous devez spécifier l’adresse IP de l’hôte.

127.0.0.1 ne fonctionnera pas car il s’agit de l’adresse de bouclage. Chaque conteneur interprète 127.0.0.1 comme étant lui-même.

Cela ne se trouve pas dans un conteneur Docker distinct, mais simplement sur l’hôte Docker lui-même.

Il faudra donc toujours l’adresse IP de l’hôte.

Donc, dans un tel cas, devez-vous utiliser l’adresse IP publique ou existe-t-il un schéma d’adressage IP spécifique utilisé par Docker ? Par exemple, sur l’hôte, je vois docker0 avec l’adresse 172.17.0.1, et dans le conteneur (./launcher enter app ; apt-get install ifconfig), l’interface eth0 a l’adresse 172.17.0.2. Je soupçonne que je devrais utiliser l’adresse 172.17.0.1 de l’hôte depuis le conteneur Discourse, mais je ne voudrais pas que cela change d’une manière ou d’une autre à un moment donné.

Pour documentation, ce qui suit a suffi (toutes les autres lignes SMTP étant commentées) pour envoyer vers le serveur SMTP de l’hôte Docker si aucune authentification n’est requise :

  DISCOURSE_SMTP_ADDRESS: 172.17.0.1
  DISCOURSE_SMTP_PORT: 25