Проверка наличия адреса электронной почты в C # - PullRequest
7 голосов
/ 15 июня 2010

Относительно этого сообщения о подтверждении электронной почты,

используя C #, как бы вы

  1. выдать команду VRFY
  2. выдать команду RCPT

Ответы [ 6 ]

36 голосов
/ 15 июня 2010

Я думаю, вы обнаружите, что во многих случаях эти функции намеренно будут лежать перед вами, чтобы победить спамеров.Если бы был способ подтвердить, что электронная почта является реальной, кроме того, что пользователь нажимает на ссылку для подтверждения (или отписки ....), тогда спаммеры были бы очень счастливыми людьми.

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

5 голосов
/ 10 июля 2010

IMO, метод RCPT - лучший, и я все еще использую его каждый день.

Вот необходимый код: http://mailsystem.codeplex.com/SourceControl/changeset/view/51422#541825

Класс довольно тяжелый, вам придетсявыберите нужный фрагмент кода из исходного кода.

5 голосов
/ 09 июля 2010

Если вы не беспокоитесь о лживых публичных SMTP-серверах (посмотрите раздел 2.11 здесь: http://tools.ietf.org/html/rfc2505),, тогда на самом деле лучшим способом может быть открытие TcpClient для сервера и запуск SMTPПротоколируйте сами. SMTP - действительно очень простой протокол. Вы можете узнать все, что вам нужно знать из Википедии: http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol

5 голосов
/ 15 июня 2010

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

2 голосов
/ 15 июня 2010

Обычно.

  • VRFY: забудьте об этом.Серьезно;) Ни один сервер не ответит - ни один вменяемый.Спаммеры использовали слишком много.

    • В остальном: подключитесь к серверу с помощью TCP, «просто сделайте это» (т.е. запрограммируйте SMTP-рукопожатие, затем продолжите).
1 голос
/ 15 июня 2010

Вы можете попробовать использовать что-то похожее на это:

http://www.vcskicks.com/download-file-ftp.php

Вместо использования Ftp, используйте SMTP.

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