Как проверить, существует ли адрес электронной почты?


26

Я пытаюсь проверить 2000 адресов электронной почты, чтобы увидеть, существуют ли они. Существуют ли способы проверить, является ли адрес электронной почты действительным, не отправляя электронную почту на каждый адрес?

Я нашел онлайн-сервис Email Unlimited , но он проверяет только 20 адресов электронной почты, прежде чем покупать полную версию.

Ответы:


37

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

telnet gmail-smtp-in.l.google.com 25

helo example.com
mail from: <me@example.com>
rcpt to: <somenonexistinguser@gmail.com>
550-5.1.1 The email account that you tried to reach does not exist. Please try
550-5.1.1 double-checking the recipient's email address for typos or
550-5.1.1 unnecessary spaces. Learn more at
550 5.1.1 http://mail.google.com/support/bin/answer.py?answer=6596

В случае успеха и на серверах, которые не могут или не хотят знать, является ли адрес действительным, последняя команда выдаст:

250 2.1.5 OK

Затем можно просто вызвать, quitне отправляя вообще никаких писем. Тем не менее, при попытке много адресов, это также может заблокировать вас.

(Gmail не поддерживает эту vrfyкоманду. На веб-сайте также имеется кнопка «Проверить доступность» при регистрации новой учетной записи Gmail. Это также может дать вам некоторую информацию, но старые адреса будут недоступны в течение некоторого времени.)


1
SMTP определяет VRFYкоманду для этой цели.
grawity

@ grawity, это может быть правдой в теории, но VRFYНЕ работает с Gmail. (См. Мой комментарий к ответу Майкла .)
Арджан

2
Не все серверы сообщают об ошибке «не существует» для отсутствующих учетных записей, поэтому это не совсем надежно. Если сервер является прокси-сервером (и / или внешним вторичным сервером) для ряда других серверов, он может не знать, какие учетные записи действительны на следующем прыжке, поэтому выдает «250 OK» для всех, и некоторые серверы устанавливаются таким образом в остановить спамеров, пытающихся перечислить действительные учетные записи. Быстрый тест некоторых почтовых серверов наших клиентов показал, что 1 из 5, которые я попробовал, не дал ответа 5xx для несуществующей учетной записи.
Дэвид Спиллетт

(@ Давид, я знаю. Вот почему я использовал слово «некоторые» выше ... Но я это немного подчеркнул.)
Арджан

@ Арьян Я написал небольшой питон скрипт для автоматизации этого gist.github.com/arulrajnet/c613bd0fad5de00bab2e
Arul

23

Если бы это было возможно, спаммеры по всему миру пели бы от радости.

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

На мой взгляд, это особенность!

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

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

Быть осторожен! В некоторых странах незаконно отправлять нежелательные массовые электронные письма людям, которые явно не разрешили это заранее.


Спасибо за это. Но да, мы знаем контакты, но некоторые из них не обновляли свои контактные данные при смене должности или компании. В прошлый раз мы отсылали новостную рассылку, и она возвращала адреса электронной почты, и наша учетная запись была повторно активирована из-за высокого процента отказов электронной почты. Я нашел один в Интернете, но не уверен, что это надежно: verify-email.org
tintincutes

2
+1 - если бы это сработало, им бы быстро злоупотребили. Вот почему у нас не может быть хороших вещей!
Дэвид Спиллетт

2
Не уверен, почему это решительно проголосовало. Урок этики 101? Я видел нечто вроде того, что ОП хочет использовать, и даже не в гнусных целях. Другие ответы и комментарии предполагают, что это возможно для многих почтовых серверов, особенно корпоративных / не Google.
Даниэль Бек

1
@Daniel: это, конечно, возможно для некоторых ( на самом деле, многих ) почтовых серверов / сервисов - но это ненадежно и не обязательно является надежным для любого данного адреса. Я проголосовал за техническую правильность «вы не можете знать наверняка», а не за любой этический аспект.
Дэвид Спиллетт

1
Люди, которые использовались как фальшивый отправитель спам-прогонов, не будут слишком рады этой «функции» при получении большого количества обратных рассеяний . (За исключением случайного сообщения о сбое от прогонов, в которых используются разные сообщения From, Reply-toили Return-Pathдля каждого сообщения я дважды получал тысячи сообщений об отскоке. Легко фильтруется, но не очень хорошо.)
Арджан,

7

Там действительно нет никакого хорошего способа сделать это. В протоколе SMTP есть команда «VRFY», но я не знаю никого, кто бы позволил этому больше работать - это слишком полезно для спамеров. Большинство хостов просто откажутся от команды.

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

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


