Les adresses e-mail sont-elles sensibles à la casse?
J'ai lu que la première partie standard de l'e-mail est sensible à la casse, mais j'ai essayé d'envoyer un e-mail à name@example.com
, Name@example.com
et NAME@example.com
- Il est arrivé dans chaque cas.
Comment les serveurs de messagerie gèrent-ils les noms d'utilisateur? Est-il possible de manquer avec case et ce message ne serait pas livré? Est-il vraiment très important d'utiliser exactement le même cas de lettre, comme cela a été écrit lors de l'enregistrement lorsque vous donnez votre adresse e-mail?
6 réponses
De la RFC 5321, section-2.3.11:
La convention de nommage standard des boîtes aux lettres est définie comme "Local-part@domain"; l'utilisation contemporaine permet un ensemble beaucoup plus large de applications que de simples "noms d'utilisateur". Par conséquent, et en raison d'un longue histoire de problèmes lorsque les hôtes intermédiaires ont tenté de optimiser le transport en les modifiant, la partie locale doit être sémantique interprétée et assignée uniquement par l'hôte spécifié dans domaine faisant partie du adresse.
Donc oui, la partie avant le " @ " pourrait être sensible à la casse, puisqu'elle est entièrement sous le contrôle du système hôte. Dans la pratique cependant, aucun système de messagerie largement utilisé ne distingue différentes adresses en fonction des cas.
La partie après le signe @ est cependant le domaine et selon la RFC 1035, section 3.1,
"les serveurs de noms et les résolveurs doivent comparer [domaines] sans tenir compte de la casse"
En bref, vous êtes sûr de traiter le courrier électronique adresses insensibles à la casse.
Je sais que c'est une vieille question mais je veux juste commenter ici: dans une certaine mesure, les adresses e-mail sont sensibles à la casse, la plupart des utilisateurs seraient "très imprudents" d'utiliser activement une adresse e-mail nécessitant des majuscules. Ils cesseraient bientôt d'utiliser l'adresse parce qu'ils manqueraient beaucoup de leur courrier. (À moins qu'ils n'aient une raison spécifique de rendre les choses difficiles, et qu'ils n'attendent que du courrier d'expéditeurs spécifiques qu'ils connaissent.)
C'est parce que les humains imparfaits ainsi que les logiciels imparfaits exister, (Surprise!) qui supposera que tous les e-mails sont en minuscules, et pour cette raison, ces humains et ces logiciels enverront des messages en utilisant une "version inférieure" de l'adresse, quelle que soit la façon dont elle leur a été fournie. Si le destinataire est incapable de recevoir de tels messages, il ne faudra pas longtemps avant qu'ils remarquent qu'ils manquent beaucoup, et passer à une adresse e-mail en minuscules seulement, ou obtenir leur serveur mis en place pour être insensible à la casse.
Très en retard à ce post, mais j'ai quelque chose de légèrement différent à dire...
>> "Are email addresses case sensitive?"
Eh Bien, " Ça Dépend..." (TM)
Certaines organisations pensent que c'est une bonne idée et leurs serveurs de messagerie appliquent la sensibilité à la casse.
Donc, pour ces endroits fous, " Oui, Les e-mails sont sensibles à la casse."
Note: Ce n'est pas parce qu'une spécification dit que vous pouvez faire quelque chose que c'est une bonne idée de le faire.
Le principe de baiser suggère que nos systèmes utilisent des e-mails insensibles à la casse.
Alors que le principe de Robustesse suggère que nous acceptons les e-mails sensibles à la casse.
Solution:
- stocker les e-mails avec sensibilité à la casse
- envoyer des e-mails avec sensibilité à la casse
- effectuer des recherches internes avec insensibilité à la casse
Cela signifierait que si cet e-mail existe déjà: user@x.com
... et un autre utilisateur vient et veut utiliser cet e-mail: USER@x.com
... que notre logique de recherche insensible à la casse renverrait un message d'erreur" cet email existe déjà".
Maintenant, vous avez une décision à prendre: Cette solution est-elle adéquate dans votre cas?
Si ce n'est pas le cas, vous pouvez facturer des frais de commodité aux clients qui demandent un support pour leurs e-mails sensibles à la casse et implémenter une logique personnalisée qui permet USER@x.com dans votre système, même si user@x.com existe déjà.
Auquel cas votre email la logique de recherche / validation peut ressembler à quelque chose de ce pseudocode:
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 cette façon, vous appliquez principalement l'insensibilité à la casse, mais vous permettez aux clients de payer pour ce support s'ils utilisent des systèmes de messagerie qui prennent en charge de telles absurdités.
P. S. ILIKE est un mot-clé PostgreSQL: http://www.postgresql.org/docs/9.2/static/functions-matching.html
RFC 5321 2.4. Principes généraux de syntaxe et modèle de Transaction
Les implémentations SMTP doivent prendre soin de préserver le cas de la boîte aux lettres Local-pièces. En particulier, pour certains hôtes, l'utilisateur "smith" est différent de l'utilisateur "Smith".
Les domaines de Boîte aux lettres suivent les règles DNS normales et ne sont donc pas case sensible
Par @l3x, cela dépend.
Il y a clairement deux ensembles de situations générales où la bonne réponse peut être différente, avec un troisième qui n'est pas aussi général:
A) vous êtes un utilisateur qui envoie des mails privés:
Très peu de systèmes de messagerie modernes implémentent la sensibilité à la casse, donc vous êtes probablement bien pour ignorer la casse et choisir le cas que vous souhaitez utiliser. Il n'y a aucune garantie que tous vos mails seront livrés - mais si peu de mails serait négativement affecté que vous ne devrait pas s'inquiéter à ce sujet.
B) vous développez un logiciel de messagerie :
Voir RFC5321 2.4 extrait en bas.
Lorsque vous développez un logiciel de messagerie, Vous souhaitez que soit conforme à la RFC. Vous pouvez rendre les adresses e-mail de vos propres utilisateurs insensibles à la casse si vous le souhaitez (et vous devriez probablement le faire). Mais pour être conforme à la RFC, vous devez traiter les adresses externes comme sensibles à la casse .
C) Gestion des listes d'adresses e-mail appartenant à l'entreprise en tant qu'employé :
Il est possible que le même destinataire de l'e - mail soit ajouté à une liste plus d'une fois-mais en utilisant une casse différente. Dans cette situation, bien que les adresses soient techniquement différentes, un destinataire peut recevoir des courriels en double. La façon dont vous traitez cette situation est similaire à la situation a) en ce sens que vous êtes probablement bien pour les traiter comme des doublons et pour supprimer une entrée en double. Il est préférable de traiter ces cas particuliers cependant, en envoyant un courrier "rappel" aux deux adresses pour leur demander si elles sont des doublons les uns des autres et, si oui, quelle adresse e-mail le destinataire préférerait que vous utilisez.
D'un point de vue juridique, si vous supprimez un duplicata sans accusé de réception / autorisation des deux adresses, vous pouvez être tenu responsable pour avoir divulgué des informations/authentification privées à une adresse non autorisée simplement parce que deux réellement séparés les destinataires ont la même adresse avec des cas différents .
Extrait de RFC5321 2.4:
La partie locale d'une boîte aux lettres doit être traitée comme sensible à la casse. Par conséquent, les implémentations SMTP doivent prendre soin de préserver le cas de boîte aux lettres locale-pièces. En particulier, pour certains hôtes, l'utilisateur "smith" est différent de l'utilisateur "Smith". Cependant, l'exploitation de l'affaire la sensibilité des pièces locales de boîte aux lettres entrave l'interopérabilité et décourager.
Je ne peux penser qu'à une raison utile pour récupérer les e-mails avec une sensibilité à la casse: éviter le spam. Dites à vos amis et associés QU'ils doivent utiliser la bonne combinaison de majuscules et minuscules. (MyEmAiL@domain.com) je pense que les spammeurs sont peu susceptibles de suivre une telle règle, d'autant plus que votre adresse est transmise d'un serveur à l'autre.
L'inconvénient pourrait être si les clients de messagerie de vos amis sont mal conçus. Indépendamment de leurs intentions, ils peuvent être incapables de se conformer. Ce cela pourrait être particulièrement le cas avec des associés d'affaires légitimes qui stockent des milliers d'adresses et mélangent leurs données plus fréquemment. Ils ne vous donneront pas la même attention individuelle.
Je ne choisirai pas de le faire, mais je pense que ce serait assez efficace si vous voulez une adresse e-mail" Amis seulement " qui obtient moins de spam. Probablement pas bon pour les contacts d'affaires cependant.