Il existe plusieurs méthodes pour vérifier le format d'une adresse mail.
Vous pouvez tout d'abord utiliser les expressions régulières (REGEX) pour valider et vérifier la bonne forme d'une adresse e mail.
Remarque : Cela ne permet pas de vérifier que l'adresse existe, mais seulement de vérifier qu'elle se compose d'une chaine de caractères correcte.
function check_email_address($email) {
return (!preg_match( "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$^", $email)) ? false : true;
}
Voici comment utiliser cette fonction :
$email = "test@test.com";
if (check_email_address($email) == false){echo "incorrect";}
else echo "correct";
Vous pouvez également utiliser une fonction native proposée par PHP.
Il s'agit de la fonction filter_var() qui filtre une variable avec un filtre spécifique. Le filtre qui doit être utilisé pour vérifier une adresse mail est FILTER_VALIDATE_EMAIL.
$email = "test@test.com";
if (filter_var($email, FILTER_VALIDATE_EMAIL))
{
echo "correct";
}
else
{
echo "incorrect";
}
Remarque : Le filtre FILTER_VALIDATE_EMAIL valide l'adresse e-mail selon la syntaxe défini par la RFC 822, à l'exception des commentaires et du remplissage par des espaces qui ne sont pas supportés, ce qui peut permettre de by-pass cette fonction. Préférez donc une solution du type REGEX à filter_var().