Mailinglisten-Archive |
> 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