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

Décembre 2016



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).

A voir également :

Ce document intitulé «  PHP - Vérifier le domaine d'une adresse mail  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.