1
Вероятно, больше похоже на очистку списка контактов. Почта все равно отскакивает.
Даниэль Бек

Попытка вычистить контакты; Мне нужно создать новую базу данных контактов. У нас много клиентов из разных компаний, и я не уверен, придется ли мне их классифицировать в одной базе данных или я создам разные БД для разных компаний. Что будет лучшим способом?
tintincutes

Если я правильно понимаю, тогда vrfy понадобится имя пользователя , а не адрес электронной почты? Если это правда, то я предполагаю, что это в основном отключено по соображениям безопасности, а не для борьбы со спамерами? В Gmail, как vrfy existinguser, vrfy existinguser@gmail.com, vrfy someunknownuserи vrfy someunknownuser@gmail.comобщий выход 252 2.1.5 Send some mail, I'll try my best, в то время как на самом же Gmail rcpt to: делает выявить , если адрес электронной почты является действительным.
Арджан

С помощью vrfy вы подключаетесь к почтовому серверу, затем к имени пользователя vrfy (часть перед @ в адресе электронной почты). Если он работает, он скажет вам, да или нет, является ли пользователь реальным. Если он не работает (многие не работают), то он либо скажет «запрещено», либо «я понятия не имею». Обратите внимание, что ответ «Я понятия не имею» вполне допустим для хоста пересылки почты, у которого нет доступа к списку скрытых учетных записей. Так что даже при работе vrfy может быть не так полезен.
Майкл Кохне

2

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

Существуют библиотеки F / OSS, которые делают столько, сколько возможно: я полагаю, что большинство программного обеспечения на рынке - просто модная обертка вокруг них, так что вы, возможно, легко сможете сделать свою собственную, такую ​​же хорошую / плохую. если у вас есть опыт программирования. Но помните, что независимо от того, насколько хороша процедура проверки, она будет очень склонна давать ложноположительные и ложноотрицательные результаты.

Например, http://freshmeat.net/projects/emailaddressvalidationcomponent выполняет быстрый поиск свежей информации, и, предполагая, что описание правильное, он делает все возможное, чтобы попытаться проверить адрес.


@DanieL: Хорошо, спасибо за это. Как насчет этого? Является ли это справедливо: techie-buzz.com/how-to/...
tintincutes

@tintincute: выглядит вполне корректно, мой источник Lifehacker использует то же видео ...
studiohack

2

Вы можете пинговать адрес электронной почты.

От Lifehacker.com:

http://lifehacker.com/5697360/how-to-verify-if-an-email-address-is-real-or-fake

Когда вы отправляете кому-то письмо, оно отправляется на SMTP-сервер, который затем ищет записи MX (Mail Exchange) домена получателя электронной почты.

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


1

Внутри компании это можно сделать путем автоматизации поиска в Active Directory.


1

Как насчет написания сценария Perl для автоматизации этой работы? Проверьте это: http://search.cpan.org/~ilyam/Mail-CheckUser-1.21/CheckUser.pm


На самом деле, для подключения к SMTP-серверу используются команды SMTP, и если вы делаете слишком много запросов слишком рано, вы можете быть помечены как спамер и заблокированы. Так что не стоит проверять тысячи писем.
Камыш

1

Вы можете попробовать: http://verify-emails.com/

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


Этот домен предназначен для продажи. Сайт мертв.
Камыш

1

Мне также нужен был способ проверить наличие адресов электронной почты, поэтому я написал свою маленькую утилиту. (Python)

http://github.com/un33k/python-emailahoy

Это на 100% точно, когда поставщик честен с вами.
(Gmail довольно честный, но Yahoo не так, как он говорит да на все электронные письма.)

Это лучше, чем ничего, потому что это уменьшило количество спама для меня более чем на 50%.


0

Проверить наличие адреса электронной почты можно по этой ссылке: http://verify-email.org/ . Он пингует адрес электронной почты и отвечает, Okесли электронное письмо существует, и является Badли оно поддельным или не существует. Еще одна ссылка, полезная для этой проблемы: http://www.shoutmeloud.com/how-to-verify-if-email-address-exist-or-not.html


1-я ссылка: похоже, проверка отдельных адресов бесплатна, но проверка 2000, как указано в вопросе, требует платного программного обеспечения. Это ситуация, для которой вопрос ищет альтернативу, так что на самом деле это не решение вопроса. 2-я ссылка также касается отдельных проверок. Суперпользователь - это не форум, где обычно оставляют все, что относится к теме. Его цель - создать базу знаний, и каждый ответ должен содержать решение того, что было задано. Ответы, которые не имеют тенденцию привлекать отрицательные голоса.
fixer1234
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.