Nous allons passer directement à la réponse courte et nous nous occuperons ensuite de l'explication longue et compliquée.

Tout simplement non.

J'entends les développeurs et les défenseurs du diable qui s'interrogent sur notre refus catégorique de la validation des e-mails par regex, ce qui nous amène à nous demander pourquoi elle existe.

Nous ne nions pas qu'il puisse s'agir d'un outil utile, et il s'agit certainement d'un petit kit astucieux pour empêcher les utilisateurs d'ajouter n'importe quel texte dans un formulaire ou un autre support exécutable. À un moment donné, la regex d'email avait son rôle à jouer dans la façon dont nous recueillons les données d'email.

Mais maintenant ? En accord avec les technologies et les normes actuelles ?

Nous disons qu'il a fait son temps.

Si vous voulez vous assurer que vous obtenez des adresses électroniques propres qui ne vont pas perturber votre marketing par courriel, vos taux de rebond, vos scores de délivrabilité, et toutes les choses dont vous savez que vous avez besoin pour maintenir vos indicateurs élevés et vos conversions, alors la fonction regex n'est pas la solution.

Qu'est-ce qu'un regex de validation d'email ?

Regex est l'abréviation d'expression régulière ; c'est un terme utilisé dans divers langages de codage. Le terme Regex, ou expressions régulières, désigne des chaînes de texte codées conçues pour correspondre à des motifs trouvés dans d'autres chaînes.

Ils peuvent s'avérer très pratiques lorsqu'un utilisateur doit faire correspondre une chaîne de caractères à un type de motif particulier pour vérifier que les informations fournies semblent correctes. Pensez aux numéros de téléphone, aux codes postaux, aux dates et, bien sûr, à l'élément le plus important qui nous préoccupe : les adresses électroniques.

Avec un motif simple, une chaîne de caractères exacte peut être mise en correspondance avec un ensemble de règles. Lorsque les motifs simples deviennent plus compliqués, l'expression rationnelle devient moins efficace et plus susceptible de donner de mauvais résultats.

Cela semble bon jusqu'à présent - alors, quel est le problème avec la validation des emails par regex ?

Aussi pratique que soit l'outil regex, il ne couvre pas les vérifications dont vous avez besoin. Jetez un coup d'oeil à ceux-ci :

[email protected]
[email protected]
[email protected]
[email protected]

Supposons que vous repériez l'un des éléments ci-dessus comme ajout à votre liste d'adresses électroniques ; vous les signaleriez immédiatement (ou vous le devriez !). Vous ne croiriez pas qu'il s'agit d'entrées valides de personnes réelles montrant un intérêt pour vos produits et services.

La validation des emails par Regex le ferait, cependant. Ça les laisserait tous passer.

Pourquoi ? Parce que ces adresses manifestement fausses suivent quand même les modèles que ses règles visent à confirmer.

Ça n'a pas l'air si intelligent maintenant, n'est-ce pas ?

C'est trop restrictif

Bien que les exemples précédents nous paraissent manifestement faux, certains formats de courrier électronique comportent beaucoup plus de caractères spéciaux que ce que nous avons l'habitude de voir.

Dans sa forme la plus simple, une adresse électronique suit le format suivant :

nom d'utilisateur@domaine

Les adresses électroniques sont construites en trois sections :

  • La partie locale - généralement un nom d'utilisateur ou un rôle professionnel
  • Le caractère @
  • Le domaine, y compris un TLD (Top Level Domain) valide.

Si c'était tout ce que le code devait rechercher, alors une vérification regex typique en javascript empêcherait de nombreux mauvais contacts de se retrouver dans nos listes.

En général, nos adresses électroniques peuvent inclure les caractères suivants :

  • Chiffres : 0 à 9
  • Lettres minuscules et majuscules : de a à z et de A à Z
  • Caractères spéciaux supplémentaires : !#$%&'*+-/=?^_`{|}~
  • Le caractère point [.] : mais pas comme premier ou dernier caractère, ni utilisé consécutivement.

