Good to Know Database

Syntax einer E-Mail-Adresse und Verfügbarkeit der Domain überprüfen


Mit der folgenden PHP-Funktion können Sie die korrekte Syntax einer E-Mail-Adresse überprüfen und kontrollieren ob die angegebene Domain auch existiert. Sollte während der Validierung festgestellt werden, dass die Syntax der E-Mail-Adresse nicht korrekt ist oder dass die darin verwendete Domain nicht existiert, liefert die PHP-Funktion false als Rückgabewert zurück.

function validate_mail($mail)
{
  if (preg_match("/^[\w\.-]{1,}\@([\w-]{1,}\.){1,}[\w-]{2,4}$/", $mail)==0)
    return false;
  list($prefix, $domain) = split("@", $mail);
  if(function_exists("getmxrr") && getmxrr($domain . '.', $mxhosts))
    return true;
  elseif(function_exists("checkdnsrr") && checkdnsrr($domain . '.', 'MX'))
    return true;
  elseif(function_exists("checkdnsrr") && checkdnsrr($domain . '.', 'A'))
    return true;
  else
    return false;
}

Bei der Überprüfung der angegebenen Domain kommen die beiden PHP-Funktionen getmxrr() und checkdnsrr() zum Einsatz. Mit getmxrr() wird geprüft ob ein entsprechender MX-Record im Domain Name System (DNS) registriert ist. Sollte die Funktion getmxrr() nicht verfügbar sein oder kein entsprechender MX-Record gefunden werden, erfolgt die gleiche Abfrage mit der PHP-Funktion checkdnsrr(). Schlägt auch diese Prüfung fehl, wird mit checkdnsrr() nach einem passenden A-Record für die in der E-Mail-Adresse verwendete Domain gesucht. Erst wenn auch dieser Schritt scheitert, wird die E-Mail-Adresse als ungültig behandelt.

Die PHP-Funktion validate_mail() kann wie im folgenden Beispiel aufgerufen und das Ergebnis entsprechend ausgewertet werden.

if (validate_mail($mail)==false)
  echo "Die angegebene E-Mail-Adresse ist ungültig!";
else
  echo "Die angegebene E-Mail-Adresse ist gültig!";


Dieser Eintrag wurde am 24.03.2012 erstellt.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_4_1545.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer