mail()-Funktion macht Probleme...
Bastian
- php
0 Severin Kacianka0 Bastian
0 Fabian St.0 Bastian0 Fabian St.0 dedlfix
Hallo zusammen
Ich suche verzweifelt nach einem Fehler in meinem E-Mail-Verarbeitungsscript. Ich habe ein Formular welches an mailer.php weitergegeben wird. Dort wird Folgendes ausgeführt:
<?php
$absender = $_POST["absender"];
$adressat = $_POST["adressat"];
$betreff = $_POST["betreff"];
$nachricht = nl2br($_POST["nachricht"]);
mail("$adressat", "$betreff", "$nachricht", "From: $absender");
?>
Ich habs auch schon ohne Anführungszeichen in der mail()-Funktion ausprobiert. Aber es will einfach nicht funktionieren.
Weiter unten gebe ich die einzelnen Variablen nochmals aus und da gibt es keine Probleme; die werden also erkannt und sind richtig gesetzt.
Ich bin ratlos...
Hallo,
Ich habs auch schon ohne Anführungszeichen in der mail()-Funktion ausprobiert. Aber es will einfach nicht funktionieren.
Die Anführungszeichen kannst du weglassen. Aber was genau geht nicht? Kommt kein E-Mail an, kommt es "komisch" an oder geht gar was ganz anderes nicht?
Gruß,
Severin
Okay, die Anführungszeichen sind weg. Der Rückgabewert der Funktion ist true, also sollte die Mail doch verschickt worden sein, oder?
Es kommt gar keine E-Mail an. Ich versuche es mal mit anderen Mailadressen.
Hallo,
Es kommt gar keine E-Mail an. Ich versuche es mal mit anderen Mailadressen.
Dann liegt es wahrscheinlich am MTA (Mail Transport Agent) deines Servers. Was sagt die php_info() zu den von Fabian angesprochenen Einstellungen?
Ich glaube das beste ist, wenn du dich einfach an den Administrator/Provider deines Webspaces um Hilfe wendest.
Gruß,
Severin
moin!
wenn du pech hast, werden die mails vom mta geschluckt. denn ein true sagt immerhin, dass mail die daten an diesen erfolgreich übergeben hat.
manchmal kann es auch sein, dass der hoster den mailversand auch nur absichtlich verzögert. check mal die faq's.
gruß.
roger.
Hi!
<?php
$absender = $_POST["absender"];
$adressat = $_POST["adressat"];
$betreff = $_POST["betreff"];
$nachricht = nl2br($_POST["nachricht"]);mail("$adressat", "$betreff", "$nachricht", "From: $absender");
?>Ich habs auch schon ohne Anführungszeichen in der mail()-Funktion ausprobiert. Aber es will einfach nicht funktionieren.
Die Anführungszeichen sind absolut unnötig und zeugen von einem schlechten Stil. Aus diesem Grund solltest du sie weglassen. Darüber hinaus solltest du den Rückgabewert von mail() überprüfen, dieser ist TRUE, wenn die Mail erfolgreich zum Versand vom lokalen MTA akzeptiert wurde, ansonsten FALSE.
Darüber hinaus ist sicherlich auch ein Blick in die Ausgabe von phpinfo() interessant, wie es mit den Einstellungen «sendmail_path», «SMTP» und «smtp_port» aussieht.
Ganz hilfreich dürfte für dich auch ein Blick in die entsprechende Manual-Seite sein: http://de.php.net/manual/en/ref.mail.php
Grüße,
Fabian St.
Darüber hinaus ist sicherlich auch ein Blick in die Ausgabe von phpinfo() interessant, wie es mit den Einstellungen «sendmail_path», «SMTP» und «smtp_port» aussieht.
sendmail_path: /usr/sbin/sendmail -t -i
SMTP: localhost
smtp_port: 25
Wie das zu interpretieren ist, weiss ich allerdings nicht.
Mittlerweile habe ich das Ganze noch mit anderen Mailadressen ausprobiert: nichts! Das ist mir nun wirklich schleierhaft. Sollte ich mal beim Webhost nachfragen?
Hi!
Darüber hinaus ist sicherlich auch ein Blick in die Ausgabe von phpinfo() interessant, wie es mit den Einstellungen «sendmail_path», «SMTP» und «smtp_port» aussieht.
sendmail_path: /usr/sbin/sendmail -t -i
SMTP: localhost
smtp_port: 25Wie das zu interpretieren ist, weiss ich allerdings nicht.
Da gibt es eigentlich nicht viel zum Interpretieren ;-) Die Einstellung «sendmail_path» gibt an, welches Programm von mail() verwendet werden soll, um eine Mail zu verschicken, die anderen Daten geben dann noch die Adresse des SMTP-Servers und den Port an, auf dem dieser Anfragen entgegen nimmt. Siehe hierzu auch den von mir im vorherigen Posting erwähnten Link.
Mittlerweile habe ich das Ganze noch mit anderen Mailadressen ausprobiert: nichts! Das ist mir nun wirklich schleierhaft. Sollte ich mal beim Webhost nachfragen?
Das wird wohl die beste Möglichkeit sein, da sich dieser auch mit der speziellen Konfiguration des MTA am besten auskennen sollte.
Grüße,
Fabian St.
echo $begrüßung;
Bitte beachte(t) die Hinweise im Handbuch zu den Mail betreffenden Parametern. SMTP und smtp_port beispielsweise gelten nur für Windows.
echo "$verabschiedung $name";
Hi!
Bitte beachte(t) die Hinweise im Handbuch zu den Mail betreffenden Parametern. SMTP und smtp_port beispielsweise gelten nur für Windows.
Ich weiß, ich habe den Link ja bereits in meinem obigen Beitrag gepostet und du kannst davon ausgehen, dass ich die von mir zitierten Quellen auch selber lese :-/ Dadurch wollte ich eben auf das Betriebssystem des Servers schließen, was durch das /usr/sbin/sendmail nun klar sein dürfte ;-) Unter Umständen wäre vielleicht eine explizite Nennung dieses Punktes von mir angebracht gewesen...
Grüße,
Fabian St.