Si quelqu'un s'inscrivait à votre liste de diffusion avec l'un ou l'autre de ces caractères spéciaux, la plupart d'entre nous se demanderaient si quelque chose ne va pas, et nous aurions tort - ils sont tous autorisés par la convention actuelle.

Regex ne vérifie rien d'autre que la syntaxe.

Les développeurs ne s'intéressent peut-être qu'à l'obtention d'adresses d'apparence valide via un formulaire, mais ce n'est pas notre cas. Nous avons besoin de savoir :

  • Le domaine existe-t-il ?
  • Existe-t-il un enregistrement MX prouvant que le domaine a un serveur de messagerie ?
  • L'adresse de courriel a-t-elle un compte de courriel fonctionnel ?

Toutes ces questions qui obtiennent un "non" obtiendront un "non" catégorique de notre part, en tant que spécialistes du marketing. Regex ne vérifie rien de tout cela - seul un outil de validation d'email dédié peut faire apparaître ces drapeaux rouges.

Il ne repère pas les adresses temporaires et jetables.

En tant que spécialistes du marketing par e-mail, nous savons pertinemment que de nombreux utilisateurs créent de faux comptes temporaires pour profiter d'une offre, d'une promotion ou d'une autre situation. C'est un moyen facile d'éviter d'encombrer leurs comptes de messagerie existants ou de divulguer des informations personnelles qu'ils ne souhaitent pas.

Il est facile de créer une adresse électronique temporaire ou jetable comme solution ponctuelle. Ces adresses disparaissent souvent dans les 10 ou 15 minutes qui suivent leur création, ce qui les rend extrêmement utiles.
Regex ne les vérifie pas. Les adresses électroniques temporaires et jetables passent tous les tests de validation Regex.

Comment mettre en place un javascript de regex d'email ?

Si vous êtes un développeur de base, vous n'aurez probablement pas besoin de notre connaissance de base du sujet pour savoir comment faire, mais pour ceux d'entre vous qui ont une certaine expérience du codage, cela devrait ressembler à quelque chose comme ceci :

fonction ValidateEmail(inputText)

{

var mailformat = [a-z0-9!#$%&’*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&’*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

if(inputText.value.match(mailformat))

{

alert("Ce n'est pas une adresse électronique valide") ;

renvoyer la fausse ;

}

}

La partie qui fait le gros du travail est le var mailformat ligne. L'exécution et les caractères de cette longue ligne de code définissent ce qui est autorisé et ce qui ne l'est pas.

Tu peux repérer les choses simples : a-z, A-Z, 0-9et ensuite les caractères spéciaux dans la première section locale. Le site +@ indique ensuite le séparateur local et le séparateur de domaine. Après le @, nous avons un autre ensemble d'instructions sur ce qui est autorisé pour la section du domaine.

Si vous souhaitez avoir un aperçu plus approfondi de ce qu'il faut pour mettre en œuvre un validateur regex, rendez-vous sur abstract. Ils ont un très bon guide sur ce qu'il faut faire et sont des experts en ce qui concerne toutes sortes d'ajouts et d'inclusions d'API.

Si un travail vaut la peine d'être fait, il vaut la peine d'être bien fait, alors validez vos listes de la meilleure façon possible.

Il n'y a qu'un seul moyen de s'assurer que vos listes d'adresses électroniques sont dans les meilleures conditions, et c'est d'utiliser un outil de validation d'adresses électroniques dédié, tel que Bouncer.

La validation Regex peut laisser entrer de fausses adresses électroniques dans vos listes de diffusion et bloquer les adresses valides. Lorsqu'il s'agit d'ajouter une méthode d'authentification à vos formulaires en ligne ou à vos méthodes de collecte de données, nous vous suggérons d'autres formes de validation plus robustes.

En fin de compte, l'utilisation d'une plateforme comme Bouncer est de loin le meilleur moyen de garder vos listes propres et saines, de réduire vos taux de rebond, d'améliorer votre délivrabilité et de maintenir votre score d'expéditeur au plus haut niveau.

FAQ sur les expressions rationnelles dans les messages électroniques

Qu'est-ce qu'une simple expression rationnelle pour la validation d'un courriel ?

Une simple expression rationnelle (regex) pour la validation des courriels est une séquence de caractères qui définit un modèle de recherche pour les adresses électroniques. Elle peut être utilisée pour vérifier si une chaîne de caractères correspond au format standard d'une adresse électronique. Toutefois, il est important de noter qu'une simple expression rationnelle peut ne pas prendre en compte toutes les adresses électroniques non valides et peut laisser passer certains formats d'adresses électroniques non standard.

Comment les expressions rationnelles permettent-elles de filtrer les adresses électroniques non valides ?

Email regex est utilisé pour faire correspondre la chaîne d'entrée (l'adresse électronique saisie par un utilisateur) à un format spécifique. Si l'adresse électronique ne correspond pas à ce format, elle est considérée comme invalide. Cela permet d'éviter les fautes de frappe, de garantir la cohérence des données et de se protéger contre certains types d'attaques par injection.

