2008-11-12 8 views
2

Nous cherchons à améliorer notre liste d'adresses e-mail marketing en empêchant la saisie de faux e-mails. Nous voulons confirmer qu'une adresse e-mail existe (et qu'il existe effectivement une boîte aux lettres pour cette adresse e-mail).Validation d'un composant ou d'un service d'adresse e-mail - .NET

Est-ce que quelqu'un connaît des services ou des composants pour valider une adresse e-mail?

Répondre

0

Je trouve ces deux composants:

Nous le plus probable sera en cours avec l'un d'eux. Probablement aller avec aspNetMx d'Advanced Intelligence (du moins c'est là où je me penche en ce moment). L'exemple de test sur http://www.aspnetmx.com/demo.aspx a fonctionné pour mes adresses e-mail (valide et non valide). Et va probablement juste aller avec la validation DNS et pas la validation SMTP puisque quelques commentaires ont indiqué que la validation SMTP n'est pas précise à 100% et aussi la quantité de délai qui se produit avec la validation SMTP.

-Jeff

0

l'expression régulière suivante est un exemple de la façon dont vous pouvez valider une adresse e-mail est dans le format général correct:

(\[email protected][a-zA-Z_]+?\.[a-zA-Z]{2,6}) 

Pour des raisons de sécurité, très peu les serveurs de messagerie fournissent une fonction de validation à distance ou non une boîte aux lettres existe, il est donc très improbable qu'un service puisse fournir cette information avec une certaine fiabilité.

Espérons que cela aide!

Adam

+0

Ce que confirme qu'une chaîne est conforme à un format particulier. Mais il a demandé comment confirmer qu'une boîte aux lettres existe pour une adresse e-mail. –

+0

Salut Adam, Ceci est la validation de haut niveau que nous faisons déjà. Nous voulons le prendre au niveau suivant et valider que le domaine existe et qu'il y a réellement une boîte aux lettres par le nom indiqué sur le serveur de courrier. –

+0

Je pensais juste jeter cette regex au cas où vous ne feriez pas déjà quelque chose de similaire. En réponse à votre deuxième question: « Est-ce que quelqu'un sait des services ou des composants pour valider une adresse e-mail » Je maintiens ma réponse qu'un service ou d'un composant ne peut pas vous donner de très fiable que –

3

Il serait assez trivial de le faire vous-même.

  1. Créez un formulaire Web dans lequel l'utilisateur peut saisir son adresse électronique. Vous pouvez le protéger avec un captcha pour empêcher les robots de le frapper. Lors de la soumission, enregistrez l'adresse e-mail dans une base de données avec un GUID, un horodatage DateTime et un bit IsActivated. Le GUID identifie de manière unique cet abonnement. L'horodatage indique l'heure d'expiration à laquelle l'adresse e-mail doit être confirmée par.

  2. Envoyer un e-mail à l'adresse e-mail avec une URL à l'intérieur comme.

    http://www.example.com/validate.aspx?g=GUID-GOES-HERE

  3. Si l'utilisateur reçoit l'e-mail dans leur boîte de réception & clique sur le lien de validation avant l'horodatage de ce GUID/Email expire, alors vous activer son compte.

  4. À intervalles réguliers, un travail peut supprimer des lignes de la table qui n'ont jamais été activées là où la fenêtre d'activation a expiré.

+0

Salut Eoin, Ceci est une excellente idée, mais ajouterait trop de temps de développement à notre moteur actuel de traitement des commandes et le changement Page adresse e-mail. Nous ne voulons pas avoir à changer la façon dont les clients s'inscrivent à nos produits, mais simplement se connecter à la caisse actuelle et modifier les pages d'adresses e-mail. –

3

Vous ne pouvez pas valider vraiment une adresse e-mail sans envoyer un message à lui, et peut-être même pas alors (vous pouvez ou ne pouvez pas obtenir une réponse d'erreur ou un message d'erreur). Et si vous envoyez un email pour le valider, vous allez probablement irriter vos destinataires, sauf si vous ajoutez de la valeur dans cet e-mail. La manière normale de faire ceci est d'envoyer un email à l'adresse qui vous est donnée, qui contient un lien unique qui quand l'utilisateur le visite, confirme que l'utilisateur a reçu l'email et (vraisemblablement) veut vraiment votre email à l'avenir. Était-ce ce que vous vouliez dire, ou vouliez-vous vraiment valider le message sans envoyer un courriel à l'utilisateur?

Si tel est le cas, il existe un certain nombre de gestionnaires de liste qui peuvent le faire (par exemple, Gnu mailman). La recherche de "gestionnaires de liste d'email" en montre beaucoup plus, y compris les entreprises qui gèrent la liste pour vous.

-3

Il existe plusieurs niveaux de validation de courrier électronique et j'ai la source pour les faire tous.Cependant, je méprise votre secteur d'activité et ne jamais les partager avec vous ...

Juste pour clarifier - Je ne vous méprise pas, Jeff ... Juste votre secteur d'activité.

+0

Salut mson, Pas sûr que je comprends votre réponse ou pourquoi vous méprisez mon secteur d'activité ...nous voulons juste nous assurer que nous avons une liste propre d'adresses e-mail lorsque les gens commandent notre produit. –

+0

mson: pourriez-vous ajouter plus d'explications - cette réponse peut facilement être acceptée comme offensive. –

+0

Pas tout à fait sûr que c'était une réponse utile à la question pour nous faire connaître votre opinion sur les affaires de l'affiche. –

1

Voici un article sur ce que nous voulons faire: http://www.coveryourasp.com/ValidateEmail.asp

Nous voulons faire la validation DNS et SMTP validation. Nous avons déjà une validation simple en place.

+0

Vous pouvez valider pour un domaine valide, mais vous ne pouvez pas valider l'existence et le statut d'un compte/boîte de réception sans envoyer un message et obtenir une réponse via un clic unique de l'adresse e-mail. – Kon

+0

Bon lien avec plusieurs options –

+0

Si vous utilisez une validation simple comme décrit dans cet article, vous refusez en réalité un grand nombre d'adresses e-mail valides. La syntaxe d'email valide est étonnamment complexe, donc la meilleure technique de validation est vraiment d'essayer d'envoyer un email. –

0

Vérifiez cette exemple de code de UEmail Validator:

 
    // Create a new instance of the EmailValidator class. 
    EmailValidator em = new EmailValidator(); 
    em.MessageLogging += em_MessageLogging; 
    em.EmailValidated += em_EmailValidationCompleted; 
    try 
    { 
     string[] list = new string[3] { "[email protected]", "[email protected]", "[email protected]" }; 
     em.ValidateEmails(list); 
    } 
    catch (EmailValidatorException exc2) 
    { 
     Console.WriteLine("EmailValidatorException: " + exc2.Message); 
    }