PHP mail() funktioniert nicht
Martin Moebius
- php
0 dedlfix
Hallo,
ich nutze folgende System:
Apache/2.0.54 (Debian GNU/Linux), mod_python/3.1.3 Python/2.3.5 PHP/4.3.10-16 mod_ssl/2.0.54 OpenSSL/0.9.7e mod_perl/1.999.21 Perl/v5.8.4
Die Funktion mail() will einfach nach einem Umzug des Skripts auf obigen neuen Server nicht funktionieren, obwohl die Angaben darin auf einem anderen Linux Server funktionierten, der Befehl also selbst richtig ist.
Meine Einstellungen der php.ini:
sendmail_from: no value
sendmail_path /usr/share/sendmail
SMTP localhost
smtp_port 25
Ich erhalte keinen Fehler unter PHP selbst, aber in den logs /var/log/mail finde ich auch nichts.
echo $begrüßung;
Apache/2.0.54 (Debian GNU/Linux), mod_python/3.1.3 Python/2.3.5 PHP/4.3.10-16 mod_ssl/2.0.54 OpenSSL/0.9.7e mod_perl/1.999.21 Perl/v5.8.4
Die Funktion mail() will einfach nach einem Umzug des Skripts auf obigen neuen Server nicht funktionieren, obwohl die Angaben darin auf einem anderen Linux Server funktionierten, der Befehl also selbst richtig ist.
Was ist der Rückgabewert der Funktion? Bitte mit var_dump() ausgeben lassen.
Meine Einstellungen der php.ini:
sendmail_from: no value
sendmail_path /usr/share/sendmail
SMTP localhost
smtp_port 25
Wenn du mal die Handbuchseite zu den Mail Functions anschaust, wirst du feststellen, dass die letzten beiden Parameter auf deinem System nicht verwendet werden. Außerdem nützt uns die Angabe der Parameterinhalte nicht weiter, da wir nicht wissen, ob sie mit den Gegebenheiten deines Systems übereinstimmen. Möglicherweise benötigt deine Version von sendmail eine Angabe in sendmail_from oder mail() die Angabe des 5. Parameters.
echo "$verabschiedung $name";
Was ist der Rückgabewert der Funktion? Bitte mit var_dump() ausgeben lassen.
echo(var_dump(mail($TO, $subject, $message, $headers))) ergibt:
bool(true)
Wenn du mal die Handbuchseite zu den Mail Functions anschaust, wirst du feststellen, dass die letzten beiden Parameter auf deinem System nicht verwendet werden. Außerdem nützt uns die Angabe der Parameterinhalte nicht weiter, da wir nicht wissen, ob sie mit den Gegebenheiten deines Systems übereinstimmen. Möglicherweise benötigt deine Version von sendmail eine Angabe in sendmail_from oder mail() die Angabe des 5. Parameters.
Der Standard-MTA für den Mailserver scheint Qmail zu sein, wobei sendmail ebenfalls installiert zu schein seint.
Wie bekomme ich denn die Sendmail version heraus?
echo $begrüßung;
Was ist der Rückgabewert der Funktion? Bitte mit var_dump() ausgeben lassen.
echo(var_dump(mail($TO, $subject, $message, $headers))) ergibt:
bool(true)
Gut. Die Mail wurde an den MTA (Mail Transfer Agent) übertragen und PHP sagt, dass aus seiner Sicht alles in Ordnung sei.
Wenn du mal die Handbuchseite zu den Mail Functions anschaust, wirst du feststellen, dass die letzten beiden Parameter auf deinem System nicht verwendet werden. Außerdem nützt uns die Angabe der Parameterinhalte nicht weiter, da wir nicht wissen, ob sie mit den Gegebenheiten deines Systems übereinstimmen. Möglicherweise benötigt deine Version von sendmail eine Angabe in sendmail_from oder mail() die Angabe des 5. Parameters.
Der Standard-MTA für den Mailserver scheint Qmail zu sein, wobei sendmail ebenfalls installiert zu schein seint.
Wie bekomme ich denn die Sendmail version heraus?
Die ist nur nebensächlich wichtig. Finde heraus - z.B. durch Befragung des Systemverantwortlichen - was sich genau hinter /usr/share/sendmail verbirgt. Vielleicht ist es ein Sendmail-Wrapper von Qmail, vielleicht ist es wirklich sendmail. ls -l /usr/share/sendmail könnte dir vielleicht anzeigen, wohin der Symlink zeigt, wenn es sich um einen solchen handeln sollte. Möglicherweise werden zusätzliche Aufrufparameter benötigt. Ich las, dass bei einigen Installationen die Angabe eines Parameters -f ... nötig sei, um das Mail-Senden zum Funktionieren zu bringen. Das muss aber nicht unbedingt die Lösung deines Problems sein.
echo "$verabschiedung $name";