E-Mail-Versand im Docker-Container funktioniert nicht? So löst du das Problem

von Tobias Kraft
Was tun, wenn der E-Mail-Versand im Container nicht funktioniert?

Viele Enterprise-Anwendungen erfordern eine Verbindung zu einem Mail-Server, um Benutzer per E-Mail zu benachrichtigen. E-Mails können vielfältige Informationen enthalten, wie das Zurücksetzen von Benutzerpasswörtern, die Auflistung neuer Dokumente in einem Kunden-Service-Portal oder Hinweise zu fehlgeschlagenen Build-Pipelines.

Zum Versenden von E-Mails nutzen Applikationen in der Regel einen externen Mail-Server, dessen Verbindung entsprechend konfiguriert wird. Neben der Server-Adresse sind oftmals Authentifizierungs-Daten, Protokoll und Verschlüsselung anzugeben. Die Konfiguration erfolgt in der Regel in den Administrations-Dialogen der Applikation oder über Konfigurations-Dateien. Für die anschließende Verifizierung der Mail-Funktion bieten viele Applikationen den Versand einer Testmail an.

Das nachfolgende Beispiel zeigt exemplarisch die Einstellungen in Keycloak.

Warum schlägt der E-Mail-Versand im Container fehl?

Wird die Applikation in einem Docker-Container betrieben, gestaltet sich die Konfiguration analog. Nach unserer Erfahrung gibt es abhängig von den Docker-Containern, die die Applikation betreiben, öfters Probleme beim Verbinden mit einem Mail-Server. Beim Versenden der Testmail werden in den Log-Dateien zwar entsprechende Fehlermeldungen angezeigt, aber oftmals gelingt auch nach Anpassung der Konfiguration eine Verbindung zum Mail-Server nicht. Dagegen funktioniert genau die gleiche Konfiguration in einem anderen Docker-Container problemlos.

Neben dem Netzwerk und Faktoren wie der Firewall kann der Docker-Container ein möglicher Verursacher des Verbindungsproblems sein. Die Anbieter der Applikationen stellen in vielen Fällen direkt die benötigten Docker-Container zur Nutzung bereit.

In unserem Fall trat das Verbindungsproblem mit dem Mail-Server bei Keycloak auf. Sämtliche Veränderungen der Konfigurations-Einstellungen ließen kein Versenden von E-Mails zu.

Mit Postfix gelingt der E-Mail-Versand im Container

Alternativen zur Umgehung des Problems sind die Nutzung eines anderen Docker-Images mit Keycloak oder selbst ein Keycloak Docker-Image zu erstellen, um dann zu überprüfen, ob der E-Mail-Versand mit einer der beiden Varianten funktioniert.

Allerdings sollte in unserem Fall das gehärtete, offizielle Docker-Image aufgrund der Erfahrungen beim Einsatz in anderen Kunden-Projekten genutzt werden.

Das Problem konnte durch die Nutzung eines Postfix-Docker Images gelöst werden. Durch den Einsatz von Docker Compose konnte dort der Service in die docker-compose.yml Datei eingebunden werden. Der Postfix-Container dient als ein SMTP-Relay Server und gibt die E-Mail an den Mail-Server der Domäne weiter.

Der nachfolgende Ausschnitt aus der docker-compose-yml Datei zeigt die entsprechenden Konfigurations-Einstellungen

postfix:
    image: boky/postfix:latest
    environment:
      - RELAYHOST=smtpoutserver.de:587  
      - RELAYHOST_USERNAME=xxx@exensio.com
      - RELAYHOST_PASSWORD=xxx
      - ALLOWED_SENDER_DOMAINS=exensio.com
      - TZ=Europe/Berlin  
    networks:
      - keycloak-network

In einem zweiten Schritt wird in der Applikation der Postfix-Container als Zielserver eingerichtet. Hier wird direkt über das Docker-Netzwerk auf den Postfix Service zugegriffen. Dieser kann über den Hostnamen Postfix angesprochen werden und es müssen auch keine weiteren Einstellungen wie Benutzername oder Passwort konfiguriert werden, da die das Postfix-Relay übernimmt.

Fazit: SMTP-Relay als einfache Lösung für E-Mail-Probleme im Docker-Container

Die Nutzung eines Postfix-Docker-Images als SMTP-Relay-Server bietet in diesem Fall eine einfache und effiziente Lösung für Verbindungsprobleme mit Mail-Servern in Docker-Umgebungen.

Die vorgestellte Alternative, mit der Nutzung eines weiteren Docker-Containers als Zwischenschicht, kann ggf. auch bei anderen Authentifizierungs-Problemen wie HTTP Basic-Auth als Lösung dienen.

Zurück

© 2006-2025 exensio GmbH
Einstellungen gespeichert
Datenschutzeinstellungen

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell, während andere uns helfen, diese Website und Ihre Erfahrung zu verbessern.

Sie können Ihre Einwilligung jederzeit ändern oder widerrufen, indem Sie auf den Link in der Datenschutzerklärung klicken.

Zu den gesetzlichen Rechenschaftspflichten gehört die Einwilligung (Opt-In) zu protokollieren und archivieren. Aus diesem Grund wird Ihre Opt-In Entscheidung in eine LOG-Datei geschrieben. In dieser Datei werden folgende Daten gespeichert:

 

  • IP-Adresse des Besuchers
  • Vom Besucher gewählte Datenschutzeinstellung (Privacy Level)
  • Datum und Zeit des Speicherns
  • Domain
×
Irving Tschepke
Irving Tschepke
Dipl.-Wirtsch.-Ing.
Peter Soth
Peter Soth
Dipl.-Inform. (FH)
Wir antworten in wenigen Stunden.
Oder rufen Sie einfach an:
×
Irving Tschepke
Irving Tschepke
Dipl.-Wirtsch.-Ing.
Peter Soth
Peter Soth
Dipl.-Inform. (FH)
Wir antworten in wenigen Stunden.
Oder rufen Sie einfach an:
You are using an outdated browser. The website may not be displayed correctly. Close