Jump to content
Sign in to follow this  
amateur44

Script email valide

Rate this topic

Recommended Posts

Bonjour,

Connaissez-vous un javascript qui puisse éviter de faire passer les adresses du genre : hello_AT_yahoo9.com ? ou tout autre type d'adresse mail erronée ?

Merci,

Edited by amateur44

Share this post


Link to post
Share on other sites

Techniquement, cette adresse est valide : rien n'empêche à un site de s'appeler yahoo9.com (mais ils auraient des problèmes, certes).

Il faudrait pour ton script, posséder une base de données de tous les noms de domaines existants, pour pouvoir valider un email. C'est bien évidemment impossible.

Ce que tu peux faire, par contre, c'est envoyer un email à la personne pour qu'il puisse valider son compte. Comme cela tu es sûr que l'adresse e-mail existe.

Share this post


Link to post
Share on other sites

Tu peux, en plus d'une vérification par expression régulière, vérifier la présence de MX sur le domaine de l'adresse email fournie.

Le script suivant (source: http://www.commentcamarche.net/forum/affic...sse-mail-en-php ), vérifie en plus de cela que le serveur de mail est bien accessible, selon moi il va un peu trop loin car le serveur peut être temporairement in oignable sans pour autant que l'adresse soit erronée.

function checkEmail($email) {
// checks proper syntax
if(preg_match("/^( [a-zA-Z0-9] )+( [a-zA-Z0-9\._-] )*@( [a-zA-Z0-9_-] )+( [a-zA-Z0-9\._-] +)+$/" , $email)) {
// gets domain name
list($username,$domain)=split('@',$email);
// checks for if MX records in the DNS
if(!customCheckDnsrr($domain)) {
return false;
}
// attempts a socket connection to mail server
if(!fsockopen($domain,25,$errno,$errstr,30)) {
return false;
}
return true;
}
return false;
}

function customCheckDnsrr($host,$recType='') {
if(!empty($host)) {
if($recType=='') $recType="MX";
exec("nslookup -type=$recType $host",$output);
foreach($output as $line) {
if(preg_match("/^$host/", $line)) {
return true;
}
}
return false;
}
return false;
}

Marc

Share this post


Link to post
Share on other sites

Tester les mx n'est pas la bonne solution, les serveurs de messageries sont de plus souvent installés en mode silencieux, donc même si l'adresse existe, ils ne répondrons pas, et ce pour limiter le spam

Share this post


Link to post
Share on other sites
Tester les mx n'est pas la bonne solution, les serveurs de messageries sont de plus souvent installés en mode silencieux, donc même si l'adresse existe, ils ne répondrons pas, et ce pour limiter le spam

Pardon ! Qu'est ce que vous voulez dire par "mode silencieux" !!!

Je suis désolé de vous contre dire mais s'il n'y a pas de MX c'est que l'adresse n'est pas bonne ça c'est une certitude. L'inverse par contre n'est pas vrai, c'est pas parce qu'il y a un MX que l'adresse est forcement légitime.

D'autre part, on ne parle pas de contrôler les serveurs de mail, mais simplement de vérifier si les DNS du domaine a testé sont configurés pour accueillir des emails.

Marc

Share this post


Link to post
Share on other sites

A oui autant pour moi, j'ai lu de travers, je n'avais pas fait attention que le test s'arrêtait à la configuration du domaine

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...