phpbar.de logo

Mailinglisten-Archive

[php] php mit msmtp konfigurieren / Nachtrag

[php] php mit msmtp konfigurieren / Nachtrag

Thomas Koudela thomas at koudela.net
Son Jun 28 12:01:09 CEST 2009


> Also, ich war doch sehr verwundert, dass ich wirklich so dumm sein
> sollte. Um's direkt auszuräumen, und auch deine andere Mail 
> mitzubeantworten (danke übrigens für deine Hilfsbereitschaft):
> 
> /etc/msmtprc ist kein Pfad, sondern die Konfigurationsdatei

Das wusste ich nicht. Warum nennen die Ihre Konfigurationsdatei einmal
".msmtprc" und das andere Mal "msmtprc"?

> -C /etc/msmtprc mit Leserechten für www-data hätte also ausreichen müssen.

Das stimmt. [Steht in "/etc/msmprc" bei Dir eigentlich das gleiche drin
wie in "~/.msmprc"?]

> Da ich an der bash als User mal eine Meldung bekommen habe, dass die 
> Datei dem User gehören müssen, habe ich es auch noch mit 
> /etc/msmtprc-www-data , owner www-data, Rechte 0600 versucht, leider 
> auch ohne Erfolg.

Die Frage ist erst einmal, wer führt bei Dir PHP aus bzw. wer lighttpd
(falls PHP dort als Modul läuft). Die Konfigurationsdatei benötigt dann
denselben User. [Dies muss nicht unbedingt www-data sein, wenn es auch
meist der Fall ist. "sudo ps -ef" gibt Dir einen Überblick über die
aktuellen Prozesse und unter welchem Nutzer sie laufen.]

> php.ini habe ich angepaßt, auch den Eintrag mit -C mal auskommentiert, 
> lighttpd immer neu gestartet (der führt php als fcgi aus und läuft unter 
> www-data), aber ohne Erfolg.

Der sendmail_path-Eintrag muss drinbleiben! Sonst weiß PHP nicht welches
Programm es zum Verschicken der Mail aufrufen muss. Der SMTP-Eintrag
sollte besser raus... damit PHP nicht auf die Idee kommt direkt mit dem
SMTP-Server zu kommunizieren.

> Zum Thema Leserechte vs. Ausführrechte zitiere ich jetzt mal die manpage:
> "The user configuration  file must have no more permissions than user 
> read/write.  Configuration data from either file can be changed by 
> command line options."

Das ist immer der Fall, wenn die Konfigurationsdatei dem User gehören
muss, der das Programm ausführt.

> > Bleibt in meinen Augen nur noch die fehlerhafte sendmail_path-Angabe
> > als mögliche Ursache.
> 
> Wie gesagt ist die nicht fehlerhaft, aber auch auskommentiert oder nur 
> mit -C, ohne -i -t geht's nicht.
> 
> Ich versteh's einfach nicht.

In Deiner ersten Mail hast Du geschrieben, dass es von der Bash aus
funktioniert. Wenn es aus der Bash funktioniert, aber von PHP aus nicht,
dann treibt entweder PHP irgendwelchen Schmuh -- eher unwahrscheinlich,
PHP und msmtp können nicht zusammen -- da es howTo's gibt auch
unwahrscheinlich, oder PHP greift anders auf msmtp zu als Du von der
Bash aus.

Hast Du von der Bash aus su(do) verwendet?
Was gibt eigentlich:
<?php echo shell_exec(...msmtp-Befehl der von Deiner Bash aus
funktioniert...); ?>
aus?


php::bar PHP Wiki   -   Listenarchive