Проверка компонента адреса электронной почты или службы - .NET - PullRequest
2 голосов
/ 12 ноября 2008

Мы стремимся улучшить наш маркетинговый список рассылки, предотвращая в первую очередь фальсификацию электронных писем. Мы хотим подтвердить, что адрес электронной почты существует (и что для этого адреса есть почтовый ящик).

Кто-нибудь знает какие-либо услуги или компоненты для проверки адреса электронной почты?

Ответы [ 7 ]

3 голосов
/ 12 ноября 2008

Вы не можете действительно проверить адрес электронной почты, не отправив на него сообщение, и, возможно, даже тогда (вы можете получить или не получить ответ об ошибке или сообщение об ошибке).

И если вы отправляете электронное письмо для проверки, вы, вероятно, будете раздражать своих получателей, если только вы не добавите ценность в этом письме.

Обычный способ сделать это - отправить электронное письмо на указанный вами адрес, который содержит уникальную ссылку, которая, когда пользователь посещает ее, подтверждает, что пользователь получил электронную почту и (предположительно) действительно хочет вашу электронную почту в будущем. Это то, что вы имели в виду, или вы действительно хотели проверить сообщение, не отправляя электронное письмо пользователю?

Если это так, существует любое количество менеджеров списков, которые могут сделать это (например, Gnu mailman). Поиск "менеджеров списков адресов электронной почты" обнаруживает еще много, включая фирмы, которые будут управлять списком для вас.

3 голосов
/ 12 ноября 2008

Было бы довольно тривиально сделать это самостоятельно.

  1. Создать веб-форму, где пользователь может ввести свой адрес электронной почты. Вы можете защитить его с помощью капчи, чтобы предотвратить попадание ботов.

  2. При отправке сохраните адрес электронной почты в базе данных вместе с GUID, меткой времени DateTime и битом IsActivation. GUID уникально идентифицирует эту подписку. В отметке времени указывается время истечения срока, на которое адрес электронной почты должен быть подтвержден.

  3. Отправьте электронное письмо на адрес электронной почты с URL-адресом, например.

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

  4. Если пользователь получает сообщение электронной почты в своем почтовом ящике и щелкает ссылку для подтверждения до истечения времени, установленного для этого GUID / сообщения электронной почты, вы активируете его учетную запись.

  5. Через равные промежутки времени вы можете получить задание удалить строки из таблицы, которые никогда не активировались там, где истекло окно активации.

1 голос
/ 12 ноября 2008

Вот статья о том, что мы хотим сделать: http://www.coveryourasp.com/ValidateEmail.asp

Мы хотим выполнить проверку DNS и проверку SMTP. У нас уже есть Простая проверка.

0 голосов
/ 09 мая 2010

Проверьте этот пример кода из UEmail Validator : </p> <pre> // 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] { "test1@testdomain.com", "test2@testdomain.com", "test3@testdomain.com" }; em.ValidateEmails(list); } catch (EmailValidatorException exc2) { Console.WriteLine("EmailValidatorException: " + exc2.Message); } </pre> <p>

0 голосов
/ 13 ноября 2008

Я нашел эти два компонента:

Скорее всего, мы пойдем с одним из них. Вероятно, пойти с aspNetMx от Advanced Intellect (по крайней мере, это то, где я сейчас склоняюсь). Пример теста на http://www.aspnetmx.com/demo.aspx работал для моих адресов электронной почты (действительный и недействительный).

И, вероятно, просто пойдет с проверкой DNS, а не проверкой SMTP, поскольку пара комментариев указала, что проверка SMTP не является точной на 100%, а также величина задержки, которая возникает при проверке SMTP.

-Джефф

0 голосов
/ 12 ноября 2008

Есть несколько уровней проверки электронной почты, и у меня есть источник, чтобы сделать их все. Однако я презираю ваше направление деятельности и никогда не поделюсь ими с вами ...

Просто чтобы уточнить - я не презираю тебя, Джефф ... Только твое направление деятельности.

0 голосов
/ 12 ноября 2008

следующее регулярное выражение является примером того, как вы можете проверить адрес электронной почты в правильном общем формате:

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

По соображениям безопасности очень немногие почтовые серверы предоставляют функцию удаленной проверки наличия почтового ящика или нет, поэтому очень маловероятно, что служба сможет предоставить эту информацию с какой-либо достоверностью.

Надеюсь, это поможет!

Адам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...