TESTER LA VALIDITÉ D'UN E-MAIL

tiptep Messages postés 2 Date d'inscription dimanche 23 décembre 2001 Statut Membre Dernière intervention 23 décembre 2001 - 23 déc. 2001 à 15:43
 Utilisateur anonyme - 9 août 2006 à 21:09
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/12782-tester-la-validite-d-un-e-mail

Utilisateur anonyme
9 août 2006 à 21:09
hmm, j'ai oublié de demander si dans le code actuelle les site en ".co.uk" ou "fr.st" passe ?
Utilisateur anonyme
9 août 2006 à 21:02
coucou747 il est tout de même rare de voir des email avec les caractères {, } et + n'est-ce pas ?
La seul fois ou jai du utiliser les caractères { et } c'était pour l'envoie d'un formulaire par mail avec un code entre {} avant le mail du destinataire pour que le client de messagerie comprenne qu'il devait analyser l'email et y extraire les infos préformaté... (si c'est pas clair faut le dire ^^).

Donc pour un site basic on peut eventuellement ce passer de ces caractère (surtout que pour les grosse firms comme microsoft hotmail, yahoo!, etc... ce genre de caractère ne sont pas accepté si je ne me trompe pas (j'ai un doute du coup ^^).
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008
26 mars 2006 à 20:03
pour ceux aukel sa ne fonctionne pas
particulièrement ceux ki ont un fournisseur d 'accès free
et k ils ont des msg d erreur qui comporte des remarques du style

"Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in ..."

il faut rajouter dans mail.php dansla page qui envoie l email
au tout début de la page :

"ini_set ("SMTP","smtp.free.fr");"
(si vous avez un autre opérateur ke free,remplacer par votre opérateur )

et la sa devrai fonctionner
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
12 sept. 2005 à 21:05
faux, une adresse mail peut avoir les caractères : {, } et +....
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
26 janv. 2005 à 18:12
Histoire de raccourcir le code, je propose simplement:

function CheckEMail($imail) {
return ($imail!="") && (preg_match("/^[-a-z0-9\._]+@[-a-z0-9\.]+\.[a-z]{2,4}$/i", $imail));
}

Ensuite, on traite le message d'erreur comme on veut. En ce qui concerne l'histoire de DNS, merci de rajouter une condition supplémentaire avec &&.
cresus18 Messages postés 35 Date d'inscription dimanche 20 juillet 2003 Statut Membre Dernière intervention 13 février 2008 1
14 mars 2004 à 21:27
Je trouve ce script très pratique, ca m'aura permis d'approfondir les expressions régulières qui sont vraiment quelque chose d'utile.

Mais je pense que pour les adresses email, il y a beaucoup d'hébergeurs qui proposent ce service et qui possèdent leur propre structure d'adresse. Certes elles se ressemblent, mais je pense qu'il n'y a vraiment que la structure xxx@xxx.xxx qui permettent de ne pas oublier les autres et qu'il faut éviter de rajouter des contraintes.

De plus il existe une source pour aller tout de suite voir auprès de l'hébergeur si l'utilisateur existe vraiment à cette adresse : http://www.phpcs.com/code.aspx?ID=21070


Par rapport à la source de romuald, je rajouterai juste que l'on peut trouver le caractère "_" avant le "@" et cette structure est possible pour les adresses Yahoo! qui est un hébergeur plutot connu.
tiptep Messages postés 2 Date d'inscription dimanche 23 décembre 2001 Statut Membre Dernière intervention 23 décembre 2001
23 déc. 2001 à 15:43
pour le format de l'adresse entrée, on peut aussi utiliser ces fourchettes-là :

^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$
Rejoignez-nous