<?php
// Funktion erstellen, in $addr ist die zu prüfende Mailadresse:
function validate($addr){
// Die Mailadresse wird zunächst nur auf äusserliche richtigkeit geprüft:
if(!ereg("^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+.([a-zA-Z0-9-]{2,4})$",$addr)){
// Wenn die äusserliche Form nicht richtig ist wird FALSE zurückgegeben:
return FALSE;
}else{
// Die Adresse wird auseinander genommen:
list($user, $host) = explode("@", $addr);
// Die Domain nach dem @-Zeichen wird überprüft:
if(checkdnsrr($host, "MX") or checkdnsrr($host, "A")) {
// Wenn sie existiert wird TRUE zurückgegeben:
return TRUE;
}else{
// Wenn nicht, FALSE:
return FALSE;
}
}
}
?>
Aufrufen tut man die Funktion dann mit:
<?php
if(validate($addr)){
// Hier der Code wenn die Mailadresse richtig ist...
}else{
// Hier der Code wenn die Mailadresse falsch ist...
}
?>
Und schon ist eine relativ gute Mailvalidierung fertig programmiert.
Allerdings sollte man darauf achten das bei sehr hohem Traffic aufkommen die Funktion checkdnsrr(); recht langsam wird, da sie ja immer für jede Domain eine Anforderung an den Server stellen muss der prüft ob die Domain auch wirklich existiert.
Dafür hat man dann keine Mülleinträge wie srthstrh@srthasth.de mehr in seiner Datenbank!
Partnerseiten
