Zamiast martwić się o to, jakie adresy e-mail mogą i nie mogą zawierać, na co naprawdę nie masz ochoty, sprawdź, czy konfiguracja może wysłać do nich e-mail, czy nie - właśnie to Cię interesuje! Oznacza to, że faktycznie wysłałeś e-mail weryfikacyjny.
W przeciwnym razie nie można złapać znacznie częstszego przypadku przypadkowych literówek, które pozostają w dowolnym zestawie znaków, który opracowujesz. (Quick: czy [email protected] jest prawidłowym adresem do użycia w Twojej witrynie, czy też nie?) Pozwala także uniknąć niepotrzebnego i nieuzasadnionego alienowania jakichkolwiek użytkowników, gdy powiesz im, że ich poprawny i poprawny adres jest nieprawidłowy. Nadal możesz nie być w stanie przetworzyć niektórych adresów (jest to konieczne alienacja), jak mówią inne odpowiedzi: przetwarzanie adresu e-mail nie jest banalne; ale to jest coś, czego potrzebują, aby dowiedzieć się, czy chcą podać ci adres e-mail!
Wszystko, co powinieneś sprawdzić to to, że użytkownik dostarcza tekst przed @, trochę tekstu po nim, a adres nie jest skandalicznie długi (powiedzmy 1000 znaków).Jeśli chcesz podać ostrzeżenie ("to wygląda na kłopot !, jest podwójne literowanie przed kontynuowaniem"), to dobrze, ale nie powinno blokować procesu dodawania adresu e-mail.
Oczywiście, jeśli nie chcesz wysyłać do nich wiadomości e-mail, po prostu weź wszystko, co wpisano. Na przykład adres może być używany wyłącznie dla Gravatar, ale Gravatar weryfikuje wszystkie adresy e-mail.
Gdzie jest stosowanie tych ograniczeń "części domeny"? 'Łacińskie litery A - Z a - z' ' cyfry 0 - 9' – user3175580
Wystarczy dodać tutaj @ matas-vaitkevicius, RFC 6531 jest ** zaproponowany ** standard. To jeszcze nie jest kompletny standard. –
Regex nie działa w JAVA; pattern = Pattern.compile ("^ (([^ <>() \ [\] \.,;: \ s @ \"] + (\. [^ <>() \ [\] \.,;: \ s @ \ "] +) *) | (\". + \ ")) @ (([^ <>() [\] \.,;: \ s @ \"] + \.) + [^ <>() [\] \.,;: \ s @ \ "] {2,})", Pattern.CASE_INSENSITIVE); – Furkan