Jusqu'où faut-il prendre la validation de l'adresse e-mail?

101

Je me demande jusqu'où les gens devraient aller pour valider leur adresse électronique. Mon domaine est principalement le développement Web, mais cela s'applique n'importe où.

J'ai vu quelques approches:

  • Il suffit de vérifier s'il y a un "@" présent, ce qui est tout simple, mais bien sûr, pas si fiable
  • un test regex plus complexe pour les formats de messagerie standard
  • une regex complète contre la RFC 2822 - le problème, c'est qu'une adresse électronique peut souvent être valide, mais ce n'est probablement pas ce que l'utilisateur voulait dire
  • Validation DNS
  • Validation SMTP

Comme beaucoup de gens le savent peut-être (mais beaucoup ne le savent pas), les adresses de messagerie peuvent comporter de nombreuses variations étranges que la plupart des gens ne considèrent généralement pas (voir RFC 2822 3.4.1 ), mais vous devez penser aux objectifs de votre validation: essayez-vous simplement de vous assurer qu'un message électronique peut être envoyé à une adresse ou qu'il s'agit bien de ce que l'utilisateur voulait probablement mettre (ce qui est peu probable dans de nombreux cas plus obscurs de 'adresses).

Une option que j'ai envisagée consiste simplement à donner un avertissement avec une adresse plus ésotérique tout en permettant à la requête de passer, mais cela ajoute une complexité supplémentaire à un formulaire et la plupart des utilisateurs risquent d'être confus.

Bien que la validation DNS / SMTP semble être une évidence, je prévois des problèmes lorsque le serveur DNS / SMTP est temporairement indisponible et qu'un utilisateur est incapable de s'inscrire quelque part ou que son serveur SMTP ne prend pas en charge les fonctionnalités requises.

Comment des développeurs expérimentés peuvent-ils gérer cela? Existe-t-il d'autres approches que celles que j'ai énumérées?

Edit: J'ai complètement oublié la plus évidente de toutes, envoyer un e-mail de confirmation! Merci aux personnes qui ont répondu à cette question. Oui, celui-ci est assez infaillible, mais il nécessite des tracas supplémentaires de la part de toutes les personnes impliquées. L'utilisateur doit récupérer certains messages électroniques et le développeur doit garder en mémoire les données de l'utilisateur avant même que leur validité soit confirmée.

Lauren
la source
Personnellement, j’allais avec la stratégie double regex Warn and Reject suivie d’un email pour confirmer la propriété de l’adresse.
James Snell
La grande question est de demander quel but vous demandez pour l'adresse. Par exemple, si vous envisagez d'envoyer un courrier électronique de validation à l'utilisateur, une vérification très simple devrait suffire, car l'utilisateur est vraisemblablement motivé pour donner une adresse valide.
SDsolar

Réponses:

80

Il n'existe pas de moyen fiable à 100% de confirmer une adresse électronique valide autre que l'envoi d'un courrier électronique à l'utilisateur et l'attente d'une réponse, comme dans la plupart des forums.

J'irais avec la simple règle de validation "@", puis j'enverrais un courrier électronique à l'utilisateur pour confirmer son adresse électronique.

Bien que ce soit mon opinion personnelle ... j'attends d'autres suggestions.

GateKiller
la source
6
Entièrement d'accord. Soit vous vous souciez vraiment de cette adresse, soit vous ne l'aimez pas. Je ne vois aucune raison de ne pas s'en soucier.
Benjol
3
De loin la meilleure réponse. Validez le @ puis vérifiez l’adresse (avec un email) - différence subtile ici.
billy.bob
... c'est pourquoi c'est ce que font la plupart des forums.
Dan Ray
Je suis d'accord avec @Billy Bob, qu'une simple validation suivie d'un e-mail de vérification est le moyen le plus efficace de prouver que l'e-mail est exact.
SDsolar
Une adresse e-mail «valide» peut également être adressée à la mauvaise personne; un e-mail de validation est donc le seul moyen d’en être sûr. J'en reçois quelques-uns chaque année lorsque quelqu'un saisit mal sa propre adresse e-mail pour la mienne.
axl
57

Une suggestion: ne rejetez pas les adresses contenant un +. Il est assez commun de les rejeter, mais c'est un caractère valide. Les utilisateurs de gmail peuvent utiliser [email protected] pour étiqueter et trier les messages entrants plus facilement.

Peter Burns
la source
8
+1 !!! Il semble impossible de filtrer les emails de Facebook, de tous les sites!
jnylen
Peut filtrer sans cela - il suffit d'utiliser les informations sur l'expéditeur
Casebash
1
GMail l'a récupéré d'autres serveurs de messagerie. Je crois que qmail et postfix l'ont popularisé.
23
Bien que je sois d’accord avec le sentiment, cela ne commence même pas à répondre à la question.
Bryan Oakley
29

Dans votre message, il semble que lorsque vous dites "validation SMTP", vous entendez vous connecter au serveur et essayer un RCPT TO pour voir s'il est accepté. Étant donné que vous différenciez l'envoi d'un e-mail de confirmation, je suppose que vous souhaitez le faire en ligne avec les actions de l'utilisateur. Outre les problèmes tels que les problèmes de réseau, les pannes DNS, etc., la liste grise peut causer des ravages avec cette méthode. La méthode varie, mais essentiellement, la liste grise diffère toujours la première tentative de remise au destinataire par IP de connexion. Comme je l'ai dit, cela peut varier, certains hôtes peuvent rejeter des adresses non valides à la première tentative et ne différer que des adresses valides, mais il n'existe aucun moyen fiable de résoudre les différentes implémentations par programme.

Vous ne pouvez vous assurer qu'une adresse est valide et est soumise par son propriétaire qui le souhaite vraiment pour votre application est d'envoyer un e-mail de vérification. Eh bien, tant que le spam n'est pas filtré, je suppose =).

jj33
la source
25

Une autre faiblesse de l'utilisation d'un regex pour la validation du courrier électronique est qu'il est presque impossible d'attraper tous les domaines de niveau supérieur valides tout en rejetant tous les domaines non valides.

Par exemple, l'expression de base de l'e-mail dans la réponse de Jeff Atwood:

\ b [A-Z0-9 ._% + -] + @ [A-Z0-9 .-] +. [AZ] {2,4} \ b

acceptera tout TLD de deux à quatre caractères. Ainsi, par exemple, les spams seront acceptés, mais les fichiers .museum et .travel (les deux TLD valides) seront rejetés.

Encore une raison pour laquelle il vaut mieux rechercher le @ et envoyer un courrier électronique de confirmation.

Bruce Alderman
la source
24

Avec les noms de domaine internationaux, presque tout est possible:

  • Håkan.Söderström@malmö.se
  • [email protected]
  • @ 例子. 测试 .مثال.آزمایشی

Si vous souhaitez effectuer des tests, vous devez d’abord le convertir en punycode.

Sans punycode, tout ce que vous devriez faire est de vérifier que:

  • est au moins un @
  • est au moins un caractère dans la partie locale
  • est au moins un point dans la partie du domaine
  • est au moins quatre caractères dans le domaine (en supposant que personne n'a d'adresse au tld, que le tld a au moins 2 caractères)
function isEmail(address) {
    var pos = address.lastIndexOf("@");
    return pos > 0 && (address.lastIndexOf(".") > pos) && (address.length - pos > 4);
}
certains
la source
1
Si vous voulez utiliser javascript pour convertir en punycode, vous pouvez utiliser le code de la réponse suivante: stackoverflow.com/questions/183485/…
C'est assez vrai. S'assurer que le signe @ est peut-être le seul moyen de s'assurer qu'il ressemble à une adresse électronique.
SDsolar
19

Vous feriez mieux de vérifier des choses simples comme @ et. en JavaScript, puis envoyez-leur une vérification à leur adresse e-mail. S'ils vérifient leur compte, vous avez vous-même une adresse électronique valide. De cette façon, vous savez avec certitude que vous avez une adresse de travail et vous n'avez pas à être trop autoritaire dans le formulaire.

Andrewrk
la source
C'est une excellente solution. Voici une expression rationnelle à rechercher avec un @ suivi d'un point:/.+@.+\..+/
Evan Moran
11

Utilisez un validateur open-source qui ne donne pas de faux négatifs. Aucun effort pour vous et validation robuste pour votre application.

J'ai maintenant rassemblé des cas tests de Cal Henderson, Dave Child, Phil Haack, Doug Lovell et RFC 3696. Au total, 158 adresses de test.

J'ai couru tous ces tests contre tous les validateurs que j'ai pu trouver. La comparaison est ici: http://www.dominicsayers.com/isemail

Je vais essayer de garder cette page à jour à mesure que les gens améliorent leurs validateurs. Merci à Cal, Dave et Phil pour leur aide et leur coopération dans la compilation de ces tests et la critique constructive de mon propre validateur .

Les gens devraient être conscients de l' errata contre le RFC 3696 en particulier. Trois des exemples canoniques sont en fait des adresses invalides. Et la longueur maximale d'une adresse est de 254 ou 256 caractères, et non de 320.

Dominic Sayers
la source
Le lien vers la comparaison est en baisse :(
Zero3
10

Après examen des réponses (car j’ai complètement oublié les courriels de confirmation), il me semble qu’un compromis approprié pour une solution à faible frottement consisterait à:

  1. Utilisez regex pour vérifier que l’adresse e-mail a l'air valide, et donnez un avertissement si elle est plus obscure, mais évitez de rejeter carrément.
  2. Utilisez la validation SMTP pour vous assurer que l'adresse de messagerie est valide.
  3. Si la validation SMTP échoue alors, et seulement alors , utilisez un e-mail de confirmation en dernier recours. Les e-mails de confirmation semblent nécessiter trop d'interaction en dehors de votre application pour être considérés comme présentant un faible frottement, mais ils constituent une solution de secours parfaite.
Lauren
la source
1
Comment pouvez-vous vérifier qu'un utilisateur possède l'adresse e-mail sans envoyer de confirmation? Par exemple, disons qu'ils ont saisi votre adresse e-mail. Ne seriez-vous pas ennuyé que le développeur décide de ne pas fournir de courrier électronique de confirmation et permettait donc à quiconque connaissant votre adresse de vous inscrire sur son site?
Rupert Madden-Abbott le
1
Validation SMTP? Demander au serveur si l'adresse existe? Le spam s'est débarrassé de cela il y a longtemps.
6

RegexBuddy propose les expressions régulières suivantes liées à la messagerie électronique depuis sa bibliothèque:

Adresse email (basique)

\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b

Adresse électronique (RFC 2822, simplifiée)

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

Mais j'ai tendance à être d'accord avec les réponses de Peter et SuperJoe; le seul vrai "test" est l'envoi d'un email de validation.

Jeff Atwood
la source
1
Votre vérification d'email de base échoue contre des choses comme [email protected]. Vous devriez également dire qu'une correspondance insensible à la casse est requise car vous utilisez uniquement des majuscules ASCII.
unpythonic
Pourquoi rejeter les caractères majuscules (avec la deuxième expression régulière)? Ne devrait pas être la validation de la partie locale jusqu'au MTA destinataire? À l'exception des espaces et des guillemets.
Dirk Jäckel
@dirk comme indiqué, vous appliqueriez l'indicateur "non sensible à la casse" à cette expression régulière lors de son exécution.
Jeff Atwood le
La base n'est pas bonne car il y a plusieurs TLD> 4 caractères. Je ferais juste ça min 2, pas max{2,}
EkriirkE
4

J'ai travaillé dans 4 entreprises différentes où un membre du service d'assistance s'est fait engueuler par un certain O'Malley ou O'Brien ou une autre adresse e-mail avec une apostrophe. Comme suggéré précédemment, toutes les expressions rationnelles ne captureront pas tout, mais vous épargnerez des tracas et accepterez une apostrophe sans générer d'avertissement.

-
bmb

bmb
la source
Amen à cela. Il en va de même pour le signe dièse (#), au fait.
Tomalak
2
Ce n'est pas parce que les noms des personnes ne contiennent pas de hachage qu'elles ne sont pas valables dans les adresses électroniques.
Dave Sherohman
3

Si vous souhaitez vérifier un courrier électronique (c’est-à-dire s’assurer que l’utilisateur possède l’adresse électronique), vous ne pouvez faire qu’un courrier électronique de confirmation. Là encore, beaucoup de gens ont des adresses de spam dédiées ou utilisent des services tels que OneWayMail . S'ils ne veulent pas vous donner leur adresse de messagerie réelle, ils ne le feront pas. Donc, fondamentalement, vous créez une obstruction de l'utilisateur.

S'agissant de la validation , pour s'assurer que l'utilisateur ne saisit pas involontairement une adresse e-mail erronée, c'est certainement la bonne motivation. Cependant, du moins pour les formulaires HTML (qui sont de loin le moyen le plus courant de collecter des adresses électroniques), ce n’est pas le bon instrument.

D'une part, vous ne pourrez pas reconnaître les fautes de frappe dans les "mots" de l'adresse e-mail. Vous n'avez aucun moyen de savoir que [email protected]c'est faux, uniquement sur la base du format.
Mais plus important encore, du point de vue de l'utilisateur, il n'y a qu'une seule (ou une main pleine) d'adresses électroniques que vous pourriez éventuellement vouloir entrer. Et vous êtes probablement déjà entré.
Ainsi, plutôt que d'essayer de valider une adresse, vous devez vous assurer que tous les navigateurs reconnaissent le champ de messagerie et éliminent ainsi le besoin de taper l'adresse de messagerie en premier lieu. Bien sûr, cela ne s'applique pas, si vous construisez le type de site susceptible d'être touché par des utilisateurs qui n'ont jamais entré leur adresse de messagerie dans leur navigateur auparavant. Mais je suppose que les plus petits d'entre nous sont dans une telle situation.

back2dos
la source
2

Je pense que cela dépend du contexte dans lequel vous utilisez l'e-mail. Les projets plus sérieux nécessitent une validation plus stricte, mais je pense que pour la plupart des choses, envoyer un email à l'adresse fournie avec un lien de conformation assurera la validité de l'adresse email.

Crochet
la source
2

@ Mike - Je pense qu'une partie de la raison pour laquelle les courriels de confirmation sont envoyés n'a pas seulement pour but de s'assurer de la validité de l'adresse e-mail, mais également de son accessibilité par l'utilisateur qui l'a soumise. Une personne pourrait facilement insérer une faute de frappe d'une lettre dans l'adresse électronique qui mènerait à une adresse électronique valide différente, mais il s'agirait toujours d'une erreur car ce serait la mauvaise adresse.

Yaakov Ellis
la source
2

Le regex le plus complet et le plus précis que j'ai jamais rencontré pour la validation des courriels est celui qui est documenté ici . Ce n'est pas pour les faibles de coeur; c'est assez compliqué pour qu'il soit divisé en plusieurs parties afin de faciliter l'analyse par les humains (le code exemple est en Java). Mais dans les cas où la validation est justifiée, je ne pense pas que cela s'améliorera beaucoup.

Dans tous les cas, je suggérerais que vous utilisiez des tests unitaires pour confirmer que votre expression couvre les cas que vous jugez importants. De cette façon, vous pouvez être sûr de ne pas avoir cassé une affaire qui fonctionnait auparavant.

Robert J. Walker
la source
2

Quoi que vous choisissiez, je pense que vous devez vous tromper en pensant que, dans 99% des cas, l’utilisateur sait réellement quelle est son adresse électronique. En tant que ressortissant australien, je trouve encore très occasionnellement une validation de messagerie très intelligente qui me dit que je ne peux pas avoir de domaine .com.au. Cela se produisait beaucoup plus tôt dans les premiers jours d'Internet, comme vous.

L'envoi d'un e-mail de confirmation ces jours-ci est acceptable pour les utilisateurs. Il est également utile pour l'activation et la validation de l'adresse fournie.

garous
la source
2

Sur certains sites développés dans des endroits où j'ai travaillé, nous avons toujours utilisé des courriels de confirmation. Cependant, il était étonnamment courant que les utilisateurs tapent leur adresse e-mail d’une manière qui n’aurait pas pu fonctionner, puis continuent d’attendre l’e-mail de confirmation qui ne viendrait pas. Ajouter un code ad hoc (ou, pour la partie du nom de domaine, une vérification DNS) pour avertir l'utilisateur dans ces cas pourrait être une bonne idée.

Les cas communs que j'ai vus:

  • Déposez une lettre au milieu du nom de domaine ou plusieurs autres variantes de typo simples.
  • TLD confusion (par exemple, ajouter un .brà un .comdomaine ou le supprimer .brd'un .com.brdomaine).
  • Ajout d'un www.au début de la partie locale d'une adresse électronique (je ne l'invente pas; j'ai vu plusieurs adresses électroniques du formulaire [email protected]).

Il y avait des cas encore plus bizarres; des choses comme un nom de domaine complet en tant que partie locale, des adresses avec deux @(quelque chose comme [email protected]@example.com) et ainsi de suite.

Bien sûr, la plupart d’entre elles étaient toujours des adresses RFC-822 valides, alors techniquement, vous pouvez simplement laisser le MTA les gérer. Toutefois, il peut être utile d'avertir l'utilisateur que l'adresse e-mail entrée est erronée, notamment si votre public cible ne maîtrise pas très bien l'informatique.

CesarB
la source
On dirait que le problème avec ces sites est que les utilisateurs ont été forcés de saisir des informations qu’ils ne comprenaient pas vraiment. Tous les sites ne nécessitent pas un contact par courrier électronique avec leurs utilisateurs, même si cela simplifierait les choses pour le site.
bzlm
2

Toute la validation regex dans le monde n'empêchera pas quelqu'un d'entrer une adresse email incorrecte ou fausse. C'est juste énervant, vraiment.

Kevin
la source
Avez-vous déjà essayé DeBounce Email Validation Tool ? Je suggère de jeter un oeil à ce service.
Iman Hejazi
2

Cela dépend du but. Si vous êtes un fournisseur de services Internet et que vous devez valider que les utilisateurs créent des adresses électroniques valides, optez pour la Regex qui valide par rapport à tout ce qui est possible. Si vous voulez juste intercepter les erreurs des utilisateurs, que diriez-vous du modèle suivant:

[Tous les caractères, pas d'espaces] @ [lettres et chiffres] (. [Lettres et chiffres]) où le groupe final apparaît au moins une fois.

Le RegEx pour cela semblerait quelque chose comme ceci:

[\S]+@[\w]+(.[\w-]+)+

Et puis envoyez un email de confirmation pour être sûr.

Yaakov Ellis
la source
2
Il existe une faute de frappe (sauf si vous souhaitez uniquement autoriser "w" en tant que TLD) et ne correspond pas aux domaines avec un trait d'union (-). Cela fonctionne mieux: [\ S] + @ [\ w -] + (. [\ W -] +) +
1

@ Yaakov (pourrait répondre avec une sorte de 'réponse' ici)

Je pense qu'une partie de la raison pour laquelle les courriels de confirmation sont envoyés n'a pas seulement pour but de s'assurer de la validité de l'adresse e-mail, mais également de son accessibilité par l'utilisateur qui l'a soumise. Une personne pourrait facilement insérer une faute de frappe d'une lettre dans l'adresse électronique qui mènerait à une adresse électronique valide différente, mais il s'agirait toujours d'une erreur car ce serait la mauvaise adresse.

Je suis d'accord, mais je ne suis pas sûr que cela en vaut la peine. Nous avons également des champs de confirmation à cet effet (en répétant votre adresse e-mail). Une autre situation où le type de site pourrait justifier des approches différentes.

En outre, l’envoi d’un courrier électronique de confirmation ne permet pas à l’utilisateur initial d’indiquer que l’adresse qu’il a saisie est erronée. Après ne pas avoir reçu l'e-mail de confirmation, ils peuvent simplement présumer que votre application / site est défectueux. au moins, en permettant à l'utilisateur de commencer immédiatement à utiliser son compte, il pourrait corriger son adresse de messagerie, notamment si celle-ci est affichée à un endroit suffisamment visible.

Lauren
la source
1

Chevaux de course.

Tous ceux-ci sont des systèmes de vérification de courrier électronique complets et valables en eux-mêmes, et pour un site Web donné, un sera plus approprié (ou aussi bon que nécessaire) que les autres. Dans de nombreux cas, plusieurs étapes de vérification peuvent être utiles.

Si vous développez un site Web pour une banque, vous souhaiterez en plus une vérification par courrier postal ou par téléphone.

Si vous développez un site Web pour un concours, vous voudrez peut-être n'en garder aucun - vérifiez les e-mails dans le post-traitement et si l'un d'eux échoue, c'est trop grave pour la personne qui l'a saisi - vous pouvez valoriser les performances du serveur étant donné le nombre élevé de personnes ( Concours télévisé, par exemple) visant à s’assurer que tout le monde est validé correctement en ligne.

Jusqu'où faut-il prendre la vérification de l'email?

Autant que nécessaire et justifié.

Et pas plus loin (KISS)

Adam Davis
la source
1

J'ai également vu des sites qui protègent également les personnes utilisant des sites de compartiment de courrier indésirable temporaires, tels que Mailinator ou MyTrashMail , qui contournent le message de confirmation par courrier électronique. Je ne dis pas que vous devriez les filtrer, je dis simplement.

Jodonnell
la source
De quelle manière "contourne-t-il" la confirmation par courrier électronique? Mailinator et MyTrashMail accepteront tous les courriers suivants à la même adresse. Si l'utilisateur ne prend pas la peine de les vérifier, c'est une autre histoire.
bzlm
1

Qu'essayez-vous de saisir dans la validation de votre courrier électronique?

La validation par regex des adresses électroniques peut, au mieux, vérifier que l'adresse est syntaxiquement correcte et relativement plausible. Comme cela a déjà été mentionné à maintes reprises, il risque également de rejeter les adresses livrables réelles si l'expression rationnelle n'est pas tout à fait correcte.

La vérification SMTP peut déterminer que l'adresse est livrable, sous réserve des limitations imposées par les listes grises ou par des serveurs configurés pour transmettre le moins d'informations possible sur leurs utilisateurs. Vous n'avez aucun moyen de savoir si le MTA a seulement prétendu accepter le courrier comme adresse fictive, puis l'a simplement laissé tomber sur le sol dans le cadre d'une stratégie anti-spam.

L'envoi d'un message de confirmation est toutefois le seul moyen de vérifier qu'une adresse appartient à l'utilisateur qui l'a entrée. Si je remplis votre formulaire, je peux facilement vous dire que mon adresse électronique est [email protected]. Une regex vous dira que c'est syntaxiquement valide, un SMTP RCPT TO vous dira que c'est une adresse livrable, mais c'est sûr que ce n'est pas mon adresse.

Dave Sherohman
la source
1

Avec l’avènement de HTML5, au moins une nouvelle approche s’ajoute aux possibilités: l’utilisation de l’entrée de type ' email ' qui permet la validation côté client. Les versions actuelles de Firefox, Chrome, Safari et Opera le prennent en charge (et les autres navigateurs le traitent simplement comme type = text, afin qu’il puisse être utilisé sans problème même si vous n’avez pas de validation, bien sûr.)

Cela ne peut jamais (comme il a été souligné à quelques reprises) garantir une adresse utilisable, mais cela peut être très bénéfique (et éventuellement remplacer la vérification côté serveur) aux endroits où il vous suffit de détecter les erreurs potentielles de l'utilisateur.

Inca
la source
L'implémentation de Firefox pour <input type="email">HTMLElement: dxr.mozilla.org/mozilla-central/source/dom/html/…
tiffon
0

Les trois principaux niveaux de validation des emails:

1) vérification de l'expression régulière pour une adresse e-mail correctement formatée [email protected]

2) vérification du domaine de messagerie sur les enregistrements MX pour voir si le nom de domaine dispose d'un service de messagerie

3) envoyer un email de confirmation avec un lien ou un code de confirmation

Niveau 1:

Dans Visual Studio, vous pouvez utiliser le "Validateur d'expressions régulières". Et dans la propriété "ValidationExpression", vous pouvez cliquer sur le bouton "..." qui contient un assistant pour ajouter le format d'expression régulière pour les adresses électroniques.

Niveau 2:

Voici mon code C # ci-dessous pour utiliser nslookup afin de vérifier si un domaine de messagerie contient des enregistrements MX valides. Fonctionne vite et bien sur Win 2008 R2 et Win 7.

using System.Net.Mail;
using System.Diagnostics;

public static bool checkMXRecords(string email) 
    {
        MailAddress addr = new MailAddress(email);
        string domain = addr.Host;

        string command = "nslookup -querytype=mx " + domain;
        ProcessStartInfo procStartInfo = new ProcessStartInfo("cmd", "/c " + command);

        procStartInfo.RedirectStandardOutput = true;
        procStartInfo.UseShellExecute = false;

        procStartInfo.CreateNoWindow = true;

        Process proc = new Process();
        proc.StartInfo = procStartInfo;
        proc.Start();
        string result = proc.StandardOutput.ReadToEnd();

        if (result.ToLower().Contains("mail exchanger"))
        {
            return true;
        }
        else return false;

     } // checkMXRecords

une autre option consiste à utiliser le package de nuget Arsofttools, mais il peut être lent sur Windows Server 2008 R2, comme je l’ai déjà vu, mais s’exécute rapidement sur Win 7.

Niveau 3:

Pour la confirmation par courrier électronique, vous pouvez générer une URL hexadécimale spécifique au courrier électronique (à l'aide des fonctions de cryptage), etc. http://domain.com/validateEmail?code=abcd1234 pour valider l'adresse électronique lorsque l'utilisateur clique dessus. Il n'est pas nécessaire de stocker cette URL en mémoire.

Norman
la source