Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

VÉRIFIER SI UNE ADRESSE E-MAIL EST VALIDE ET EXISTE RÉELLEMENT


Information sur la source

Description

La plus part du temps, on se contente de vérifier si l'adresse contient des caractères devant, un @, des caractères derriere, un point et encore au moins 2 caractères après

Mais les petits malins on vite fait de contourner le systeme en tapant osfsdf@lsdkflsdkf.com

Mais voici un code qui, en plus de vérifier la syntaxe, vérifie auprès d'un serveur, que l'adresse existe belle et bien
 

Source

  • <?php
  • function checkEmail($email)
  • {
  • if(eregi("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]", $email))
  • {
  • return FALSE;
  • }
  • list($Username, $Domain) = split("@",$email);
  • if(getmxrr($Domain, $MXHost))
  • {
  • return TRUE;
  • }
  • else
  • {
  • if(fsockopen($Domain, 25, $errno, $errstr, 30))
  • {
  • return TRUE;
  • }
  • else
  • {
  • return FALSE;
  • }
  • }
  • }
  • ?>
<?php
function checkEmail($email) 
{
   if(eregi("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]", $email)) 
   {
      return FALSE;
   }

   list($Username, $Domain) = split("@",$email);

   if(getmxrr($Domain, $MXHost)) 
   {
      return TRUE;
   }
   else 
   {
      if(fsockopen($Domain, 25, $errno, $errstr, 30)) 
      {
         return TRUE; 
      }
      else 
      {
         return FALSE; 
      }
   }
}
?> 

Conclusion

Pour utiliser cette fonction, il suffit de l'appeler comme ceci

<?php
if(checkEmail(johndoe@example.com) == FALSE)
{
   echo "L'adresse E-mail n'est pas valide";
}
else
{
   echo "L'adresse E-mail est valide";
}
?>
 

Commentaires et avis

signaler à un administrateur
Commentaire de schtroumpfNormand le 11/09/2004 09:36:26

Bonjour, j'ai juste un petit doute sur cette fonction :
Je lis dans manuelphp.com ca sur : getmxrr()

Note

Cette fonction ne doit pas être utilisée à des fin de vérification d'adresse. Seuls le serveur de mail trouvé dans les enregistrements DNS sont retournés. Suivant la RFC 974 lorsqu'aucun serveur de mail n'est listé, hostname doit être utilisé comme serveur de mail, avec la priorité 0 .
donc ca sous entend quoi ? si le serveur mail est pas listé mais que l'adresse mail est valide on aura tjrs un retour false non ? si j'ai bien compris si je dis n'importe quoi ne pas hésitez a me corriger je suis preneur de toute remarques dans la limite du respect (je suis débutant) merci et sinon cette fonction m'intérese car j'ai développé un module de news letter et j'ai des adresses qui sont fausses merci ;-)) @ ++

signaler à un administrateur
Commentaire de Kirua le 11/09/2004 11:04:37

tu ne devrais pas fermer ton fsockopen? je sais que php le fait tt seul comme un grand, mais c'est qd même plus propre. d'autant plus que php évolue vers de plus en plus de propreté/rigueur, alors je ne serais pas étonné que ds une version future ils annoncent qu'ils ne ferment plus les flux eux-même.

signaler à un administrateur
Commentaire de pkostov le 13/09/2004 12:53:51

Et aussi, même si on arrive à se connecter au serveur ça ne veux pas forcément dire que la boîte existe ...

signaler à un administrateur
Commentaire de olid le 13/09/2004 14:27:34

Ce script, meme si pas toujours fiable, est qd meme utile pour des verifs manuelles par le webmaster.

Sinon, la meilleur technique pour les newsletter (marre de gaspiller de BP pour des fausses adresses)... Tu planque un WebBug dans tes newsletters... Si jamais lu (et ou aucune visite sur le site) au bout de 6 mois, direct à la poubelle :op

signaler à un administrateur
Commentaire de Arkko le 17/10/2004 03:47:36

Je n'ai pas testé mais je crois qu'elle ne fonctionne pas dans tout les cas, prenons exemple des mails fournir pas Ulimit, ils sont du genre : nick@fr.st    je ne pense pas que fr.st soit considéré comme un serveur de mail, mais bon: comme j'ai dit, jai pas testé...

tcho Arkka

signaler à un administrateur
Commentaire de hackademius le 06/04/2005 15:09:14

bah le plus simple pour verifier qu'une adresse email existe bien , c'est d'envoyer un mail a cette adresse avec un lien dedans, lien qui ménera vers une page php qui enregistrera l'adresse comme valide.
style de mail de confirmation koi , tout simplement , si l'utilisateur a l'habitude de metre  vfvfd@vfd.com  , bah il aura pas de mails , donc pas de lien , donc pas de compte ou pas d'autre chose , voila tout.
nan ? c'est pas plus simple ?

signaler à un administrateur
Commentaire de feneste le 29/12/2006 23:40:17

C'est vrai que c'est plus simple de faire un mail de confirmation.

Sinon il ne faut pas oublier de mettre un @ devant fsockopen dans ton script car le serveur affiche une erreur si la fonction retourne false.

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,312 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.