So richten Sie die SMTP-Konfiguration für die Verwendung von localhost ein?

Ich habe postfix so konfiguriert, dass es auf dem lokalen Docker-Host funktioniert, sodass ein Test mit swaks --to destination@domain.tld --from admin@hostdomain.tld --server localhost -tls wie erwartet funktioniert. Er nutzt Port 25 und versendet die E-Mail problemlos.

Daraus ergibt sich die Frage: Wie stelle ich die SMTP-Konfigurationseinstellungen in app.yml korrekt ein, um localhost für den E-Mail-Versand zu nutzen?

SMTP-Adresse auf 127.0.0.1 setzen

Um sicherzugehen: Meinen Sie, dass nur die IP-Konfiguration erforderlich ist und die anderen Felder auskommentiert werden sollten? Zum Beispiel:

  DISCOURSE_SMTP_ADDRESS: 127.0.0.1
  #DISCOURSE_SMTP_PORT: 25
  #DISCOURSE_SMTP_USER_NAME: 
  #DISCOURSE_SMTP_PASSWORD:
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optional, Standard: true)

Wenn es sich auf demselben Docker-Host, aber in einem anderen Docker-Container befindet, müssen Sie die Host-IP angeben.

127.0.0.1 funktioniert nicht, da dies die Loopback-Adresse ist. Jeder Container sieht 127.0.0.1 als sich selbst.

Dies befindet sich nicht in einem separaten Docker-Container, sondern direkt auf dem Docker-Host selbst.

Dann wird trotzdem noch die IP-Adresse des Hosts benötigt.

In einem solchen Fall müssen Sie also die öffentliche IP-Adresse verwenden, oder gibt es ein spezielles IP-Schema, das Docker nutzt? Zum Beispiel sehe ich innerhalb des Hosts docker0 mit 172.17.0.1 und innerhalb des Containers (./launcher enter app; apt-get install ifconfig) ist eth0 mit 172.17.0.2 konfiguriert. Ich vermute, dass ich die 172.17.0.1 des Hosts innerhalb des Discourse-Containers verwenden sollte, aber ich möchte nicht, dass sich diese Adresse irgendwann einmal ändert.

Nur zur Dokumentation: Folgendes reichte aus (alle anderen SMTP-Zeilen auskommentiert), um an den SMTP-Server des Docker-Hosts zu liefern, falls keine Authentifizierung erforderlich ist:

  DISCOURSE_SMTP_ADDRESS: 172.17.0.1
  DISCOURSE_SMTP_PORT: 25