mail() Fehler abfangen

Thomasio

Erfahrenes Mitglied
Wenn ich die PHP mail() Funktion verwende und dabei eine ungültige Mail Adresse angebe (z.B. ohne @), dann gibt PHP mir eine Fehlermeldung vom SMTP Server zurück:
550 Requested action not taken.
Im Prinzip ist das ja in Ordnung so, aber ich würde dem User gerne meine eigene Rückmeldung in den Browser schreiben, und vor allem nach der Rückmeldung das Script beenden.

Gibt es eine Möglichkeit eine ungültige Mail Adresse vorm Aufruf von mail() zu erkennen und wenn nein, wie fange ich den Fehler ab, ohne dass PHP dem User etwas ausgibt?
 
Erstmal vielen Dank, das hilft schon mal ein Stück weiter.
Aber wie erfahre ich damit, ob nun ein Fehler aufgetreten ist oder nicht?
Das Script muss ja entsprechend reagieren.

Wenn

@mail(.......)

keinen Fehler mehr ausgibt, woher bekomme ich dann ein Flag oder sowas, anhand dem ich eine Bedingung erstellen kann, ala

Code:
if (flag) {
print <<<END

// irgendwas in HTML

END;
exit;
} else {
print <<<END

// was anderes in HTML

END;
}
 
Hallo,

also wenn du vor mail() prüfen willst, ob die E-Mail gültig ist, solltest du die mit preg_match überprüfen.

http://de2.php.net/manual/de/function.preg-match.php#87838

Bei der @-Variante kannst du einfach den Rückgabewert von mail() nehmen. Dazu ein Zitat auf der php.net-Anleitung.

Rückgabewerte

Gibt TRUE zurück, wenn die E-Mail erfolgreich für den Versand akzeptiert wurde, sonst FALSE.

Dass eine E-Mail für den Versand akzeptiert wurde, bedeutet nicht, dass sie auch wirklich den gewünschten Empfänger erreichen wird.

Hoffe geholfen zu haben.

MfG koctja
 
Zurück