mail() liefert FALSE

27o8

abgemeldet
2 Mai 2006
9.028
933
Moin,
habe auf einem Server das Problem das wenn ich mail() aufrufe, mail() immer FALSE liefert. Daraufhin ERROR_REPORTING(E_ALL); eingefügt aber auch das bringt keine weiteren Infos. Wie kann ich nun erkennen warum es nicht geht. Wenn ich genau den gleichen Befehl auf meinem Server einsetze dann funktioniert alles bestens.

Es muss also am Server liegen! Kriegt man da was über die phpinfo() raus?

Gruß
Gremlin
 
Hi,

da wird sich villeicht eher was in den Logs des Mailservers finden lassen. Wenn mail() FALSE zurückgibt, wird der Fehler in der Regel nicht von PHP erzeugt, sondern der Fehler wird mit grosser Wahrscheinlichkeit am Mailserver produziert...

Evtl. könntest du ja mal den Code posten, von dem fehlerhaften mail()-Aufruf?
 
Hi,
nein kommt auch nicht an die Email.

Evtl. könntest du ja mal den Code posten, von dem fehlerhaften mail()-Aufruf?
Gerne ist aber ganz einfacher Aufruf den ich benutzt habe zum testen :).

PHP:
<?php
ERROR_REPORTING(E_ALL);

     if (mail('[email protected]', 'Demo', 'Test')){
      echo 'Okay!';
     }else{
      echo 'Fehler!';
     }
?>

Denn im kompletten Script wurden keine Mails mehr verschickt, hab ich einfach mal hier oben die mini Datei gemacht um zu testen obs am Script liegt oder an mail() und scheint wohl an mail zu liegen ^^

in den Logs des Mailservers finden lassen
Okay also am besten mal Hoster anschreiben :)
 
Hier mal noch ein paar Dinge, die man überprüfen könnte, um dem Fehler auf die Spur zu kommen (gehen mir gerade so durch den Kopf :) ):

Schau mal in der phpinfo() nach den Variablen, die für den Mailversand verantwortlich sind, wie z.B.:

sendmail_from -> Optionale Angabe des Absenders
sendmail_path -> Pfad zum sendmail o.ä.
SMTP -> Angabe des zu nutzenden SMTP-Servers (meist localhost)
smtp_port -> sollte Port 25 sein

Stimmt der Pfad zu sendmail auch?

Ich denke aber eher, dass es irgendwo direkt am Server / PHP-Einstellungen oder sonstwo hakt, wofür der Hoster verantwortlich ist.

Evtl. ist das Ganze vom Hoster auch so eingestellt, dass keine Emails an externe Adressen gesendet werden? Solche Kuriositäten gibts nämlich wirklich...
 
sendmail_from no value no value

sendmail_path /usr/sbin/sendmail-wrapper -t -i /usr/sbin/sendmail-wrapper -t -i

SMTP localhost localhost
smtp_port 25 25

Ob der Pfad stimmt kann ich nicht sagen, weis net wie ich das prüfen sollte ;)
 
Sorry, nu bin ich mit meinem Latein auch am Ende denn die Einstellungen sehen für mich ok aus. Vorausgesetzt, /usr/sbin/sendmail-wrapper -t -i ist auch wirklich die richtige Einstellung. Aber das kann dir nur dein Hoster beantworten.

In der Regel bedeutet ein false als Rückgabe von mail(), dass die zu versendende Email vom MTA (Sendmail, Postfix, Qmail o.ä.) nicht akzeptiert wurde. Der Grund dafür sollte dann eigentlich in den Logs des Mailservers ersichtlich sein. Auch hier wird dir nur der Hoster weiterhelfen können.

Eine Anfrage beim Support des Hosters kann sicherlich nicht schaden...

EDIT:
Habe deinen Minitest von oben mal eben auf einem meiner Server getestet. Funktioniert einwandfrei. Nur mal eben, damit nicht irgendeine Kleinigkeit übersehen wurde. Ist ja manchmal so aber an der Programmierung liegt es sicher nicht...
 
Zuletzt bearbeitet:
Antwort vom Hoster:

„Beim Mailversand über PHP Scripte beachten Sie bitte, dass eine Absendermailadresse angegeben wird, die auch auf dem Server existiert und das standardmäßig nur 1000 Mails pro Tag (mit Anmeldung bis zu 5000) per PHP Script verschickt werden können."
Naja nicht gerade erfreulich aber dann weis ich ja nun woran es liegt ;)
 
Verständlich sind solche Massnahmen schon irgendwo, in heutigen Zeiten und dem Spamaufkommen. Meistens sind es ja unsauber programmierte Kontaktformulare oder ähnliches, die zum Versand von Spam ausgenutzt werden.

Die Massnahme, die Nachrichtenmenge zu begrenzen, kann ich durchaus nachvollziehen. Auch ich habe als Hoster bereits über solche Massnahmen nachgedacht aber da ich bisher noch keine solchen Probleme durch übermässigen Spamversand hatte, habe ich das erstmal zur Seite gelegt.

Allerdings macht es keinen Sinn, den Versand auf Absenderadressen zu beschränken, die auf dem Server existieren. Naja, jedem das seine wie er meint, machen zu müsen.

Ich arbeite jedenfalls nach dem Motto, dass man den Kunden nicht zu sehr in seiner Freiheit einschränken sollte, denn es gibt genügend Mittel, auch ohne solche Massnahmen für Sicherheit auf dem Server zu sorgen.

Wenigstens weisst du jetzt, woran es liegt und wir sind um eine Erfahrung reicher ;)