Jak sprawdzić, czy istnieje adres e-mail?

26

Próbuję sprawdzić 2000 adresów e-mail, aby sprawdzić, czy istnieją. Czy istnieją sposoby sprawdzenia, czy adres e-mail jest prawidłowy, bez wysyłania wiadomości e-mail na każdy adres ?.

Znalazłem usługę online Email Unlimited , ale sprawdza ona tylko 20 adresów e-mail przed zakupem pełnej wersji.

tintincutes
źródło

Odpowiedzi:

37

Tylko dla kompletności wywodu: niektóre serwery SMTP zrobić wskazać, czy adres e-mail istnieje. Po pełnym przykładzie w innej odpowiedzi :

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

helo example.com
mail from: <[email protected]>
rcpt to: <[email protected]>
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

Po sukcesie i na serwerach, które nie mogą lub nie chcą powiedzieć, czy adres jest prawidłowy, ostatnie polecenie dałoby:

250 2.1.5 OK

Można wtedy po prostu wywołać quitbez wysyłania wiadomości e-mail. Mimo to, próbując wielu adresów, może to również spowodować zablokowanie.

(Gmail nie obsługuje vrfypolecenia. Na stronie internetowej znajduje się również przycisk „sprawdź dostępność” podczas rejestracji nowego konta Gmail. Może to również dać ci trochę informacji, ale stare adresy będą niedostępne przez pewien czas).

Arjan
źródło
1
SMTP definiuje VRFYpolecenie w tym celu.
grawitacja
@grawity, może to być prawda w teorii, ale VRFYNIE działa z Gmailem. (Zobacz mój komentarz do odpowiedzi Michaela ).
Arjan,
2
Nie wszystkie serwery odpowiadają błędem „nie istnieje” w przypadku brakujących kont, więc nie jest to całkowicie niezawodne. Jeśli serwer jest serwerem proxy (i / lub zewnętrznym serwerem pomocniczym) dla wielu innych serwerów, może nie wiedzieć, które konta są poprawne przy następnym przeskoku, więc da cokolwiek „250 OK”, a niektóre serwery są ustawione w ten sposób w aby powstrzymać spamerów próbujących wyliczyć prawidłowe konta. Szybki test niektórych serwerów pocztowych naszych klientów wykazał, że 1 z 5, które próbowałem, nie dało odpowiedzi 5xx dla nieistniejącego konta.
David Spillett,
(@David, wiem. Właśnie dlatego użyłem słowa „trochę” powyżej ... Ale trochę to podkreśliłem.)
Arjan
@Arjan Napisałem mały skrypt Pythona, aby zautomatyzować ten gist.github.com/arulrajnet/c613bd0fad5de00bab2e
Arul
23

Gdyby to było możliwe, spamerzy na całym świecie śpiewaliby z radością.

Przepraszamy, ale nie, nie można ustalić, czy istnieje dany adres e-mail, czy nie.

Moim zdaniem jest to funkcja!

  • Jeśli znasz swoich korespondentów, poznasz ich dane kontaktowe.
  • Jeśli nie znasz swoich korespondentów, jesteś obcy i nie będą wdzięczni za otrzymywanie od Ciebie niechcianej poczty.
  • Jeśli znasz swoich korespondentów i nie informowali Cię oni o zmianach ich adresów, to podjęli (nie?) Świadomą decyzję o nieotrzymaniu twojej poczty.

Najlepsze, co możesz zrobić, to wysłać wiadomość e-mail na swoją listę, a następnie usunąć te, które odesłały (= te, których nie udało się dostarczyć).

Bądź ostrożny! W niektórych krajach wysyłanie niechcianych masowych wiadomości e-mail do osób, które nie zezwoliły na to z góry, jest nielegalne.

