PHP mail() und QMail
Regina
- webserver
Hallo,
auf meinem Linux-Server läuft RedHat 9, QMail (installiert nach http://www.qmailrocks.org/install_rh.htm und Apache 2 mit PHP 4.2.2 als MOD.
Wenn ich nun mittels der php-Funktion mail() eine E-Mail versenden will, kommt nichts an. Ich fürchte, dass QMail nicht richtig installiert ist, bzw das Mail-Senden am Server nicht funktioniert.
ps -aux gibt folgendes aus:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.1 0.0 1388 476 ? S 10:53 0:08 init [3] root 2 0.0 0.0 0 0 ? SW 10:53 0:00 [keventd] root 3 0.0 0.0 0 0 ? SWN 10:53 0:00 [ksoftirqd_CPU0] root 4 0.0 0.0 0 0 ? SW 10:53 0:00 [kswapd] root 5 0.0 0.0 0 0 ? SW 10:53 0:00 [bdflush] root 6 0.0 0.0 0 0 ? SW 10:53 0:00 [kupdated] root 7 0.0 0.0 0 0 ? SW 10:53 0:00 [pagebufd] root 8 0.0 0.0 0 0 ? SW 10:53 0:00 [xfslogd/0] root 9 0.0 0.0 0 0 ? SW 10:53 0:00 [xfsdatad/0] root 10 0.0 0.0 0 0 ? SW 10:53 0:00 [scsi_eh_0] root 11 0.0 0.0 0 0 ? SW 10:53 0:01 [kjournald] root 596 0.0 0.0 0 0 ? SW 10:53 0:00 [kjournald] root 908 0.0 0.1 1980 956 ? S 10:53 0:00 /sbin/dhclient -1 root 951 0.0 0.1 1464 556 ? S 10:53 0:00 syslogd -m 0 root 955 0.0 0.0 1388 432 ? S 10:53 0:00 klogd -x named 1034 0.0 0.5 11536 2576 ? S 10:53 0:00 /usr/sbin/named - root 1048 0.0 0.2 3520 1424 ? S 10:54 0:00 /usr/sbin/sshd ntp 1079 0.0 0.4 2412 2404 ? SL 10:54 0:00 ntpd -U ntp root 1092 0.0 0.2 4204 1152 ? S 10:54 0:00 /bin/sh /usr/bin/ mysql 1126 0.0 0.6 14580 3136 ? S 10:54 0:00 /usr/libexec/mysq root 1129 0.0 0.0 1476 496 ? S 10:54 0:00 /usr/lib/courier- root 1132 0.0 0.0 1364 268 ? S 10:54 0:00 /usr/lib/courier- root 1140 0.0 0.0 1476 496 ? S 10:54 0:00 /usr/lib/courier- root 1143 0.0 0.0 1364 268 ? S 10:54 0:00 /usr/lib/courier- root 1149 0.0 0.0 1476 496 ? S 10:54 0:00 /usr/lib/courier- root 1151 0.0 0.0 1360 264 ? S 10:54 0:00 /usr/lib/courier- root 1159 0.0 0.0 1476 496 ? S 10:54 0:00 /usr/lib/courier- root 1163 0.0 0.0 1360 264 ? S 10:54 0:00 /usr/lib/courier- qmails 1168 0.0 0.0 1428 352 ? S 10:54 0:00 qmail-send qmaill 1170 0.0 0.0 1380 412 ? S 10:54 0:00 splogger qmail root 1171 0.0 0.0 1384 288 ? S 10:54 0:00 qmail-lspawn ./Ma qmailr 1172 0.0 0.0 1380 292 ? S 10:54 0:00 qmail-rspawn qmailq 1173 0.0 0.0 1372 296 ? S 10:54 0:00 qmail-clean root 1197 0.0 0.3 3788 1560 ? S 10:54 0:00 /usr/sbin/stunnel root 1210 0.0 1.5 17964 7788 ? S 10:54 0:00 /usr/sbin/httpd root 1246 0.0 1.5 17904 7720 ? S 10:54 0:00 /usr/sbin/httpd apache 1247 0.0 1.6 18396 8596 ? S 10:54 0:00 /usr/sbin/httpd apache 1248 0.0 1.7 18744 8904 ? S 10:54 0:00 /usr/sbin/httpd apache 1249 0.0 1.7 18488 8672 ? S 10:54 0:00 /usr/sbin/httpd apache 1250 0.0 1.7 18736 8916 ? S 10:54 0:01 /usr/sbin/httpd apache 1251 0.0 1.6 18312 8560 ? S 10:54 0:00 /usr/sbin/httpd apache 1252 0.0 1.7 18456 8648 ? S 10:54 0:00 /usr/sbin/httpd apache 1253 0.0 1.7 18484 8728 ? S 10:54 0:00 /usr/sbin/httpd apache 1254 0.0 1.7 18484 8720 ? S 10:54 0:00 /usr/sbin/httpd root 1255 0.0 0.7 7780 3924 ? S 10:54 0:00 /usr/local/psa/ad root 1275 0.0 0.1 1448 584 ? S 10:54 0:00 crond xfs 1304 0.0 0.6 5372 3072 ? S 10:54 0:00 xfs -droppriv -da root 1330 0.0 0.1 3420 548 ? S 10:54 0:00 rhnsd --interval root 1336 0.0 0.0 1368 404 tty1 S 10:54 0:00 /sbin/mingetty tt root 1337 0.0 0.0 1368 404 tty2 S 10:54 0:00 /sbin/mingetty tt root 1338 0.0 0.0 1368 404 tty3 S 10:54 0:00 /sbin/mingetty tt root 1339 0.0 0.0 1368 404 tty4 S 10:54 0:00 /sbin/mingetty tt root 1340 0.0 0.0 1368 404 tty5 S 10:54 0:00 /sbin/mingetty tt root 1341 0.0 0.0 1368 404 tty6 S 10:54 0:00 /sbin/mingetty tt root 1342 0.0 0.0 1380 448 ttyS0 S 10:54 0:00 /sbin/agetty -L t root 1343 0.0 0.2 2120 1016 ? S 10:54 0:00 /bin/sh /command/ root 1345 0.0 0.0 1404 304 ? S 10:54 0:00 svscan /service root 1346 0.0 0.0 1356 224 ? S 10:54 0:00 readproctitle ser root 1347 0.0 0.0 1364 268 ? S 10:54 0:05 supervise qmail-s root 1348 0.0 0.0 1364 268 ? S 10:54 0:00 supervise log root 1349 0.0 0.0 1364 268 ? S 10:54 0:00 supervise qmail-s root 1350 0.0 0.0 1364 268 ? S 10:54 0:00 supervise log root 1351 0.0 0.0 1364 268 ? S 10:54 0:05 supervise qmail-p root 1352 0.0 0.0 1364 268 ? S 10:54 0:00 supervise log qmaill 1354 0.0 0.0 1384 320 ? S 10:54 0:00 multilog t s10000 vpopmail 1355 0.0 0.0 1436 456 ? S 10:54 0:00 /usr/local/bin/tc qmaill 1357 0.0 0.0 1376 264 ? S 10:54 0:00 multilog t s10000 qmaill 1366 0.0 0.0 1384 320 ? S 10:54 0:00 multilog t s10000 root 6554 0.5 0.4 6800 2048 ? S 12:41 0:00 /usr/sbin/sshd root 6587 0.4 0.2 4392 1472 pts/0 S 12:41 0:00 -bash qmails 6717 0.0 0.0 0 0 ? Z 12:41 0:00 [qmail-send <defu root 6722 0.0 0.0 0 0 ? Z 12:41 0:00 [tcpserver <defun root 6723 0.0 0.1 2696 740 pts/0 R 12:41 0:00 ps -aux
ps aux | grep read gibt folgendes aus:
root 1346 0.0 0.0 1356 224 ? S 10:54 0:00 readproctitle service errors: ...................................................................................................................................................................................................................................
Woran kann das liegen? Wie kann ich es der mail() Funktion ermöglichen, dass die Mails auch verschickt werden.
Vielen Dank
Regina
Hello,
auf meinem Linux-Server läuft RedHat 9, QMail (installiert nach http://www.qmailrocks.org/install_rh.htm und Apache 2 mit PHP 4.2.2 als MOD.
Wenn ich nun mittels der php-Funktion mail() eine E-Mail versenden will, kommt nichts an. Ich fürchte, dass QMail nicht richtig installiert ist, bzw das Mail-Senden am Server nicht funktioniert.
Die Prozesstabelle war hier nicht hilfreich. Allerdings wäre der Eintrag zu sendmail_path aus der phpinfo() hilfreich. Der muss auf qmail verweisen.
PHP nutzt hier ja nur straight forward den eingerichteten und aktiven SMTP-Agent.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hello,
Hi!
Die Prozesstabelle war hier nicht hilfreich. Allerdings wäre der Eintrag zu sendmail_path aus der phpinfo() hilfreich. Der muss auf qmail verweisen.
sendmail_path = /usr/sbin/sendmail -t -i
Ich habe zudem mal versucht, eine E-Mail per telnet zu versenden. Es kommt auc nichts an. Also liegt es IMHO an den QMail Einstellungen.
Wie gehe ich zur Fehlersuche vor?
Vielen Dank
Regina
Hello,
Hello,
Hi!
Die Prozesstabelle war hier nicht hilfreich. Allerdings wäre der Eintrag zu sendmail_path aus der phpinfo() hilfreich. Der muss auf qmail verweisen.
sendmail_path = /usr/sbin/sendmail -t -i
Ich habe zudem mal versucht, eine E-Mail per telnet zu versenden. Es kommt auc nichts an. Also liegt es IMHO an den QMail Einstellungen.
Wie gehe ich zur Fehlersuche vor?
indem man erst einmal schaut, ob /usr/sbin/sendmail denn ein softlink ist und auf das passende Programm verzweigt.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hello,
Hello,
Hi!
Die Prozesstabelle war hier nicht hilfreich. Allerdings wäre der Eintrag zu sendmail_path aus der phpinfo() hilfreich. Der muss auf qmail verweisen.
sendmail_path = /usr/sbin/sendmail -t -i
Ich habe zudem mal versucht, eine E-Mail per telnet zu versenden. Es kommt auc nichts an. Also liegt es IMHO an den QMail Einstellungen.
Korrektur: Die Mails kommen doch an, wenn ich welche über Telnet sende.
Wie gehe ich zur Fehlersuche vor?
indem man erst einmal schaut, ob /usr/sbin/sendmail denn ein softlink ist und auf das passende Programm verzweigt.
/usr/sbin/sendmail ist ein Softlink:
sendmail -> /var/qmail/bin/sendmail
mail() gibt ausserdem false zurück.
Wie soll ich weiter vorgehen?
Liebe Grüße aus http://www.braunschweig.de
Tom
Gruß
Regina
Hello,
sendmail_path = /usr/sbin/sendmail -t -i
Ich habe zudem mal versucht, eine E-Mail per telnet zu versenden. Es kommt auc nichts an. Also liegt es IMHO an den QMail Einstellungen.
Korrektur: Die Mails kommen doch an, wenn ich welche über Telnet sende.
telnet ist böse[tm]
Hast Du kein ssh? Selbst ssh 1 ist nicht ein 1000stel so böse wie telnet.
Wie gehe ich zur Fehlersuche vor?
indem man erst einmal schaut, ob /usr/sbin/sendmail denn ein softlink ist und auf das passende Programm verzweigt.
/usr/sbin/sendmail ist ein Softlink:
sendmail -> /var/qmail/bin/sendmail
mail() gibt ausserdem false zurück.
Wie soll ich weiter vorgehen?
Immer so weiter. Also der Linkkette erstmal folgen, bis du beim eigentlichen Programm angekommen bist. Dann hat das Ding ja eine Doku (ich habe auch neulich eine bei <http://selfhtml.bitworks.de > abgelegt.
Wenn Du beim Programm angekommen bist, erstmal alle Schnellinfos kommen lassen, die es Dir zur Verfügung stellt. also option --help oder so. Und dann versuchen, direkt von der Shell mit dem Prog zu arbeiten. Gucken obs ankommt.
Wenn das klappt, ist der Fehler ja bei PHP zu vermuten.
BTW: ist denn der Webserver schon mal neu gestartet worden? Kann sein, dass der sich den senmail_path noch gar nicht reingelutscht hat.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo Tom,
Korrektur: Die Mails kommen doch an, wenn ich welche über Telnet sende.
telnet ist böse[tm]
Hast Du kein ssh? Selbst ssh 1 ist nicht ein 1000stel so böse wie telnet.
Ich glaube, sie meint eher, dass sie mit einem Telnet-Client auf den SMTP-Daemon zugreift und so manuell die SMTP-Befehle eingibt.
Es kann auch sein, dass ich mich da irre - es ist zumindest das erste, was ich in diese Aussage reininterpretiere.
Viele Grüße
Patrick Canterino
Hello,
Korrektur: Die Mails kommen doch an, wenn ich welche über Telnet sende.
telnet ist böse[tm]
Hast Du kein ssh? Selbst ssh 1 ist nicht ein 1000stel so böse wie telnet.Ich glaube, sie meint eher, dass sie mit einem Telnet-Client auf den SMTP-Daemon zugreift und so manuell die SMTP-Befehle eingibt.
Es kann auch sein, dass ich mich da irre - es ist zumindest das erste, was ich in diese Aussage reininterpretiere.
Ja. So habe ich das auch verstanden. Ich würde abe nicht mehr mit einem Telnet-Client auf den Server zugreifen, da der Telnet-Deamon eben sehr leicht zu knacken ist. Das Verfahren ist zu alt und zu unsauber programmiert.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hi Tom,
Ja. So habe ich das auch verstanden. Ich würde abe nicht mehr mit einem Telnet-Client auf den Server zugreifen, da der Telnet-Deamon eben sehr leicht zu knacken ist. Das Verfahren ist zu alt und zu unsauber programmiert.
der Begriff »Telnet-Client« ist eigentlich falsch. Das Programm, was gemeinhin unter diesem Titel bekannt ist, ist eigentlich ein universelles TCP-Werkzeug, was nicht nur mit dem Telnet-Daemon (welcher in der Tat böse[tm] ist), sondern auch mit allen anderen Programmen, die auf einem TCP-Port lauschen, kommuniziert - so eben auch mit dem SMTPd.
Viele Grüße
Benjamin
Moin!
Wenn ich nun mittels der php-Funktion mail() eine E-Mail versenden will, kommt nichts an. Ich fürchte, dass QMail nicht richtig installiert ist, bzw das Mail-Senden am Server nicht funktioniert.
Das entnimmst du doch am schlauesten dem Logfile von QMail.
Wie kann ich es der mail() Funktion ermöglichen, dass die Mails auch verschickt werden.
Die php.ini bietet dazu ein paar Einstellmöglichkeiten. Üblicherweise macht PHP da aber keine Schwierigkeiten, weil unter Unix einfach das Systemkommando "sendmail" genutzt wird - und das bietet auch QMail an.
- Sven Rautenberg