[PHP] Vérifier le domaine d'une adresse mail

Dernière mise à jour le 11 novembre 2009 à 21:03 par marlalapocket
Publié par kilian
Dans une adresse email, on trouve deux parties:
utilisateur@domaine

La partie domaine définit un ensemble de machines associées dans lequel on trouvera généralement un serveur qui permet d'envoyer des mails. Dans ce domaine il y a des utilisateurs. Il n'est généralement pas possible d'interroger un serveur pour savoir si l'adresse entière est valide et existe, toutefois on peut interroger un serveur DNS pour savoir si le domaine de l'adresse mail existe bien.

Ce genre de vérification limite au moins un minimum les dégâts lorsqu'un utilisateur vous soumet son adresse email.
Php possède des fonctions pour interroger un serveur DNS, il y en a une qui a l'avantage d'être simple et suffisante pour ce que l'on souhaite faire: checkdnsrr(). Elle prend en argument un nom de domaine et retourne TRUE ou FALSE selon que le domaine existe ou non.

Ainsi pour tester la validité du domaine d'une adresse, il suffit de faire:
$domain = explode('@', $email);
if (checkdnsrr($domain[1]))
	echo "Domaine de l'adresse valide";

Voici donc une vérification de validité d'une adresse mail qui peut en compléter une autre: la vérification du format de l'adresse.

NOTE: Cette solution ne fonctionne pas si php est installé sous Windows. Le cas échéant, il faut utiliser la bibliothèque PEAR::Net_Dns (bonne chance).
Meilleures réponses pour « Vérifier le domaine d'une adresse mail » dans :
[Internet] Récapitulatif MSN Voir1. INTRODUCTION 1.1. REMERCIEMENTS 2. ÉTAPE INITIALE : COMMENT CRÉER UNE ADRESSE MSN Vous disposez déjà d'une adresse mail et ne souhaitez pas en créer une nouvelle pour MSN Vous avez besoin de créer une nouvelle adresse 3. TRUCS et...
Télécharger Atomic Mail Verifier VoirLa vérification de la validité d’une adresse email par les programmes spécialisés est souvent limitée à la vérification de l’adresse SMTP. Atomic Mail Verifier est un programme avancé dans la vérification des adresses mails non valides....