REGEXP POUR VÉRIFIER LA VALIDITÉ D'UNE ADRESSE MAIL SUIVANT NORME RFC822
momoxe
Messages postés71Date d'inscriptionjeudi 18 novembre 2004StatutMembreDernière intervention12 août 2006
-
21 mai 2006 à 15:18
cs_janhsh
Messages postés31Date d'inscriptionlundi 6 novembre 2000StatutMembreDernière intervention24 janvier 2015
-
15 mai 2009 à 20:50
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_jean84
Messages postés449Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention 5 mars 2009 1 août 2006 à 14:56
ah au fait je pose la question au cas ou : je me suis remy au C++ depuis peu (disons que j'avais pas eu de projets depuis quelques temps) et lors d'un traitement d'une fonction particuliere, j'ai commence a ercire justement une expression reguliere jusqu'au moment ou j'ai appelle preg_match() et que mon compilo a pas ete super d'accord ... ^^
Vous savez si il existe des lib(sdk) utilisant les regex de type pcre pour le C++ ?? j'ai essaye de faire mon moteur mais j'ai mechament galerer... j'en suis encore loin, voir meme tres loin ...
si quelqu'un avait des infos la dessus, je prend !! Merci et @++
cs_jean84
Messages postés449Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention 5 mars 2009 1 août 2006 à 14:52
Imaginez un peu si on s'amusait a faire un benchmark sur cette fonction ?? on fait 1000 tour de boucle avec l'adresse #+^-$`&%_=|/|_?=!§{}@#+^-$`&%_=|/|_?=!§{}.com et on regarde le temps que renvoi microtime().... lol... sa serait un truc du genre "Fatal error: Maximum execution time of 30 seconds exceeded ..." ^^ sa peut etre bien fun !!
Et sous IIS .. je n'ose y penser .. peut etre une nouvelle faille ?? lol.. allez j'arrete
@++
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 1 août 2006 à 14:20
Faudrait envoyer cette regex à Philippe Hazel (ndlr: le fou furieux qui développe pcre), je suis persuadé qu'il s'en chopperait une crise cardiaque bien avant que le serv ait fini de tourner en effet :p
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 1 août 2006 à 13:29
Lol en effet, y en a qui psychotent grave là ;-)
Aucun risque avec ce code. Si ce n'est de tuer le serveur PHP à la tâche pour executer ce truc ;-)
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 1 août 2006 à 12:08
Faut arrêter de craquer lol..
Je sais pas si ce truc est vraiment rfc compliant, si ca marche bien, mais essayez tout de même de pas avoir le nez collé à l'écran hein..
1 preg_match, 1 chaine entre simple quotes, 2 echo()... Y'a pas de quoi se cacher sous la table si ?
cs_jean84
Messages postés449Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention 5 mars 2009 1 août 2006 à 11:21
C'est vrai que vu la taille du truc, on peut se poser la question a savoir si il y a pas une backdoor dedans ... ^^ non je deconne faut pas psycoter, sa reste du php dans une expression reguliere.. au pire sa envoi un mail quelque part mais c'est tout.... pour verifier t'as qu'a la mettre dans un editeur genre dreamweaver (que je recommande ^^) ou context (tres bien egalement) et tu regarde la couleur que prend le texte. Si tout n'est pas en rouge (ou de la couleur d'un string normal), c'est qu'il y a probleme... mais j'en doute ... :p
En fait je suis plus de l'avis de coockiesch, je suis persuade que sa cache un dessin en ASCII ... ^^
@++
pepecyril
Messages postés3Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention29 juillet 2006 29 juil. 2006 à 17:23
Euhh, ça me laisse perplexe. Il a été testé ce code ? Car moi j'ai pas confiance en une expression pareille
TheSin
Messages postés331Date d'inscriptionmardi 12 novembre 2002StatutMembreDernière intervention10 février 2009 3 juil. 2006 à 11:42
pastis51forever
Messages postés172Date d'inscriptiondimanche 29 juin 2003StatutMembreDernière intervention 8 septembre 20061 3 juil. 2006 à 10:43
J'dis ptetre une connerie, mais je viens de voir dans le descriptif de la rfc822 ceici:
MSG - Le Format des Messages de l'Internet
"La spécification du format des messages, utilisé par exemple pour interpréter le contenu d'un e-mail. Cette RFC est obsolète, remplacée par la RFC 2822 dont une traduction en Français est disponible."
J'espère qu'ils n'ont rien mofidié en ce qui concerne les adresses e-mail... En tout cas, bon courrage pour la faire évoluer ton expression...
cs_jean84
Messages postés449Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention 5 mars 2009 30 mai 2006 à 18:17
PS : et puis c'est vrai qu'a developper, sa doit pas etre de tout repos ce genre de code ... lol ... et je ne pense meme pas a la maintenance ... :p :p
cs_jean84
Messages postés449Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention 5 mars 2009 30 mai 2006 à 18:15
lol... je crois que le tour de la question a ete fait, je suis d'accord avec tout le monde ici present, l'intention est certe louable mais beaucoup trop lourde a deployer ... et puis, d'un point de vue plus personnel, les regex c'est super utile quand on veut faire une verification draconienne (pas sur de l'orthographe la ... :p ) en ecrivant relativement peut, c'est ce qui m'a pousse a apprendre les regex. Et puis les rfc c'est sympa, mais sa reste quand meme dans la pratique des projets en developpement constant, donc mieux vaut se fier a ses besoins reels.
Exemple : moi sur mon site je n'accepte pas les adresse genres #+^-$`&%_=|/|_?=!§{}@mail.com tout simplement parce qu'elles ne sont pas accepte sur les autres sites -cf Frankie-. C'est contraignant mais pour esperer (on est jamais sur) avoir une bonne adresse, faut suivre le mouvement (malheureusement .. )
@++ et bon coding !!
coockiesch
Messages postés2268Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention13 septembre 20134 28 mai 2006 à 22:09
C'est pas le genre de code qui, quand on le met dans un notepad aux bonnes dimensions, représente une tête de Mickey? :-D
Trop bourrin pour moi, j'en reste à ma regexp de base! :)
@++
R@f
frankie_73
Messages postés4Date d'inscriptionsamedi 29 avril 2006StatutMembreDernière intervention24 mai 2006 22 mai 2006 à 16:14
J'ai essayé de m'ouvrir un compte hotmail #+^-$`&%_=|/|_?=!§{}@hotmail.com pour voir, mais ca n'a pas marché ça dit:
"Les adresses de messagerie doivent commencer par une lettre. Elles ne peuvent contenir que des lettres, des chiffres, des points (.), des tirets (-) et des traits de soulignement (_). Tapez une autre adresse de messagerie."
je suis vraiment désolé, j'aurais vraiment aimé avoir #+^-$`&%_=|/|_?=!§{}@hotmail.com comme adresse personelle...
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 22 mai 2006 à 11:00
Je me range à l'avis d'Antho : l'intention est louable, de vouloir se rapprocher de la RFC, mais en pratique...ce n'est pas une bonne idée, pour les raisons qu'il cite.
Bon après, je ne vais pas me pencher sur ton expression, mais j'ai dans l'idée que tu t'y es mal pris. Il me parait curieux que tu aies besoin de tout ça pour écrire ton motif, il y a bcp de redondances, à l'oeil nu (au microscope chais pas...).
TheSin
Messages postés331Date d'inscriptionmardi 12 novembre 2002StatutMembreDernière intervention10 février 2009 22 mai 2006 à 09:25
moi ce que j'aime bien dans l'expression c'est tout les \\t \\r et \\n alors qu'un simple flag aurait suffit, et paf ça fait déjà des caractères en moins ;-)
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 22 mai 2006 à 09:03
Oups, je n'avais pas lu ton comment jusqu'au bout :p si ce code n'est pas de toi pas grave, j'vais quand même essayer de l'améliorer pour voir..
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 22 mai 2006 à 08:53
La regex est épouvantable je trouve aussi..
J'vois les mêmes assertions répétées au moins 15 fois dedans.. les échappements me paraissent hyper lourds, je ne sais pas quelle version de preg_* correspond à quelle version de la bibliothèque PCRE, mais sur certains passages, autant utilise \Q ... \E (et de toute facon y'a des backslashes inutiles à priori)
Les imbrications de parenthèses sont assez moches, j'suis persuadé que ca peut se faire plus simplement, faudrait que je regarde cette RFC pour essayer de pondre un truc plus petit et qu'on compare :D
T'as du bien te prendre la tête pour écrire ca :D
steve6000
Messages postés61Date d'inscriptionvendredi 22 août 2003StatutMembreDernière intervention23 septembre 2006 22 mai 2006 à 01:12
themioux
Messages postés45Date d'inscriptiondimanche 29 mai 2005StatutMembreDernière intervention14 avril 2011 21 mai 2006 à 17:23
Eh ben, ca c'est de l'expression régulière... Moi qui suis fâchée avec elles...
En tout cas, cette source est toujours utile pour qui veut vérifier une adresse email aux normes
(tiens je vais m'ouvrir #+^-$`&%_=|/|_?=!§{}@mail.com :D)
cs_janhsh
Messages postés31Date d'inscriptionlundi 6 novembre 2000StatutMembreDernière intervention24 janvier 2015 21 mai 2006 à 15:42
Je sais, d'un point de vue écriture, c'est épouvantable?
Apparemment,l'exécution est très rapide (voir fichier exemple) mais je n'ai pas vraiment eu l'occasion de l'utiliser ni de faire des tests approfondis.
@+
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 21 mai 2006 à 15:32
Question simple : à quoi ça sert concrètement ? Parce que la protection absolue n'existe pas. Autant faire une vérification simple qui ne bouffera pas tout le temps processeur au moindre appel de la page. N'importe qui pourra de toute façon entrer n'importe quel mail bidon (ou qui deviendra bidon).
aaaaaa@bbbbb.fr et hop fini... si t'envoies une confirmation par mail bah pas de problème tu crées un mail sur jetable.org et hop au bout de X heures l'alias saute ce qui fait que le mail devient bidon... bref de toute façon on pourra toujours trouver une parade à ce genre de trucs.
momoxe
Messages postés71Date d'inscriptionjeudi 18 novembre 2004StatutMembreDernière intervention12 août 2006 21 mai 2006 à 15:18
Euh...
Comment dire?
Ca doit être assez lourd pour le serveur tout de même non?
@+
15 mai 2009 à 20:50
http://www.expreg.com/expreg_article.php?art=verifmail
voir en fin de page...
2 août 2006 à 09:57
1 août 2006 à 15:02
http://www.pcre.org/
1 août 2006 à 14:56
Vous savez si il existe des lib(sdk) utilisant les regex de type pcre pour le C++ ?? j'ai essaye de faire mon moteur mais j'ai mechament galerer... j'en suis encore loin, voir meme tres loin ...
si quelqu'un avait des infos la dessus, je prend !! Merci et @++
1 août 2006 à 14:52
Et sous IIS .. je n'ose y penser .. peut etre une nouvelle faille ?? lol.. allez j'arrete
@++
1 août 2006 à 14:20
1 août 2006 à 13:29
Aucun risque avec ce code. Si ce n'est de tuer le serveur PHP à la tâche pour executer ce truc ;-)
1 août 2006 à 12:08
Je sais pas si ce truc est vraiment rfc compliant, si ca marche bien, mais essayez tout de même de pas avoir le nez collé à l'écran hein..
1 preg_match, 1 chaine entre simple quotes, 2 echo()... Y'a pas de quoi se cacher sous la table si ?
1 août 2006 à 11:21
En fait je suis plus de l'avis de coockiesch, je suis persuade que sa cache un dessin en ASCII ... ^^
@++
29 juil. 2006 à 17:23
3 juil. 2006 à 11:42
http://abcdrfc.free.fr/rfc-vf/rtf/rfc2822.rtf
3 juil. 2006 à 10:43
MSG - Le Format des Messages de l'Internet
"La spécification du format des messages, utilisé par exemple pour interpréter le contenu d'un e-mail. Cette RFC est obsolète, remplacée par la RFC 2822 dont une traduction en Français est disponible."
J'espère qu'ils n'ont rien mofidié en ce qui concerne les adresses e-mail... En tout cas, bon courrage pour la faire évoluer ton expression...
30 mai 2006 à 18:17
30 mai 2006 à 18:15
Exemple : moi sur mon site je n'accepte pas les adresse genres #+^-$`&%_=|/|_?=!§{}@mail.com tout simplement parce qu'elles ne sont pas accepte sur les autres sites -cf Frankie-. C'est contraignant mais pour esperer (on est jamais sur) avoir une bonne adresse, faut suivre le mouvement (malheureusement .. )
@++ et bon coding !!
28 mai 2006 à 22:09
Trop bourrin pour moi, j'en reste à ma regexp de base! :)
@++
R@f
22 mai 2006 à 16:14
"Les adresses de messagerie doivent commencer par une lettre. Elles ne peuvent contenir que des lettres, des chiffres, des points (.), des tirets (-) et des traits de soulignement (_). Tapez une autre adresse de messagerie."
je suis vraiment désolé, j'aurais vraiment aimé avoir #+^-$`&%_=|/|_?=!§{}@hotmail.com comme adresse personelle...
22 mai 2006 à 11:00
Bon après, je ne vais pas me pencher sur ton expression, mais j'ai dans l'idée que tu t'y es mal pris. Il me parait curieux que tu aies besoin de tout ça pour écrire ton motif, il y a bcp de redondances, à l'oeil nu (au microscope chais pas...).
22 mai 2006 à 09:25
22 mai 2006 à 09:03
22 mai 2006 à 08:53
J'vois les mêmes assertions répétées au moins 15 fois dedans.. les échappements me paraissent hyper lourds, je ne sais pas quelle version de preg_* correspond à quelle version de la bibliothèque PCRE, mais sur certains passages, autant utilise \Q ... \E (et de toute facon y'a des backslashes inutiles à priori)
Les imbrications de parenthèses sont assez moches, j'suis persuadé que ca peut se faire plus simplement, faudrait que je regarde cette RFC pour essayer de pondre un truc plus petit et qu'on compare :D
T'as du bien te prendre la tête pour écrire ca :D
22 mai 2006 à 01:12
function mailcheck($mail) {
$atom = '[-a-z0-9!#$%&\'*+/=?^_`{|}~]';
$domain = '([a-z]([-a-z0-9]*[a-z0-9]+)?)';
$regex = '^'.$atom.'+'.'(\.'.$atom.'+)*'.'@'.'('.$domain .'{1,63}\.)+'.$domain.'{2,63}$';
if (eregi($regex, $mail)) { return true; }
else { return false; }
}
21 mai 2006 à 17:23
En tout cas, cette source est toujours utile pour qui veut vérifier une adresse email aux normes
(tiens je vais m'ouvrir #+^-$`&%_=|/|_?=!§{}@mail.com :D)
21 mai 2006 à 15:42
Apparemment,l'exécution est très rapide (voir fichier exemple) mais je n'ai pas vraiment eu l'occasion de l'utiliser ni de faire des tests approfondis.
@+
21 mai 2006 à 15:32
aaaaaa@bbbbb.fr et hop fini... si t'envoies une confirmation par mail bah pas de problème tu crées un mail sur jetable.org et hop au bout de X heures l'alias saute ce qui fait que le mail devient bidon... bref de toute façon on pourra toujours trouver une parade à ce genre de trucs.
21 mai 2006 à 15:18
Comment dire?
Ca doit être assez lourd pour le serveur tout de même non?
@+