Torben Gundtofte-Bruun
źródło
Dzięki za to. Ale tak, znamy kontakty, ale niektórzy z nich nie zaktualizowali swoich danych kontaktowych, kiedy zmienili stanowiska lub firmy. Ostatni raz wysłaliśmy newsletter, który odsyła adresy e-mail, a nasze konto zostało ponownie aktywowane z powodu wysokiego odsetka odrzuceń wiadomości e-mail. Znalazłem taki w Internecie, ale nie jestem pewien, czy to jest wiarygodne: Ver-email.org
tintincutes
2
+1 - jeśli zadziała, szybko zostanie wykorzystany. Dlatego nie możemy mieć miłych rzeczy!
David Spillett,
2
Nie jestem pewien, dlaczego jest to tak gorąco oceniane. Lekcja etyki 101? Widziałem coś w rodzaju tego, czego OP chce używać, i to nawet w nikczemnych celach. Inne odpowiedzi i komentarze sugerują, że jest to możliwe na wielu serwerach pocztowych, zwłaszcza korporacyjnych / innych niż Google.
Daniel Beck
1
@Daniel: z pewnością jest to możliwe w przypadku niektórych ( wielu , w rzeczywistości) serwerów / usług pocztowych - ale nie jest to niezawodnie możliwe ani niekoniecznie niezawodne dla dowolnego adresu. Głosowałem za poprawnością techniczną „nie możesz być tego pewnym”, a nie jakimkolwiek aspektem etycznym.
David Spillett,
1
Ludzie, którzy byli wykorzystywani jako fałszywy nadawca spamu, nie będą zbytnio zadowoleni z tej „funkcji”, gdy otrzymają dużo rozproszenia wstecznego . (Oprócz okazjonalnych wiadomości Bounce z tras, które używają różnych From, Reply-tolub Return-Path. Dla każdej wiadomości, Dostałem tysiące wiadomości odrzuceń na dwóch okazjach Łatwo filtrowane, a nie wciąż bardzo miłe.)
Arjan
7

Naprawdę nie ma na to dobrego sposobu. W protokole SMTP znajduje się polecenie „VRFY”, ale nie znam już nikogo, kto pozwala to działać - jest to zbyt przydatne dla spamerów. Większość hostów po prostu odmawia już wykonania polecenia.

Najlepsze, co możesz teraz zrobić, to wysłać wiadomość e-mail i zarejestrować, co ją odsyła (zauważając, że niektórzy gospodarze poczty po prostu zaklinują pocztę, której nie można dostarczyć, zamiast ją odrzucić).

Nie wiem, jaki jest cel Twojej firmy na tej liście, ale powinieneś wiedzieć, że jeśli wysyłasz wiadomość e-mail do 2000 osób naraz, prawdopodobnie zostaniesz oznaczony jako spam przez niektórych hostów poczty.

Michael Kohne
źródło
1
Prawdopodobnie bardziej przypomina wyczyszczenie listy kontaktów. Wiadomości i tak odbijają się.
Daniel Beck
Próbowanie wyczyścić kontakty; Muszę zaprojektować nową bazę danych kontaktów. Mamy wielu klientów z różnych firm, nie jestem pewien, czy muszę je kategoryzować w jednej bazie danych, czy stworzyłbym inną bazę danych dla różnych firm. Jaki byłby najlepszy sposób?
tintincutes
Jeśli dobrze rozumiem, to vrfy potrzebuję nazwy użytkownika , a nie adresu e-mail? Jeśli to prawda, to sądzę, że wyłącza się ją głównie ze względów bezpieczeństwa, a nie ze względu na spamerów? Gmail, zarówno na vrfy existinguser, vrfy [email protected], vrfy someunknownuseri vrfy [email protected]wszystkich plonów 252 2.1.5 Send some mail, I'll try my best, podczas gdy na ten sam Gmail rcpt to: ma ujawnić, czy adres e-mail jest nieprawidłowy.
Arjan,
Za pomocą vrfy łączysz się z serwerem pocztowym, a następnie vrfy nazwa użytkownika (część przed @ w adresie e-mail). Jeśli to działa, powie Ci tak lub nie, czy użytkownik jest prawdziwy. Jeśli to nie działa (wiele nie działa), to powie albo „zabronione”, albo „Nie mam pojęcia”. Pamiętaj, że odpowiedź „nie mam pojęcia” jest całkowicie uzasadniona dla hosta przekierowującego pocztę, który nie ma dostępu do bazowej listy kont. Więc nawet podczas pracy, vrfy może nie być tak użyteczny.
Michael Kohne,
2

