webentwicklung-frage-antwort-db.com.de

Ignorieren alle E-Mail-Anbieter Punkte vor @?

Ich weiß, dass mit gmail ein Benutzer beliebig viele Punkte in eine E-Mail-Adresse vor dem @ -Zeichen einfügen kann. Mit Google Mail können Benutzer die E-Mail-Adresse auch wie folgt anhängen: [email protected] Alle diese "unterschiedlichen" E-Mail-Adressen haben im Wesentlichen dieselbe Adresse. (Link zum Google-Blog, in dem diese "Funktionen" beschrieben werden)

Ich möchte verhindern, dass Benutzer mehrere Konten mit derselben E-Mail-Adresse erstellen. Ich habe mich entschieden, E-Mail-Adressen in meiner Datenbank mit den folgenden Zeiträumen zu speichern und alles, was ein Pluszeichen enthält, einschließlich +, aber jetzt frage ich mich: Ist es ein Standard, Zeiträume vor dem @ -Zeichen zu ignorieren, dem E-Mail-Anbieter meist folgen?

28
DudeOnRock

Dies ist wirklich spezifisch für Google Mail. Dies gilt jedoch auch für Google-Apps für Domains, sodass Sie dies nur für @ gmail.com tun können

Ich würde das nicht tun, das wird nur Ihre ehrlichen Benutzer verunsichern und nicht verhindern, dass sich jemand dazu entschließt, mehrere Konten zu erstellen.

22

In den letzten Tagen bin ich auf das gleiche Problem gestoßen. Nachdem ich im Internet recherchiert und ein paar Dinge geprüft hatte, fand ich Folgendes:

  • Punkte sind wichtig: Microsoft Outlook, Yahoo Mail, Apple iCloud ID
  • DOTS DATEN NICHT GUT IN: Gmail, Facebook-ID
  • PUNKTE STRENG VERBOTEN: Twitter

Quelle: Ein Artikel über Schiefer

Ich kam zu dem Schluss, dass eine Mehrheit der Nutzer die von Microsoft, Google oder Yahoo angebotenen Dienste nutzt. So kann ich eine anwendungsspezifische Regex so haben.

var eml_exp = /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@(gmail.com)$/i;
if(eml_exp.test("[email protected]"))
//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.

Sie können auch Handbücher anderer bekannter Dienste lesen und entsprechend implementieren.

"Vergessen Sie nicht, Ihre Arbeit zu öffnen: p"

Update

Entsprechend dieser SO - Frage Durch Hinzufügen von + Text vor dem @ in einer E-Mail können Sie die Verwendung von +-Zeichen blockieren. Das gesamte Problem von Ihnen wird dadurch gelöst, und mein Problem wird gelöst.

13
Ravinder Payal

"Ich möchte verhindern, dass Benutzer mehrere Konten erstellen"

Wie die anderen hier sagen, ist das vielleicht kein guter Grund, Perioden zu ignorieren.

Es kann jedoch ein guter Grund sein, zu verhindern, dass Benutzer versehentlich unterschiedliche Konten erstellen. Angenommen, eine Web-App wurde kürzlich installiert und ist noch nicht für die Verwendung mit Google Mail OpenAuth konfiguriert. So geben die Leute ihre Adressen manuell ein, um sich bei lokalen E-Mail- und Passwort-Konten anzumelden.

Später konfiguriert die Web-App OpenAuth und eine Schaltfläche Mit Gmail anmelden. Nun, Personen mit einer Gmail-Adresse, klicken Sie auf diese Schaltfläche, um sich anzumelden. In einigen Fällen tippten Leute versehentlich ihre Adressen mit nein Punkten oder mit Punkten oder verschiedene -Punkte, wenn sie zuvor von Hand (gut, Tastatur) eingegeben wurden.

Die App ist der Meinung, dass die Adressen unterschiedlich sind, und erstellt automatisch ein neues Konto für den Benutzer. Dann fragt er/sie sich: "Wo sind meine alten Sachen? Was ich zuvor mit diesem Konto erstellt habe? Ich habe mich mit derselben E-Mail-Adresse angemeldet!"

Ein reales Beispiel für dieses Ereignis: https://meta.discourse.org/t/discourse-creates-new-users-if-dots-are-present-absent-in-google-email-address-hen-logging -in-using-google/66151

Ich denke, für nicht-technische Leute ist das Annehmen von Punkten in Google Mail-Adressen der Ansatz {benutzerfreundlich.

Damit Techniker viele Konten mit derselben Google Mail-Adresse (zu Testzwecken) erstellen können, können Sie für [email protected] eine andere Adresse wählen. - Alle glücklich: -) (Astroturfing- und Spam-Filter können berücksichtigen, dass [email protected] und [email protected] dieselbe Person sind.)

0
KajMagnus