Kilka z tych odpowiedzi jest blisko we właściwy sposób. To są punkty za moje zgłoszenie.
- Chcesz użyć domeny — NIE systemu reguł.
- NIE chcesz weryfikować tych adresów e-mail za pomocą wyrażenia regularnego. (Aktualizacja z marca 2017 r.:już nieprawda)
Pokazuję dwie metody, jak to zrobić we właściwy sposób na DBA.StackExchange.com . Zarówno w celu sprawdzenia rekordu MX, jak i przy użyciu specyfikacji HTML5. Oto krótki i słodki.
CREATE EXTENSION citext;
CREATE DOMAIN email AS citext
CHECK ( value ~ '^[a-zA-Z0-9.!#$%&''*+/=?^_`{|}~-][email protected][a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$' );
SELECT '[email protected]'::email;
SELECT CAST('[email protected]' AS email);
Aby uzyskać więcej informacji wysoce sugerujemy przeczytanie pełnej odpowiedzi
. W odpowiedzi pokazuję również, jak tworzysz DOMAIN
ponad Email::Valid
i wyjaśnij, dlaczego nie używam już tej metody.