Qu'est-ce qu'un caractère d'espacement dans le contexte d'une expression rationnelle de courrier électronique ?

Dans les expressions rationnelles de courrier électronique, un caractère d'espacement désigne tout caractère utilisé pour représenter des espaces vides, comme les espaces, les tabulations ou les sauts de ligne. Dans le contexte des adresses électroniques, les caractères d'espacement ne sont généralement pas autorisés et leur présence rendrait une adresse électronique invalide.

Qu'est-ce qu'une expression rationnelle complexe ?

Une expression rationnelle complexe pour le courrier électronique est une expression régulière plus détaillée et plus précise utilisée pour la validation du courrier électronique. Elle peut prendre en compte divers aspects des adresses électroniques, tels que les noms de domaine, les caractères non latins et les règles spécifiques relatives à l'emplacement de certains caractères. Si elle permet une validation plus complète, elle peut aussi être plus difficile à mettre en œuvre et à maintenir.

Comment les expressions rationnelles de courrier électronique gèrent-elles les caractères non latins et l'Unicode ?

La gestion des caractères non latins et de l'Unicode dans les expressions rationnelles de courrier électronique peut être complexe. Certains systèmes de messagerie électronique autorisent l'utilisation d'Unicode ou d'adresses électroniques non latines, mais leur prise en charge n'est pas universelle. Une expression rationnelle complexe peut inclure des classes de caractères pour correspondre aux caractères non latins, mais il est essentiel de comprendre les exigences et les contraintes spécifiques du système de messagerie avec lequel vous travaillez.

Quel est le rôle des classes de caractères dans les expressions rationnelles de courrier électronique ?

Les classes de caractères dans les expressions rationnelles de courrier électronique définissent un ensemble de caractères qui peuvent correspondre à n'importe quel caractère de la chaîne d'entrée. Par exemple, la classe de caractères [a-z] correspond à toutes les lettres minuscules anglaises. Les classes de caractères peuvent être utilisées pour spécifier les caractères valides pour les différentes parties d'une adresse électronique.

Quelles sont les limites des expressions rationnelles pour la validation des courriels ?

Bien que les expressions rationnelles puissent détecter de nombreuses erreurs courantes dans les adresses électroniques, il ne s'agit pas d'une méthode de validation complète. Certaines adresses non valides peuvent encore passer la vérification par regex, et certaines adresses valides peuvent échouer, en particulier si elles utilisent des formats ou des caractères moins courants. Pour une validation complète des courriels, il est souvent recommandé d'utiliser des services de validation des courriels ou d'envoyer un courriel de confirmation à l'adresse saisie.

Pour une vérification approfondie de l'e-mail, optez pour Bouncer.