web-dev-qa-db-fra.com

Est-ce que tous les fournisseurs de messagerie ignorent les points devant @?

Je sais que gmail permet à un utilisateur d'insérer autant de points qu'il le souhaite dans une adresse e-mail avant le signe @. Gmail permet également aux utilisateurs d'ajouter l'adresse e-mail comme suit: [email protected]. Toutes ces adresses de messagerie "différentes" sont essentiellement la même adresse. (Lien vers le blog Google décrivant ces "fonctionnalités")

Je souhaite empêcher les utilisateurs de créer plusieurs comptes avec essentiellement la même adresse électronique. J'ai décidé de stocker les adresses électroniques dans ma base de données avec ces périodes et tout ce qui suit et notamment un + sing singed stripped, mais je me pose la question suivante: est-il courant d'ignorer les périodes précédant le signe @ que les fournisseurs de messagerie suivent généralement?

28
DudeOnRock

Ceci est très spécifique à Gmail, mais cela s'applique également à Google Apps pour le domaine. Vous ne pourrez donc le faire que pour @ gmail.com

Je ne ferais pas cela, cela va seulement aliéner vos utilisateurs honnêtes et ne pas empêcher quiconque est déterminé à créer plusieurs comptes.

22
Pascal Belloncle

Au cours des derniers jours, j'ai rencontré le même problème. Après des recherches sur le Web et quelques vérifications, j’ai trouvé que:

  • POINTS IMPORTANTS DANS: Microsoft Outlook, Yahoo Mail, ID Apple iCloud
  • LES POINTS NE SONT PAS IMPORTANTS DANS: Gmail, identifiant Facebook
  • DOTS STRICTEMENT INTERDITS: Twitter

Source: Un article sur Slate

Je suis parvenu à la conclusion que la majorité des utilisateurs utilisaient les services proposés par Microsoft, Google ou Yahoo. Je peux donc avoir une expression rationnelle spécifique à une application comme celle-ci.

var eml_exp = /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@(gmail.com)$/i;
if(eml_exp.test("email@addrss"))
//if it's a gmail address, then remove periods from local part and also anything
// after `+` sign . Then compare the address in your existing user table,
// if you find it unique or unused then let the user to register.

Vous pouvez également lire les manuels d'autres services connus et les mettre en œuvre en fonction de ceux-ci.

"N'oubliez pas d'ouvrir le code source de votre travail: p"

Mettre à jour

Selon cette SO question Ajout de + texte avant le @ dans un courrier électronique , vous pouvez bloquer l’utilisation de la signature + et résoudre le problème entier.

13
Ravinder Payal

"Je veux empêcher les utilisateurs de créer plusieurs comptes"

Peut-être, comme le disent les autres ici, que n'est pas une bonne raison d'ignorer les règles.

Cependant, une bonne raison peut être d'empêcher les utilisateurs de créer accidentellement différents comptes. Disons qu'une application Web a été récemment installée et qu'elle n'est pas encore configurée pour fonctionner avec Gmail OpenAuth. Ainsi, les gens saisissent leurs adresses manuellement pour s'inscrire avec un compte de messagerie local + mot de passe.

Plus tard, l’application Web configure OpenAuth et un bouton Connexion avec Gmail. Maintenant, les personnes ayant une adresse Gmail, cliquez sur ce bouton pour vous connecter. Et ... dans certains cas, des personnes ont accidentellement tapé manuellement leur adresse avec no points, ou avec points, ou différent points, quand ils ont tapé à la main (bien, clavier) précédemment.

Maintenant, l'application pense que les adresses sont différentes et crée automatiquement un nouveau compte pour l'utilisateur. Il se demande alors: "Où sont toutes mes anciennes choses? Ce que j'ai créé auparavant avec ce compte? Je me suis connecté avec la même adresse e-mail!"

Exemple concret de cet événement: https://meta.discourse.org/t/discourse-creates-new-users-if-dots-are-present-absent-in-google-email-address-when-logging -in-using-google/66151

Je pense que pour les non-spécialistes, ignorer les points dans les adresses Gmail est l’approche conviviale.

Pour permettre aux techniciens de créer de nombreux comptes en utilisant le même compte Gmail (à des fins de test), vous pouvez choisir de considérer whatever+with-tags@gmail comme une adresse différente. - Tout le monde est content: -) (Les filtres anti-spam et anti-spam peuvent prendre en compte le fait que [email protected] et [email protected] sont la même personne.)

0
KajMagnus