email - son - ¿Las direcciones de correo electrónico distinguen entre mayúsculas y minúsculas?
outlook distingue mayusculas (5)
De RFC 5321, sección 2.3.11:
La convención estándar de nomenclatura de buzones se define como "local-part @ domain"; el uso contemporáneo permite un conjunto mucho más amplio de aplicaciones que los simples "nombres de usuario". En consecuencia, y debido a una larga historia de problemas cuando los hosts intermedios han intentado optimizar el transporte modificándolos, la parte local DEBE ser interpretada y asignada semánticamente solo por el host especificado en la parte del dominio de la dirección.
Entonces, sí, la parte anterior a la "@" podría distinguir entre mayúsculas y minúsculas, ya que está completamente bajo el control del sistema host. Sin embargo, en la práctica, ningún sistema de correo utilizado ampliamente distingue diferentes direcciones según el caso.
Sin embargo, la parte después del signo @ es el dominio y de acuerdo con RFC 1035, sección 3.1,
"Los servidores de nombres y los resolutores deben comparar [dominios] de una manera que no distinga mayúsculas y minúsculas"
En resumen, es seguro tratar las direcciones de correo electrónico como si no distinguiera entre mayúsculas y minúsculas.
He leído que, por norma, la primera parte del correo electrónico [email protected]
[email protected]
y minúsculas, sin embargo, he intentado enviar un correo electrónico a [email protected]
, [email protected]
y [email protected]
. Ha llegado a cada caso.
¿Cómo manejan los servidores de correo los nombres de usuario? ¿Es posible fallar con el caso y ese mensaje no sería entregado? ¿Es realmente muy importante usar exactamente el mismo caso de cartas, como se escribió al registrarse al dar su dirección de correo electrónico?
Muy tarde para este post, pero tengo algo ligeramente diferente que decir ...
>> "Are email addresses case sensitive?"
Bueno, "Depende ..." (TM)
Algunas organizaciones realmente piensan que es una buena idea y sus servidores de correo electrónico imponen la distinción entre mayúsculas y minúsculas.
Entonces, para esos lugares locos, "Sí, los correos electrónicos distinguen entre mayúsculas y minúsculas".
Nota: el hecho de que una especificación indique que puede hacer algo no significa que sea una buena idea hacerlo.
El principio de KISS sugiere que nuestros sistemas utilizan correos electrónicos que no distinguen entre mayúsculas y minúsculas.
Considerando que el principio de robustez sugiere que aceptamos correos electrónicos sensibles a mayúsculas y minúsculas.
Solución:
- Almacenar correos electrónicos con sensibilidad a mayúsculas
- Enviar correos electrónicos con sensibilidad a las mayúsculas.
- Realizar búsquedas internas con insensibilidad a mayúsculas.
Esto significaría que si este correo electrónico ya existe: [email protected]
... y otro usuario aparece y quiere usar este correo electrónico: [email protected]
... que nuestra lógica de búsqueda que no distingue entre mayúsculas y minúsculas devolvería un mensaje de error "Ese correo electrónico ya existe".
Ahora tiene que tomar una decisión: ¿Es esa solución adecuada en su caso?
De lo contrario, podría cobrar una tarifa de conveniencia a los clientes que demandan soporte para sus correos electrónicos que distinguen entre mayúsculas y minúsculas e implementar una lógica personalizada que permita a [email protected] en su sistema, incluso si ya existe [email protected].
En cuyo caso, su lógica de búsqueda / validación de correo electrónico podría parecer algo como este pseudocódigo:
if (user.paidEmailFee) {
// case sensitive email
query = "select * from users where email LIKE '' + user.email + ''"
} else {
// case insensitive email
query = "select * from users where email ILIKE '' + user.email + ''"
}
De esta manera, la mayoría de las veces está haciendo caso omiso de la insensibilidad a los casos, pero permite que los clientes paguen por este soporte si están utilizando sistemas de correo electrónico que admiten este tipo de tonterías.
ps ILIKE es una palabra clave de PostgreSQL: http://www.postgresql.org/docs/9.2/static/functions-matching.html
Per @ l3x, depende.
Hay claramente dos conjuntos de situaciones generales en las que la respuesta correcta puede ser diferente, junto con un tercero que no es tan general:
a) Eres un usuario enviando correos privados :
Muy pocos sistemas de correo electrónico modernos implementan la distinción entre mayúsculas y minúsculas, por lo que probablemente está bien ignorar el caso y elegir el caso que desee. No hay garantía de que todos sus correos sean entregados, pero muy pocos correos se verán afectados negativamente, por lo que no debería preocuparse por eso.
b) Está desarrollando software de correo :
Ver RFC5321 2.4 extracto en la parte inferior.
Cuando está desarrollando software de correo, desea ser compatible con RFC. Puede hacer que las direcciones de correo electrónico de sus propios usuarios no se distingan entre mayúsculas y minúsculas si lo desea (y probablemente debería). Pero para ser compatible con RFC, DEBE tratar las direcciones externas como mayúsculas y minúsculas .
c) Gestionar listas de direcciones de correo electrónico propiedad de la empresa como empleado :
Es posible que el mismo destinatario de correo electrónico se agregue a una lista más de una vez, pero utilizando un caso diferente. En esta situación, aunque las direcciones son técnicamente diferentes, puede resultar en que un destinatario reciba correos electrónicos duplicados. La forma en que trata esta situación es similar a la situación a) en la que probablemente esté bien tratarlos como duplicados y eliminar una entrada duplicada. Sin embargo, es mejor tratar estos casos como casos especiales, enviando un correo de "recordatorio" a ambas direcciones para preguntarles si están duplicados el uno del otro y, de ser así, qué dirección de correo electrónico preferiría usar el destinatario.
Desde un punto de vista legal, si elimina un duplicado sin el reconocimiento / permiso de ambas direcciones, puede ser considerado responsable de filtrar información / autenticación privada a una dirección no autorizada, simplemente porque dos destinatarios realmente separados tienen la misma dirección en diferentes casos .
Extracto de RFC5321 2.4:
La parte local de un buzón DEBE SER tratada como sensible a las mayúsculas y minúsculas. Por lo tanto, las implementaciones SMTP DEBEN tener cuidado de preservar el caso de las partes locales del buzón. En particular, para algunos hosts, el usuario "smith" es diferente del usuario "Smith". Sin embargo, explotar la sensibilidad a mayúsculas y minúsculas de las partes locales del buzón impide la interoperabilidad y se desaconseja.
RFC 5321 2.4. Principios generales de sintaxis y modelo de transacción
Las implementaciones SMTP DEBEN tener cuidado de preservar el caso de las partes locales del buzón. En particular, para algunos hosts, el usuario "smith" es diferente del usuario "Smith".
Los dominios de buzones siguen las reglas de DNS normales y, por lo tanto, no distinguen entre mayúsculas y minúsculas
Sé que esta es una pregunta antigua, pero solo quiero comentar aquí: en la medida en que las direcciones de correo electrónico SON sensibles a las mayúsculas y minúsculas, la mayoría de los usuarios sería "muy poco prudente" para utilizar activamente una dirección de correo electrónico que requiera mayúsculas. Pronto dejarían de usar la dirección porque perderían mucho de su correo. (A menos que tengan una razón específica para dificultar las cosas, y esperan recibir correo solo de remitentes específicos que conozcan).
Esto se debe a que tanto los humanos imperfectos como el software imperfecto existen (¡Sorpresa!) Que asumirá que todo el correo electrónico está en minúsculas, y por esta razón, estos humanos y software enviarán mensajes utilizando una "versión de caja inferior" de la dirección, independientemente de cómo se proporcionó. a ellos Si el destinatario no puede recibir tales mensajes, no pasará mucho tiempo antes de que se den cuenta de que faltan mucho, y cambie a una dirección de correo electrónico solo en minúsculas, o configure su servidor para que no distinga mayúsculas de minúsculas.