sendmail() in Docker-Container

tobi.wld

Lt. Junior Grade
Registriert
Dez. 2020
Beiträge
268
Hallo zusammen,
ich habe derzeit meine Website mithilfe eines Nginx-Webserver-Containers bei mir daheim gehostet.
Auf dieser Website habe ich eine Seite, über welche man mich über ein Kontaktformular kontaktieren kann. Diese Seite basiert auf einer PHP-Datei, welche die Funktion sendmail() benutzt. Als ich es auf einem Standalone Ubuntu-System gehostet habe, hat der Mail-Versand Problemlos funktioniert.
Als ich die Website nun über den Docker-Container realisiert habe, funktioniert der Mailversand nicht mehr richtig. Weiß jemand von euch wo ich die SMTP-Zugangsdaten auf dem Docker-Container eintragen muss, dass dieser wieder funktioniert?

Das ist alles auf dem Container:
1661930200387.png

Und das im PHP-Ordner:
1661930226376.png

Das steht in der php-local.ini:
1661930265930.png
 
Liegt es denn an den Zugangsdaten? Hast du mal ins Log geschaut? Und das ist Abhängig von deiner Anwendung in welchem Format, wo und wie sie die Zugangsdaten erwartet.
Du kannst die natürlich wenn du den Container baust mit dort ablegen (nicht so schön) oder zur Laufzeit als Environment Variable reinreichen oder die Datei mit den Zugangsdaten zur Laufzeit in den Container mounten. Also es gibt viele Möglichkeiten.
 
tobi.wld schrieb:
mithilfe eines Nginx-Webserver-Containers
Ist bei dem Container überhaupt eine sendmail-Installation (oder vergleichbares) mit enthalten? Welches Dockerimage genau ist es denn? Oder baust Du selbst ein Image zusammen (bitte dann mal das Dockerfile hier rein pasten)?

Am einfachsten mal per "docker exec" mit dem Container verbinden und schauen, ob auf dem SMTP-Port überhaupt ein Dienst läuft. Denn egal ob Du per php ein sendmail() ausführen kannst, das bedeutet nicht, dass da auch ein entsprechender Dienst hintendran läuft.

Andernfalls mal direkt das Dockerfile Deines verwendeten Images ansehen, was letztlich konkret an Paketen hier reingebacken ist.
 
  • Gefällt mir
Reaktionen: madmax2010
Falc410 schrieb:
Liegt es denn an den Zugangsdaten?
Die habe ich noch nicht angegeben. Normalerweise (bei Strato, etc.) sind die ja von dort aus angegeben. Aber wie kann ich die in meine eigene php.ini Datei schreiben und wo liegt diese?

Falc410 schrieb:
Hast du mal ins Log geschaut?
Dort steht nix zu dem File

Faust2011 schrieb:
Welches Dockerimage genau ist es denn?
https://hub.docker.com/_/nginx Dieses
Faust2011 schrieb:
SMTP-Port überhaupt ein Dienst läuft
Dort läuft nix, das PHP-File soll über die Strato Mailserver eine Mail versenden.
 
tobi.wld schrieb:
Die habe ich noch nicht angegeben. Normalerweise (bei Strato, etc.) sind die ja von dort aus angegeben. Aber wie kann ich die in meine eigene php.ini Datei schreiben und wo liegt diese?


Dort steht nix zu dem File


https://hub.docker.com/_/nginx Dieses

Dort läuft nix, das PHP-File soll über die Strato Mailserver eine Mail versenden.
Lies dir diese Doku mal durch, damit du überhaupt verstehst, wie Docker funktioniert. Sonst ist dein ganzen Vorhaben nämlich ziemlich sinnbefreit.

https://docs.docker.com/get-started/
 
Die php.ini bzw. generell alle Daten mit Konfigurationen und alle sonstigen persistenten Daten sollten in einem Volume liegen, was dem Container beim starten angehangen wird. Alternativ kann man auch Credentials je nach Container gut per environment variable beim Start mit geben, dann muss man keine Credentials in den Volumes ablegen.
 
Zurück
Oben