phpbar.de logo

Mailinglisten-Archive

[php] php mit msmtp konfigurieren

[php] php mit msmtp konfigurieren

Thomas Koudela thomas at koudela.net
Sam Jun 27 20:06:05 CEST 2009


Hi Andre,

Antworten im Text.

> Thomas Koudela schrieb:
> >> msmtp ist korrekt konfiguriert, von der bash kann ich mit mail emails
> >> verschicken, dabei wird .msmtprc (s.u.) aus meinem Homedir benutzt. Die
> >> gleiche Datei liegt auch in /etc/msmtprc.
> > 
> > Ich nehme mal an, dass im Homedir der Homeuser ausführende Rechte für
> > diese Datei besitzt. Unterhalb von /etc defaultmäßig lesende oder gar
> > ausführende Rechte für Homeuser oder www-data zu setzen wäre ein grober
> > Verstoß gegen Vorsichtsmaßnahmen. Überprüfe mal, ob die Dateien
> > unter /etc/msmtprc der Gruppe www-data angehören und wie die Rechte für
> > diese Gruppe gesetzt sind.
> 
> $ la /etc/msmtprc
> -rw-r--r-- 1 root root 393 18. Jun 16:23 /etc/msmtprc
> 
> Bin davon ausgegangen, dass msmtp so lesen kann, ausführen wäre ich 
> nicht drauf gekommen, werde ich aber probieren ob das was ändert.

Fast jedes Programm muss auch etwas ausführen, um seine Dienste zu
leisten. Es ist daher eine vernünftige Annahme, dass auch msmtp dies
muss. Rootrechte vergibt man aus Sicherheitsgründen möglichst
restriktiv. Es ist würde mich daher verwundern (und alarmieren), wenn
PHP bei Dir Rootrechte besitzt. Zwar kann es sein, dass msmtp unter
einer anderen Nutzerkennung ausgeführt wird. Das ist allerdings eher bei
Server- und als bei Clientprogrammen zu erwarten -- wiederum wegen der
Sicherheit. (Und auch dort nicht als root!)

> >> ; For Win32 only.
> >> SMTP = smtp.gmail.com
> >> smtp_port = 587
> > 
> > Hmm, msmtp ist laut Website ein SMTP-Client, der mittels eines Accounts
> > bei einem SMTP-Server als MTA fungiert. Ich würde daher mal ins Blaue
> > hineinraten, dass Adresse und Port des SMTP-Servers in die Konfiguration
> > des msmtp SMTP-Clienten gehören. Aus der php.ini solltest Du sie in
> > diesem Fall streichen (und Webserver neu starten nicht vergessen).
> 
> So hatte ich das zuerst, die Einträge waren schon Verzweiflungsversuche, 
> weil's nicht lief - und ich glaub ich hab's dann auch in einem HowTo 
> gefunden (IIRC).

Im Zweifelsfall halte ich mich immer an die HowTo's. Gehen wir also
davon aus, dass dieser Eintrag stimmt.

> > *maximal zwei Minuten in der Dokumentation gestöbert*
> > Und noch eine Rüge! [;-)]
> 
> abgelehnt, ich hab's fast einen Tag versucht, mit google, man uvm., 
> Faulheit scheidet also aus ;-)

Faul habe ich Dich nicht eingeschätzt. Ich wollte damit eher sagen:
Deine Suchstrategie ist möglicherweise noch nicht ausgereift. ;-)
Insbesondere weil die Konfigurationsoption trotz guter Dokumentation
fehlerhaft war:

> >>>> 3.2.3 Configuration options
> >>>>
> >>>> ‘-C filename’ 
> >>>> 	Use the given file instead of ~/.msmtprc as the user
> >>>> 	configuration file. 
> > 
> > Und nun vergleiche diese Information mit:
> > 
> >> sendmail_path = /usr/bin/msmtp -t -i -C /etc/msmtprc
> > 
> > Hoffe ein klein wenig geholfen zu haben.
> 
> um ganz ehrlich zu sein - nein. Wahrscheinlich stehe ich gerade voll auf 
> dem Schlauch, was mach ich denn verkehrt - ich hab doch mit -C ein 
> korrektes Konfigurationsfile angegeben - gerade weil ich die manpage 
> gelesen habe.

Oh sorry, dann bist Du bis vor kurzem wahrscheinlich Windows- oder
Apple-User gewesen oder Dein Englisch ist noch nicht so gut. "filename"
bezieht sich auf den Dateinamen, nicht auf den Pfad unter welchem die
Konfigurationsdatei zu finden ist. Statt "/etc/msmtprc" (der
Verzeichnispfad) müsste "/etc/msmtprc/.msmtprc" (die
Konfigurationsdatei) stehen oder "/etc/msmtprc/test.conf" oder
"/etc/msmtprc/php.conf" oder "/home/andre/msmtprc/.msmtprc" oder
"/home/pinguin/foo.bar" falls entsprechende Konfigurationsdateien
existieren. Die -C Option gewährt also Programmierern und
Administratoren wesentlich weitgehendere Möglichkeiten als die bloße
Mitteilung an das Programm, wo sein Heimatverzeichnis liegt.

Schöne Grüße,
Thomas K.


php::bar PHP Wiki   -   Listenarchive