Nie jest możliwe dokładne określenie, czy adres jest prawdziwy, czy nie - każdy produkt, który twierdzi, że może, przesadza ze swoimi możliwościami, więc powinieneś rozważyć wszelkie inne roszczenia wykonane cynicznym okiem.

Istnieją biblioteki F / OSS, które robią tyle, ile się da: zgaduję, że większość oprogramowania na rynku to tylko fantazyjne opakowanie, więc możesz łatwo stworzyć własne, równie dobre / złe jeśli masz jakieś doświadczenie w programowaniu. Pamiętaj jednak, że bez względu na to, jak dobra jest procedura ratyfikacji, będzie ona bardzo podatna na dawanie wyników fałszywie dodatnich i fałszywie ujemnych.

http://freshmeat.net/projects/emailaddressvalidationcomponent na przykład pojawia się szybkie wyszukiwanie świeżego mięsa i przy założeniu, że opis jest poprawny, robi wszystko, co można faktycznie zrobić, aby spróbować zweryfikować adres.

David Spillett
źródło
@DanieL: Ok dzięki za to. Co powiesz na ten? Czy to również obowiązuje: techie-buzz.com/how-to/…
tintincutes
@tintincute: wygląda całkiem poprawnie, moje źródło Lifehacker używa tego samego wideo ...
studiohack
1

W kontekście firmy można to zrobić, automatyzując wyszukiwanie w Active Directory.

David
źródło
1

Co powiesz na napisanie skryptu Perla, aby zautomatyzować to zadanie? Sprawdź to: http://search.cpan.org/~ilyam/Mail-CheckUser-1.21/CheckUser.pm

Jassi
źródło
W rzeczywistości używa poleceń SMTP do łączenia się z serwerem SMTP, a jeśli zbyt wcześnie wysyłasz zbyt wiele żądań, możesz zostać oznaczony jako spamer i zablokowany. Nie nadaje się więc do sprawdzania tysięcy e-maili.
Bulrush,
1

Możesz spróbować: http://verify-emails.com/

Jest to nadal usługa kupna, ale może obsługiwać zarówno listy, jak i pojedyncze e-maile i może być włączona do formularzy rejestracyjnych.

Chris
źródło
Ta domena służy do sprzedaży. Strona jest martwa.
Bulrush,
1

Potrzebowałem też sposobu na sprawdzenie istnienia adresów e-mail, więc ostatecznie napisałem swoje własne małe narzędzie. (Pyton)

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

Jest to w 100% dokładne, gdy dostawca jest z tobą szczery.
(Gmail jest dość uczciwy, ale Yahoo NIE jest tak, jak mówi „tak” dla wszystkich e-maili).

Jest to lepsze niż nic, ponieważ zmniejszyło spam o ponad 50% dla mnie.

un33k
źródło
0

Można sprawdzić, czy istnieje adres e-mail, korzystając z tego linku: http://verify-email.org/ . Pinguje adres e-mail i odpowiada, Okjeśli e-mail istnieje, a Badjeśli jest fałszywy lub nie istnieje. jeszcze jeden link pomocny dla tego problemu: http://www.shoutmeloud.com/how-to-verify-if-email-address-exist-or-not.html

Bhavinkumar Patel
źródło
Pierwszy link: wygląda na to, że sprawdzanie pojedynczych adresów jest bezpłatne, ale sprawdzanie 2000, zgodnie z pytaniem, wymaga płatnego oprogramowania. W takiej sytuacji pytanie szuka alternatywy, więc tak naprawdę nie jest to rozwiązanie pytania. Drugi link dotyczy również pojedynczych czeków. Super Użytkownik nie jest forum, na którym zwykle zostawia się wszystko, co ogólnie dotyczy tematu. Jego celem jest zbudowanie bazy wiedzy, a każda odpowiedź powinna zawierać rozwiązanie zadanego pytania. Odpowiedzi, które nie przyciągają głosów negatywnych.
fixer1234