Im Internet gibt es sehr viele Ansätze, wie man mit regex und co. eine E-Mail-Adresse auf korrektheit prüfen kann. Hier der, meiner Meinung nach, beste Ansatz. Die Funktion liefert true, wenn die Adresse der E-Mail RFC entspricht.

function checkEmail($email)
{
	$qtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]';
	$dtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]';
	$atom = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+';
	$quoted_pair = '\\x5c[\\x00-\\x7f]';
	$domain_literal = "\\x5b($dtext|$quoted_pair)*\\x5d";
	$quoted_string = "\\x22($qtext|$quoted_pair)*\\x22";
	$domain_ref = $atom;
	$sub_domain = "($domain_ref|$domain_literal)";
	$word = "($atom|$quoted_string)";
	$domain = "$sub_domain(\\x2e$sub_domain)*";
	$local_part = "$word(\\x2e$word)*";
	$dot = "(\\x2e){0,1}";
	$addr_spec = "$local_part$dot\\x40$domain";
	return preg_match("!^$addr_spec$!", $email) ? 1 : 0;
}

Hinterlasse einen Kommentar.

Network-wide options by YD - Freelance Wordpress Developer