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

Dernière mise à jour le 5 novembre 2009 à 12:50 par marlalapocket
Publié par Jeff
Il existe plusieurs manières de déterminer si une variable contient une adresse email valide. Ces techniques ne vérifient pas si l'adresse email existe bien mais elles déterminent si la chaine contenue dans une variable respecte bien le format d'une adresse email.



I) En utilisant un filtre


En utilisant une fonction de la famille des filtres, vous pouvez vérifier qu'une adresse email est valide.
Par exemple filter_var()
Exemple:
if(filter_var($email, FILTER_VALIDATE_EMAIL)){
    //L'email est bonne
}

II) Grâce aux expressions régulières


Grâce aux expressions régulières, il est possible de vérifier si une adresse email, saisie par exemple via un formulaire, est valide.

Voici une fonction qui vérifie si une chaine de caractères est seulement une adresse e mail valide.
function VerifierAdresseMail($adresse)
{
   $Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
   if(preg_match($Syntaxe,$adresse))
      return true;
   else
     return false;
}

Exemple d'utilisation


Après avoir récupéré le champ "adresse" d'un formulaire :
$adresse=htmlentities($_POST['adresse']);
if(VerifierAdresseMail($adresse))
  echo '<p>Votre adresse est valide.</p>';
else
  echo '<p>Votre adresse e-mail n'est pas valide.</p>';

Explications


Les dièses sont les délimiteurs de la regex.
Le signe ^ indique que la chaine doit commencer par ce qui suit, et le signe $ indique qu'elle doit se terminer par ce qui précède.
\w est une classe abrégée qui correspond a A-Za-z0-9_. soit aux 26 lettres de l'alphabet en majuscules ou minuscules, les dix chiffres et un underscore.

Ce que fait le code


^[\w.-]+@ Commence (^) par au moins un caractère correspondant à la classe abrégée, ou un tiret, puis est suivi par un@.
[\w.-]+ un ou plus de caractères correspondant à la classe abrégée ou un tiret (c'est le nom de domaine)
\.[a-zA-Z]{2,6}$ un point, puis deux à six lettres, qui finissent la chaine (c'est la tld du nom de domaine).
Meilleures réponses pour « Vérifier le format d'une adresse mail » dans :
[PHP] Vérifier le domaine d'une adresse mail VoirDans 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....
Télécharger Email Verifier VoirFaites vérifier votre carnet d’adresse régulièrement pour éviter d’avoir de mauvaises surprises avec les adresses non valides. Email Verifier est tout simplement un outil de vérification d'adresse mail. Le processus s’effectue en...