PHP-Code:
//Prüfung der E-Mailadresse
function checkmail($address) {
return preg_match("/^[_a-z0-9-] (\.[_a-z0-9-] )*@([0-9a-z][0-9a-z-]*[0-9a-z]{2}\.) ([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|shop)$/i", $address);
}
Natürlich gibt es noch weitere Arten der Überprüfung, hier einige Variationen:
(1) Herkömmliche Prüfung:
PHP-Code:
if (!ereg("^([a-zA-Z0-9\.\_\-]+)@([a-zA-Z0-9\.\-]+\.[A-Za-z][A-Zaz]+)$",
$email))
(2) Erweiterung für Umlautdomains:
PHP-Code:
if (!ereg("^([a-zA-Z0-9\.\_\-]+)@([äöüÄÜÖa-zA-Z0-9\.\-]+\.[A-Za-z][A-Zaz]+)$",
$email))
(3) Erweiterung nach IDN, allerdings beschränkt auf ISO-8859-1 (Latin-1):
PHP-Code:
if (!ereg("^([à-öø-ÿa-zÀ-ÖØ-ÞA-Z0-9\.\_\-]+)@([à-öø-ÿa-zÀ-ÖØ-ÞA-Z0-9\.\-
]+\.[A-Za-z][A-Za-z]+)$", $email))
Weitere Zeichen hängen allerdings von den jeweiligen landesspezifischen Browsereinstellungen ab.
(4) Einfache Prüfung ohne die Verwendung regulärer Ausdrücke:
PHP-Code:
if (strlen($email) < 6 || strpos($email, '@') < 1 || strpos($email, '.') < 1)
Vorteil: Funktioniert mit allen Mail-Adressen.
(5) International funktionierende Kombination (?):
PHP-Code:
if (strlen($email) < 6 || strpos($email, '@') < 1 || strpos($email, '.') < 1 || !preg_match("/^([\w|\.|\-|_]+)@([\w||\-|_]+)\.([\w|\.|\-
|_]+)$/i", $email))
Prüft zunächst die Länge (mind. 6 Zeichen), dann das Vorkommen von "@" und "." und schließlich per preg_match den gültigen Aufbau