Menu
Donnez votre avis

PHP - Vérifier le domaine d'une adresse mail

Posez votre question


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: Sous Windows, cette solution ne fonctionne qu'à partir de la version 5.3.0 de php. Pour les versions antérieures, il faut utiliser la bibliothèque PEAR::Net_Dns (bonne chance).
Jean-François Pillou

Cet article est régulièrement mis à jour par des experts sous la direction de Jean-François Pillou, fondateur de CommentCaMarche et directeur délégué au développement numérique du groupe Figaro.

En savoir plus sur l'équipe CCM

Ajouter un commentaire

Commentaires

Commenter la réponse de Dani