Unter den Posten Validate E-Mail in Javascript und PHP , hier ist ein nettes JavaScript-Klasse in der Lage zu überprüfen und zu kontrollieren E-Mail-Adressen. Die Benutzung ist sehr einfach, obwohl es sich um eine Client-seitige Kontrolle ist, und leicht zu umgehen, können Sie einfach deaktivieren Javascript (vorschlagen Petition gegen diese Möglichkeit
jetzt alle Browser JavaScript zu entziehen können, und dann alle Steuerelemente in Verbindung mit - in der kurzen Frist ist nicht alles auf dem Internet, siehe Ajax
).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | / * ** @ Name: ckmail.js ** @ Beschreibung: Prüfen Sie E-Mail-Syntax ** @ Author: undo = = ** @ Author-Web: http://www.undolog.com ** @ Author-E-Mail: @ g.fazioli undolog.com - g (dot) Fazioli (at) undolog (dot) com ** @ Datum: 21.09.2006 21.24 Uhr ** @ Ver: 1.0 * / { oCKMail = {var , __release: "1,0", , __filter: / ^ (.. [\ w-]+(?: \ [\ w-]+)*)@((?:[ \ w-] + \) * \ w [\ w-] {0, 66}) \ ([az] {2.6} (:.?. \ [az] {2 })?)$/ i, , __username: "", , __domain: "", , __ext: "", / / ZU TUN ( e ) { GetUserName: function (e) { this .__init ( e ) ) return ( this .__username ) ; if (this. __init (e)) return (this. __username); false ) ; return (false); } / / ZU TUN ( e ) { GetDomain: function (e) { this .__init ( e ) ) return ( this .__domain ) ; if (this. __init (e)) return (this. __domain); false ) ; return (false); } / / ZU TUN ( e ) { GetExtension: function (e) { this .__init ( e ) ) return ( this .__ext ) ; if (this. __init (e)) return (this. __ext); false ) ; return (false); } / / ZU TUN ( e ) { __init: function (e) { ! this .__filter. test ( e ) ) return ( false ) ; wenn return (false) (dies __filter Test (e)!..); e. split ( "@" ) ; e. var t = split ("@"); t [ 0 ] ; . diese __username t = [0]; t [ 1 ] ; Diese __domain = t [1].; .__domain. split ( "." ) ; t = this. __domain. split ("."); t [ 1 ] ; Diese __ext = t [1].; true ) ; return (true); } / / ZU TUN / / Synopsis / / Check (und extlist, domainlist); / / Führt eine Reihe von Standard-Controls von einer E-Mail. / / Extlist - Sie können einen optionalen zweiten Parameter, die eine Reihe von Erweiterungen, entspricht / / Sind zugelassen oder ausgeschlossen (include / exclude-Erweiterung) nach dem ersten Wert im Array, die alle / / Fehler werden berücksichtigt. / / Eg. [True, "en", "com"] pass (mit Liste) / / Eg. [False, "en", "com"] NICHT passieren (Ausschluss-Liste) / / Wenn -1 nicht berücksichtigt / / Domainliste - Sie können einen optionalen dritten Parameter, die eine Reihe von Domains, entspricht / / Sind zugelassen oder ausgeschlossen (include / exclude-Domain) nach den ersten Wert im Array, werden alle / / Fehler werden berücksichtigt. / / Eg. [True, "alice.it", "mac.com"] pass (mit Liste) / / Eg. [False, "alice.it", "mac.com"] NICHT passieren (Ausschluss-Liste) / / Wenn -1 nicht berücksichtigt / / ( e ) { Check: function (e) { this .__init ( e ) ) { if (this. __init (e)) { / / Check Array domainExt überprüfen arguments. length > 1 ) { if (arguments. Länge> 1) { typeof ( arguments [ 1 ] ) == "object" ) { if (typeof (arguments [1]) == "object") { arguments [ 1 ] [ 0 ] ) { // include list if (arguments [1] [0]) {/ / include-Liste var i = 0 ; i < arguments [ 1 ] . length ; i ++ ) { for (var i = 0; i <arguments [1] Länge;. i + +) { this .__ext == arguments [ 1 ] [ i ] . toLowerCase ( ) ) return ( true ) ; if (this. __ext == Argumente [1] [i] toLowerCase ().) return (true); } { // exclude list Else {} / / Exclude-Liste var i = 0 ; i < arguments [ 1 ] . length ; i ++ ) { for (var i = 0; i <arguments [1] Länge;. i + +) { this .__ext == arguments [ 1 ] [ i ] . toLowerCase ( ) ) return ( false ) ; if (this. __ext == Argumente [1] [i] toLowerCase ().) return (false); } true ) ; return (true); } false ) ; return (false); } } / / Check Array domainName überprüfen arguments. length > 2 ) { if (arguments. Länge> 2) { typeof ( arguments [ 2 ] ) == "object" ) { if (typeof (arguments [2]) == "object") { arguments [ 2 ] [ 0 ] ) { // include list if (arguments [2] [0]) {/ / include-Liste var i = 1 ; i < arguments [ 2 ] . length ; i ++ ) { for (var i = 1, i <Argumente [2] Länge;. i + +) { this .__domain == arguments [ 2 ] [ i ] . toLowerCase ( ) ) return ( true ) ; if (this. __domain == Argumente [2] [i] toLowerCase ().) return (true); } { // exclude list Else {} / / Exclude-Liste var i = 1 ; i < arguments [ 2 ] . length ; i ++ ) { for (var i = 1, i <Argumente [2] Länge;. i + +) { this .__domain == arguments [ 2 ] [ i ] . toLowerCase ( ) ) return ( false ) ; if (this. __domain == Argumente [2] [i] toLowerCase ().) return (false); } true ) ; return (true); } false ) ; return (false); } } true ) ; // email correct return (true) / / korrekte E-Mail } false ) ; // error return (false) / / Fehler } }; |
Das Objekt oCKMail bietet mehrere Methoden für die Durchführung einer parallelen Reihe von Prüfungen auf die Adresse, wie die Erweiterung, Domain, etc. ...
Um wirklich sicher sein, wenn Sie PHP haben, können Sie einen zusätzlichen und effektiven Kontrolle vor der Ausführung des Befehls add mail() . Hier ist die PHP-Klasse für diesen Zweck geeignet:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | / * ** @ Name: cckmail.php ** @ Beschreibung: Prüfen Sie E-Mail-Syntax ** @ Author: undo = = ** @ Author-Web: http://www.undolog.com ** @ Author-E-Mail: @ g.fazioli undolog.com - g (dot) Fazioli (at) undolog (dot) com ** @ Datum: 21.09.2006 23.58 Uhr ** @ Ver: 1.0 ** ** Beispiele ** ** / / Für eine Adresse OHNE die E-Mail-Domäne "e-lementi.com" und "mac.com" Check ** ** $ OCKMail CCKMail = new (); ** $ OCKMail-> check ($ email, NULL, array (false, "e-lementi.com", "mac.com")); ** ** / / Überprüfen Sie die Adresse, einschließlich E-Mail-Domäne "e-lementi.com" und "mac.com" ** ** $ OCKMail CCKMail = new (); ** $ OCKMail-> check ($ email, NULL, array (true, "e-lementi.com", "mac.com")); ** ** / / Für eine Adresse mit Ausnahme derjenigen von E-Mails mit einem "net", "en" Check "org" ** ** $ OCKMail CCKMail = new (); ** $ OCKMail-> check ($ email, array (false, "net", "en", "org")); ** ** GESCHICHTE / CHANGE LOG ** * / ! function_exists ( 'checkdnsrr' ) ) { if ( function_exists ('checkdnsrr')) { ( $host , $type = '' ) { Funktion checkdnsrr ($ host, $ type ='') { ! empty ( $host ) ) { if ( leer ($ host)) { $type == '' ) $type = "MX" ; if ($ type =='') $ type = "MX"; ( "nslookup -type= $type $host " , $output ) ; @ exec ("nslookup-type = $ type $ host", $ output); list ( $k , $line ) = each ( $output ) ) { while ( Liste ($ k, $ line) = Jede ($ output)) { eregi ( "^ $host " , $line ) ) { if ( eregi ("^ $ host", $ line)) { ; return true; } } ; return false; } } } / / {Class CCKMail = "1.1" ; var $ __release = "1.1"; = false ; var $ status = false; ; var $ username; ; var $ domain; ; var $ ext; / / CCKMail function () {} / / $e ) { Funktion _test ($ s) { status = false ; $ This -> status = false; '/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/' ; $ P ='/^.+ \ @ (\ [?) [A-zA-Z0-9 \ - \] + \ ([a-zA-Z] {2,4}.. | [0-9] {1.3}) (\ ]?)$/'; preg_match ( $p , $e ) ) ) { if (( preg_match ($ p, $ e))) { explode ( "@" , $e ) ; $ T = explode ("@", $ s); username = strtolower ( $t [ 0 ] ) ; $ This -> username = strtolower ($ t [0]); domain = strtolower ( $t [ 1 ] ) ; $ This -> domain = strtolower ($ t [1]); explode ( "." , $this -> domain ) ; $ T = explode ('.', $ this -> Domain); ext = strtolower ( $t [ 1 ] ) ; $ This -> ext = strtolower ($ t [1]); / / checkdnsrr ( $this -> domain . '.' , 'MX' ) ) $this -> status = true ; if ( checkdnsrr ($ this -> Domain ..'', 'MX')) $ this -> status = true; checkdnsrr ( $this -> domain . '.' , 'A' ) ) $this -> status = true ; if ( checkdnsrr ($ this -> Domain ..'', 'A')) $ this -> status = true; checkdnsrr ( $this -> domain . '.' , 'CNAME' ) ) $this -> status = true ; if ( checkdnsrr ($ this -> Domain ..'', 'CNAME')) $ this -> status = true; } } / / $m , $e = NULL , $d = NULL ) { Funktion überprüfen ($ m, $ e = NULL, $ d = NULL) { _test ( $m ) ; $ This -> _test ($ m); $this -> status ) { if ($ this -> status) { / / Check Array domainExt überprüfen ! is_null ( $e ) ) { if ( is_null ($ e)) { $e [ 0 ] ) { // include list if ($ e [0]) {/ / include-Liste $i = 1 ; $i < sizeof ( $e ) ; $i ++ ) { for ($ i = 1; $ i < sizeof ($ s); $ i + +) { $this -> ext == strtolower ( $e [ $i ] ) ) return ( true ) ; if ($ this -> ext == strtolower ($ e [$ i])) return (true); } { // exclude list Else {} / / Exclude-Liste $i = 1 ; $i < sizeof ( $e ) ; $i ++ ) { for ($ i = 1; $ i < sizeof ($ s); $ i + +) { $this -> ext == strtolower ( $e [ $i ] ) ) return ( false ) ; if ($ this -> ext == strtolower ($ e [$ i])) return (false); } true ) ; return (true); } false ) ; return (false); } / / Check Array domainName überprüfen ! is_null ( $d ) ) { if ( is_null ($ d)) { $d [ 0 ] ) { // include list if ($ d [0]) {/ / include-Liste $i = 1 ; $i < sizeof ( $d ) ; $i ++ ) { for ($ i = 1; $ i < sizeof ($ d); $ i + +) { $this -> domain == strtolower ( $d [ $i ] ) ) return ( true ) ; if ($ this -> Domain == strtolower ($ d [$ i])) return (true); } { // exclude list Else {} / / Exclude-Liste $i = 1 ; $i < sizeof ( $d ) ; $i ++ ) { for ($ i = 1; $ i < sizeof ($ d); $ i + +) { $this -> domain == strtolower ( $d [ $i ] ) ) return ( false ) ; if ($ this -> Domain == strtolower ($ d [$ i])) return (false); } true ) ; return (true); } false ) ; return (false); } true ) ; return (true); } false ) ; return (false); } } ?> |
Was ineteressante ist die Fähigkeit dieser Klasse auf MX-Servern herstellen (siehe checkdnsrr() ), um die Präsenz der Domain zu überprüfen. So finden sich neben eine Syntaxüberprüfung der E-Mail läuft eine echte Ping-Domain vor. Wir können sicher sagen, dass diese Methode 80% ist ...










[...] Sie können auch eine zusätzliche Überprüfung auf dem Server / php. Siehe in diesem Zusammenhang Klassen Javascript und PHP, um E-Mail-un'indirizzo PLAIN TEXT validieren [...]