En lugar de preocuparse por lo que las direcciones de correo electrónico pueden y no pueden contener, lo que realmente no le importa, compruebe si su configuración puede enviarlas o no; ¡esto es lo que realmente le importa! Esto significa en realidad enviar un correo electrónico de verificación.
De lo contrario, no se puede detectar un caso mucho más común de errores de tipeo accidentales que permanecen dentro de cualquier conjunto de caracteres que usted idee. (Rápido: ¿es [email protected] una dirección válida para usar en su sitio, o no?) También evita alienar innecesaria y gratuitamente a los usuarios cuando les dice que su dirección correcta y correcta es incorrecta. Es posible que todavía no pueda procesar algunas direcciones (esta es una alienación necesaria), como dicen las otras respuestas: el procesamiento de la dirección de correo electrónico no es trivial; pero eso es algo que deben averiguar si quieren proporcionarle una dirección de correo electrónico.
Todo lo que debe verificar es que el usuario proporciona un texto antes de una @, algo de texto después y la dirección no es escandalosamente larga (digamos 1000 caracteres).Si desea dar una advertencia ("¡esto parece un problema! ¿Hay un error tipográfico?", Haga doble clic antes de continuar "), está bien, pero no debería bloquear el proceso de agregar direcciones de correo electrónico.
Por supuesto, si no le importa enviarles un correo electrónico, simplemente tome lo que ingrese. Por ejemplo, la dirección solo se puede usar para Gravatar, pero Gravatar verifica todas las direcciones de correo electrónico de todos modos.
¿Dónde está la aplicación de estas restricciones de "dominio de parte"? 'Letras en latín A - Z a - z' ' dígitos 0 - 9 ' – user3175580
Solo vamos a agregar aquí @ matas-vaitkevicius, RFC 6531 está ** propuesto ** estándar. Aún no es un estándar completo. –
Regex no funciona en JAVA; pattern = Pattern.compile ("^ (([^ <>() \ [\] \.,;:: \ s @ \"] + (\. [^ <>() \ [\] \.,;: \ s @ \ "] +) *) | (\". + \ ")) @ (([^ <>() [\] \.,;: \ s @ \"] + \.) + [^ <>() [\] \.,;: \ s @ \ "] {2,})", Pattern.CASE_INSENSITIVE); – Furkan