2010-03-01 9 views
7

kiedy ludzie rejestrują się na mojej stronie internetowej, nie chcę wysyłać im e-maili weryfikacyjnych, chcę tylko sprawdzić, czy ten e-mail istnieje. czy jest jakiś sposób na zrobienie czegoś takiego?java: w jaki sposób mogę zweryfikować adres e-mail, aby był ważny bez wysyłania wiadomości e-mail z potwierdzeniem?

przy użyciu apache-tomcat i java jako mojego głównego języka programowania.

wielkie dzięki!

+1

Nie można wymusić żadnego serwera e-mail, aby potwierdzić, że istnieje poprawna skrzynka pocztowa i ktoś na nią patrzy. –

Odpowiedz

9

Możesz w najwyższym stopniu używać regex, aby sprawdzić, czy adres jest poprawny pod względem składni i/lub wyszukać adres MX records, jeśli domena jest ważna, ale to nadal nie gwarantuje, że adres e-mail jest zgodny z prawem i należy do rejestrującego. . Tak naprawdę nie ma bardziej niezawodnego sposobu niż wysyłanie e-maili na temat weryfikacji i czekanie na potwierdzenie w krótkim czasie.

+0

to nie jest w 100% poprawna odpowiedź. –

+1

@fuzzy: Nie ma też 100% niezawodnego sposobu, w jaki adres e-mail należy do danego użytkownika, a to nigdy nie nadejdzie. Sprawdziłem stronę w twojej odpowiedzi, wprowadziłem kilka adresów, które znam, a niektóre z nich zawiodły, ponieważ serwer nie obsługuje VRFY. Nie traciłbym czasu na weryfikację adresu e-mail w innym miejscu sieci. Po prostu wyślij e-mail weryfikacyjny i czekaj na potwierdzenie :) – BalusC

+0

możesz połączyć wysłać wiadomość RCPT, a następnie RSET to, nie patrzysz na to, co faktycznie robi moje rozwiązanie. –

15

Nie. Nie można określić, czy adres e-mail wskazuje na prawidłowy adres docelowy. Możesz sprawdzić podstawową składnię, a domena ma rekord w DNS, ale to wszystko.

+1

Dokładniej: "... ma rekord ** MX ** w DNS ..." – Dolph

+2

Nie zgadzam się. Możesz dostarczyć pocztę e-mail do domeny bez rekordu MX. – bmargulies

+0

jak by to zrobić? –

1

Jeśli chcesz tylko sprawdzić, czy LOOK wygląda jak poprawny adres e-mail, istnieje wiele próbnych Regeksów, które to sprawdzą. Jeśli chcesz zweryfikować, czy użytkownik ma kontrolę nad adresem e-mail, musisz wysłać coś do niego i stworzyć unikatową odpowiedź, aby go zweryfikować.

5

przeciwieństwie do niektórych niewykształconych odpowiedzi można spróbować połączyć się z serwerem MX i użyj polecenia VRFY do zobacz, czy serwer obsługuje. Oto website, który zrobi to za Ciebie jako przykład. Jeśli spojrzysz na jego wymianę z serwerem MX, faktycznie spróbujesz wysłać wiadomość e-mail, ale wykonasz RESET przed jej wysłaniem. Testowanie go za pomocą mojego adresu e-mail działa, ale nie dostaję wiadomości e-mail. Więc tak, MOŻESZ robić to, o czym wszyscy inni mówią, że nie możesz tego zrobić. Użyj adresu, który znasz działa w Twojej domenie, a następnie użyj adresu, który nie jest obsługiwany. Otrzymasz 550 na ostatnim poleceniu RCTP TO. W ten sposób wiesz, że to nie istnieje.

6

Po prostu chciałem zważyć i powiedzieć, że pomimo niechęci do tego, PROSZĘ wysłać e-mail i zmusić użytkownika do potwierdzenia, że ​​mają nad nim kontrolę przed zezwoleniem na użycie tego adresu e-mail w połączeniu z kontem Twoja strona. Czemu? Ponieważ nie oznacza to, że z jakiegokolwiek powodu, oznacza to, że użytkownicy mogą założyć konta za pomocą adresów e-mail, które nie są ich adresami. Mogą to zrobić przypadkowo lub mogą zrobić to bardzo celowo (np. Podpisywanie kont do innych celów z różnych powodów); to nie jest koszer, a strony internetowe, które na to pozwalają, mogą być zgłaszane swoim dostawcom usług internetowych.

(Mówię to jako właściciel konta Gmail, które, co najmniej dwa do trzech razy w miesiącu, jest zarejestrowane na konto w niektórych witrynach internetowych, które nie zmuszają użytkowników do potwierdzenia ich adresów e-mail w ten sposób. Jest to irytujące i obciąża konto, aby usunąć konto z obraźliwej witryny. Teraz podjąłem odzyskiwanie wszystkich haseł, logując się na konto, a następnie zmieniając adres e-mail na "SOMEDUMBFUCKDOESNTKNOWHISOWNEMAILADDRESS @ gmail" .com "lub coś w tym stylu ... to trochę zabawne, ale wątpię, żeby tak się stało na twojej stronie.)

+4

Ważnym punktem jest to, że nie tyle "zmuszają ludzi do potwierdzenia adresu e-mail", ale "nie wysyłaj e-maili na niepotwierdzone adresy". Możesz utworzyć konta przed potwierdzeniem e-maila, zapewnić, że nie będziesz wysyłać żadnych e-maili (prócz potwierdzenia) lub uniemożliwić innym użytkownikom próby potwierdzenia tego adresu. –

+0

dzięki za informacje chłopaki :) – ufk

1

Możesz użyć usługi openid, aby sprawdzić adresy e-mail valid, jak robi to stackoverflow.

http://openid.net/

0

Email Verification services są bardzo pomocne w walidację adresu e-mail. Większość z nich wykonuje 6 poziomów weryfikacji, takich jak sprawdzanie składni, kontrola rekordów MX domeny, wykrywanie konta oparte na rolach, wykrywanie poczty elektronicznej (DEA), wykrywanie ścieżki HoneyPot/Spam i głębokie sprawdzanie SMTP.

Większość z nich oferuje integrację z interfejsem API, dzięki czemu można bezpośrednio weryfikować adresy e-mail z poziomu aplikacji.