Hallo liebe gemeinde.
Ich arbeite gerade (Trotz der zweifel das es ohne oop durchsetzbar ist) an einem teil meines frameworks der für die filterung von eingaben zuständig ist.
Nun stellt sich mir beim e-mail filter so die ein oder andere frage was erlaubte zeichen angeht...
(Überprüfung ob mx eintrag für die domain vorhanden ist steht schon :D um sicher zu sein das sie wenn nur erlaubte zeichen benutzt wurden auch zu einem server gehört.)
//hier ein snippet ;)
PHP-Code:
list($user, $domain) = split("@", $email);
if (checkdnsrr($domain, "MX")) {
}
.....
Nun aber zur eigentlichen frage ;)
Mit einem kumpel zusammen bin ich möglicheiten durchgegangen mit denen man eine e-mail adresse auf gültige zeichen prüfen kann.
Dabei sind 2 regex pattern und validate_email zur sprache gekommen.
Regex 1:
PHP-Code:
$mailregex = "/^( [a-zA-Z0-9] )+( [a-zA-Z0-9\._-] )*@( [a-zA-Z0-9_-] )+( [a-zA-Z0-9\._-] +)+$/";
Regex 2:
PHP-Code:
$mailregex = "/^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.'@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$";
oder wie erwähnt:
PHP-Code:
if(filter_var($url, FILTER_VALIDATE_EMAIL) === FALSE){
return 0;
}
Welche der drei wege würdet ihr wählen um Fake-adressen auszuschließen ?!
(Abgesehen davon ob der mailserver existiert bzw. mx eintrag für den server vorhanden ist)
Bei regex 2 bin ich mir so oder so nicht ganz sicher ob die dort vorhandenen sonderzeichen überhaupt verwendet werden dürfen, und regex 1 scheint mir zu flach um alle eventualitäten abzudecken. Bei FILTER_VALIDATE_EMAIL bin ich mir leider nicht sicher ob es mit jedem hoster funktioniert und wie groß die chance ist das ganze zu "überrumpeln".
Vielen dank für eure mühen schonmal im vorraus.
LG
R4Zz0R