Убедитесь, что домен электронной почты существует - PullRequest
10 голосов
/ 14 июня 2010

Кто-нибудь проверяет домен адреса электронной почты в рамках своих шагов проверки? например. Убедитесь, что gmail.com существует, если пользователь указал blah@gmail.com в качестве своего адреса.


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

Ответы [ 5 ]

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

Веб-сайты, которым необходимо подтвердить адрес электронной почты пользователя, обычно отправляют на этот адрес письмо со ссылкой для проверки.Проверка домена на наличие электронной почты не стоит много, так как люди обычно отправляют поддельные письма существующему провайдеру электронной почты (обычно @ gmail.com, @ yahoo.com или @ hotmail.com)

Если вы хотитечтобы по-прежнему проверять домен, необходимо выполнить проверку DNS для записи MX для этого домена, а не просто проверять, зарегистрирован ли домен.

Обновление : обратите внимание, что часть доменаэлектронная почта может фактически быть IP-адресом (даже если эта форма настоятельно не рекомендуется).В этом случае вы не можете надежно проверить, есть ли SMTP-сервер по этому адресу, если вы на самом деле не пытаетесь подключиться к нему через SMTP.Что по сути то же самое, что отправка электронного письма.

8 голосов
/ 14 июня 2010

Вы можете выполнить поиск DNS для записи mx . Вот пример в Code Project:
http://www.codeproject.com/KB/IP/dnslookupdotnet.aspx

[дополнение]:

Это должно ответить на ваш вопрос, как и было задано, но в качестве дополнительного примечания я согласен с @Franci, что старый режим отправки проверочного сообщения лучше. Если кто-то сделал все остальное правильно, чтобы обмануть вашу валидацию, вы действительно не слишком много покупаете, проверяя домен.

1 голос
/ 14 июня 2010

Вы можете выполнить эту команду в консоли

 nslookup -q=mx gmail.com

и проанализируйте выходные данные для строк, содержащих MX, после имени хоста

gmail.com       MX preference = 40, mail exchanger = alt4.gmail-smtp-in.l.google.com
gmail.com       MX preference = 20, mail exchanger = alt2.gmail-smtp-in.l.google.com
gmail.com       MX preference = 5, mail exchanger = gmail-smtp-in.l.google.com
gmail.com       MX preference = 30, mail exchanger = alt3.gmail-smtp-in.l.google.com
gmail.com       MX preference = 10, mail exchanger = alt1.gmail-smtp-in.l.google.com

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

1 голос
/ 14 июня 2010

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

1 голос
/ 14 июня 2010

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

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