ID de correo electrónico con guión al final de la parte local

19

¿Es un correo electrónico válido si el correo electrónico tiene un guión (-) al final de la parte local de un correo electrónico? Por ejemplo,

[email protected]

O para generalizar, ¿puede alguno de estos caracteres ( Characters !#$%&'*+-/=?^_``{|}~ (ASCII: 33, 35-39, 42, 43, 45, 47, 61, 63, 94-96, 123-126)), que son válidos para estar en la parte local del correo electrónico al principio y / o al final de la identificación del correo electrónico?

Google dice que no es válido, por lo que por el momento también lo asumo como inválido, aunque RFC excluye solo el carácter [punto] de comenzar y / o finalizar la parte local.

GMail Error para el caso anterior

Nota: No estoy preocupado por la parte del dominio, porque eso se vuelve más complicado debido a la forma DNS, lo que complica la pregunta y las respuestas.

https://social.technet.microsoft.com/Forums/ie/en-US/69f393aa-d555-4f8f-bb16-c636a129fc25/what-are-valid-and-invalid-email-address-characters

Jimson Kannanthara James
fuente
Buena pregunta. ¿Has mirado este hilo de preguntas y respuestas de desbordamiento de pila ? Mucha información, gran parte desactualizada en este momento, pero sigue siendo un buen punto de partida /
JakeGould
Buen enlace de referencia, parece que Google trata ese correo electrónico como no válido, mientras que Microsoft no tiene ningún problema.
Jimson Kannanthara James
1
Compartiendo esto desde que mencionó Google: Gmail ignora cualquier punto en una dirección de correo electrónico, por lo que si su correo electrónico fue "[email protected]", también recibirá un correo enviado a "[email protected]". También ignora las ventajas al final de la dirección de correo electrónico: "[email protected]".
mowwwalker
1
En mi propio servicio de correo puedo prohibir la letra "u" de los nombres de usuario. Simplemente porque.
Agent_L

Respuestas:

60

¿Es un correo electrónico válido si el correo electrónico tiene un guión (-) al final de la parte local de un correo electrónico? [...] Google dice que no es válido, por lo que por el momento también lo asumo como inválido, aunque RFC excluye solo el carácter [punto] de comenzar y / o finalizar la parte local.

Es valido. Solo lo está viendo rechazado por Google porque realiza una verificación completamente diferente: tienen sus propias políticas sobre lo que puede ser la parte local , al igual que muchos otros proveedores.


Google, o cualquier otra persona, estaría obligado a aceptar todas las direcciones de correo electrónico posiblemente válidas solo si el formulario realmente solicitara una dirección de correo electrónico válida existente (posiblemente del proveedor). Por ejemplo, sería un error si el campo Para: / CC: de Gmail rechazara una dirección válida.

Pero el campo que resaltó no le solicita una dirección de correo electrónico existente; solicita un nombre de cuenta en los sistemas de Google, que será la base para una dirección de correo electrónico solo una vez que se haya creado la cuenta. No hay nada que le prohíba a Google, ni a nadie, limitar el conjunto de nombres de cuenta válidos (o, realmente, incluso los nombres de buzones) en su propio sistema .

O, en otras palabras, definir los caracteres permitidos para 'parte local' solo significa que los servidores SMTP de aplicaciones de correo deben aceptar dichas direcciones en los encabezados RFC 822 y los comandos SMTP, pero no dice nada acerca de poder crear dichos buzones. (De hecho, cuando se escribieron los primeros RFC de correo electrónico y la mayoría de los buzones todavía estaban vinculados a cuentas de nivel de sistema operativo, sus nombres tenían límites similares o incluso más estrictos).

Por ejemplo, esta parte de RFC 5321 (sección 4.1.2, debajo de ABNF) dice explícitamente que un host receptor puede y, de hecho, debería tener límites mucho más estrictos sobre cómo se nombran sus propios buzones:

Si bien la definición anterior para Parte local es relativamente permisiva, para una interoperabilidad máxima, un host que espera recibir correo DEBE evitar definir buzones donde la parte Local requiere (o usa) el formulario de Cadena entre comillas o donde la parte Local es el caso -sensible.

Entonces, aunque [email protected] es válido sintácticamente, eso solo no significa que Google deba permitirte crearlo.

Gravedad
fuente
66
Como nota al margen interesante, Google ignora los períodos en las direcciones de correo electrónico ( gmail.googleblog.com/2008/03/… ), que tampoco se especifica en el RFC. Entonces, [email protected] va al mismo lugar que [email protected] o [email protected].
childofsoong
44
@JimsonKannantharaJames En general, si desea verificar si un correo electrónico es válido, debe enviar un correo electrónico a esa dirección y obligar al usuario a tomar medidas. Cualquier verificación basada en la sintaxis de la dirección realmente debería ser para atrapar al usuario haciendo errores tipográficos.
Michael Mior
1
@grawity Oh, lo sé: estaba comentando para dar un ejemplo de otra cosa que no está especificada en el RFC pero está permitida.
childofsoong
1
@ user71659 Si no escapa correctamente de los caracteres de control cuando sea necesario, tiene un problema mayor. Finalmente, el correo electrónico fue ingresado por el usuario y la entrada del usuario siempre debe considerarse peligrosa. Asumir que algún campo en su base de datos es seguro debido a algunas reglas de validación puede ser bastante peligroso. ¿Qué sucede cuando unos meses más tarde alguien más llena ese campo desde otro formulario que no tiene la misma validación?
Michael Mior
2
@ user71659 está combinando dos problemas diferentes y enturbiando el argumento. MichaelMior es perfectamente correcto al afirmar que para verificar que existe una dirección de correo electrónico , deberá enviar un correo electrónico a esa dirección que requiera la acción del usuario.
kumarharsh
7

G Suite (formalmente Google Apps para su dominio) permite guiones (guiones) dentro de las direcciones de correo electrónico, incluso como el último carácter.

Los nombres de usuario pueden contener letras (az), números (0-9), guiones (-), guiones bajos (_), apóstrofes (') y puntos (.).

Fuente: Pautas de nombre y contraseña

Como notó, Gmail no permite guiones en las direcciones de correo electrónico.

davidmneedham
fuente