Frage

    

Diese Frage bereits eine Antwort hier:

         

Ich erkennen, dass eine E-Mail-Adresse im Grunde unbegrenzt lang sein kann so jede Größe, die ich auf meinem varchar E-Mail-Adressfeld verhängen wird willkürlich. Aber ich frage mich, was der „Standard“ ist? Wie lange Jungs Sie es machen? (Gleiche Frage für Feld Namen ...)

Update: Anscheinend ist die maximale Länge für eine E-Mail-Adresse ist 320 (<= 64 Namensteil, <= 255 Domäne). Haben Sie diese verwenden?

War es hilfreich?

Lösung

Die theoretische Grenze ist wirklich lang, aber brauchen Sie wirklich über diese langen E-Mail-Adressen Sorgen machen? Wenn jemand nicht mit einer 100-Zeichen E-Mail anmelden können, kümmert es dich wirklich? Eigentlich bevorzugen wir können sie nicht.

Einige statistische Daten können etwas Licht in das Dunkel bringen. Wir analysierten eine Datenbank mit über 10 Millionen E-Mail-Adressen. Diese Adressen werden nicht bestätigt, so gibt es ungültig diejenigen sind. Hier sind einige interessante Fakten,

  1. Die längste gültige ist 89.
  2. Es gibt Hunderte längere bis an die Grenze unserer Spalte (255), aber sie sind offensichtlich gefälscht durch visuelle Inspektion.
  3. Die Spitze der Längenverteilung ist 19.
  4. Es ist nicht lange Schwanz. Alles fällt scharf nach 38.

gereinigt Wir haben die DB bis nach etwas mehr als 40 Wegwerfen Die gute Nachricht ist, dass niemand hat sich beschwert, aber die schlechte Nachricht ist nicht viele Aufzeichnungen wurde gereinigt.

Andere Tipps

ich in der Vergangenheit habe gerade 255 getan, weil, dass die so tief verwurzelt Standard des kurzen, aber nicht zu kurz Eingangs ist. Das, und ich bin ein Gewohnheitstier.

Da jedoch der max 319 ist, würde ich nvarchar(320) auf der Säule tun. Muss ich erinnere mich an die @!

nvarchar nicht den Raum verwenden, die Sie nicht brauchen, wenn Sie also nur 20 Zeichen E-Mail-Adresse haben, wird es nur 20 Byte aufnehmen. Dies steht im Gegensatz zu einem nchar die immer nimmt ihr Maximum (es rechte Pads den Wert mit Leerzeichen) auf.

Ich würde auch nvarchar anstelle von varchar verwenden, da es Unicode ist. Angesichts der Volatilität der E-Mail-Adressen, das ist definitiv der Weg zu gehen.

Die folgende E-Mail-Adresse ist nur 94 Zeichen:

i.have.a.really.long.name.like.seetharam.krishnapillai@AReallyLongCompanyNameOfSomeKind.com.au

  • Würde eine Organisation tatsächlich geben Sie eine E-Mail so lange her?
  • Wenn sie dumm genug, würden Sie eigentlich verwenden eine E-Mail-Adresse wie das?
  • Würde anyone? Natürlich nicht. Zu lang und zu schwer zu merken zu geben.

Auch eine 92-jährige technophobe würde herausfinden, wie für eine schöne kurze gmail-Adresse anzumelden, und verwenden Sie nur das, sondern geben Sie diese in Ihre Registrierungsseite.

Festplattenspeicher ist wahrscheinlich kein Problem, aber es gibt mindestens zwei Probleme mit ermöglicht Felder Benutzereingaben oft länger als sie sein müssen:

  • Es werden sie durcheinander bringen könnte Ihre UI (am besten werden sie abgeschnitten werden, im schlimmsten Fall sie schieben Ihre Container und Ränder um)
  • Böswillige Benutzer können mit ihnen tun Dinge, die man nicht voraussehen kann (wie jene Fälle, in denen Hacker ein kostenloses Online-API verwendet, um eine Reihe von Daten zu speichern)

Ich mag 50 Zeichen:

123456789.123456789.123456789@1234567890123456.com

Wenn ein Benutzer in einer Million hat ihre andere E-Mail-Adresse verwenden, um meine Anwendung zu verwenden, sollte es so sein.

(Statistiken zeigen, dass niemand geht eigentlich mehr als etwa 40 Zeichen für E-Mail-Adresse, siehe zB: ZZ Coder Antwort https: / /stackoverflow.com/a/1297352/87861 )

Wenn Sie wirklich pendantic darüber zu sein, stellen Sie einen Benutzernamen varchar (60), Domain varchar (255). Dann können Sie lächerliche Statistiken über Nutzung der Domäne tun, die etwas schneller als es als ein einzelnes Feld zu tun. Wenn Sie das Gefühl wirklich gun-ho über die Optimierung, die auch den SMTP-Server in der Lage machen E-Mails mit weniger Verbindungen / bessere Dosierung auszusenden.

RFC 5321 (die aktuelle SMTP-Spezifikation, obsolet RFC2821) heißt es:

  

4.5.3.1.1. Local-Teil

     

Die maximale Gesamtlänge eines Benutzers   Namen oder anderer lokaler Teil 64
  Oktetts.

     

4.5.3.1.2. Domain

     

Die maximale Gesamtlänge von a   Domain-Namen oder die Nummer ist 255 Bytes.

Dies bezieht sich auf nur localpart @ domain, für insgesamt 320 ASCII (7 Bit) Zeichen.

Wenn Sie Ihre Daten zu normalisieren, vielleicht durch den Lokalteil und Domäne in getrennte Felder aufgeteilt, zusätzliche Dinge im Auge zu behalten:

  • Eine Technik als VERP bekannt für automatisch generierte E-Mails in voller Länge localparts führen kann (kann Ihren Anwendungsfall nicht relevant sein)
  • Domains sind Groß- und Kleinschreibung; empfehlen die Kleinschreibung Domänenteil
  • localparts Groß- und Kleinschreibung; user@domain.com und USER@domain.com sind technisch verschiedene Adressen pro die Spezifikationen, obwohl die Politik auf domain.com können , die beiden Adressen als gleichwertig zu behandeln. Es ist am besten Lokalteil Fall zu beschränken, um Domänen Falten, die dies zu tun, sind bekannt.

Nach diesem Text, auf den richtigen RFC-Dokumenten basiert, ist es nicht 320, sondern 254: http://www.eph.co.uk/resources/email -Adresse-Länge-faq /

Bearbeiten : Mit Wayback Machine: https : //web.archive.org/web/20120222213813/http: //www.eph.co.uk/resources/email-address-length-faq/

  

Was ist die maximale Länge einer E-Mail-Adresse?

     

254 Zeichen

     

Es scheint einige Verwirrung über die maximale gültige E-Mail zu sein   Adressgröße. Die meisten Menschen glauben, dass es 320 Zeichen zu sein (64   Zeichen für die Benutzername + 255 Zeichen für die Domain + 1   Zeichen für das @ -Symbol). Andere Quellen legen nahe, 129 (64 + 1 + 64)   oder 384 (128 + 1 + 255 verdoppelt sich die Benutzernamen unter der Annahme einer Länge in der   Zukunft).

     

Diese Verwirrung bedeutet, dass Sie sollten die ‚Robustheit Prinzip‘ beachten   ( "Entwickler sollten sorgfältig Software schreiben, die genau befolgt   aber noch vorhandene RFCs akzeptieren und analysieren Eingabe von Peers, das nicht sein könnte   im Einklang mit dem RFCs.“- Wikipedia), wenn das Schreiben von Software, dass   befasst sich mit E-Mail-Adressen. Darüber hinaus können einige Software verkrüppelt   durch naive Annahmen, z.B. dass 50 Zeichen zu denken ist ausreichend   (Beispiele). Ihre 200 Zeichen E-Mail-Adresse sein kann technisch gültig   aber das wird nicht helfen, wenn die meisten Websites oder Anwendungen ablehnen.

     

Die tatsächliche maximale E-Mail-Länge ist zur Zeit 254 Zeichen:

     

"Die ursprüngliche Version von RFC 3696 in der Tat sagte 320 das Maximum war   Länge, aber John Klensin (ICANN) anschließend akzeptiert dies   falsch. "

     

"Dies ergibt sich aus der einfachen Arithmetik der maximalen Länge einer Domain   (255 Zeichen) + maximale Länge einer Mailbox (64 Zeichen) + das @   symbol = 320 Zeichen. Falsch. Diese canard ist tatsächlich dokumentiert in   die ursprüngliche Version von RFC3696. Es wurde in der errata korrigiert.   Es gibt tatsächlich eine Beschränkung von RFC5321 auf dem Weg Elemente einer   SMTP-Transaktion von 256 Zeichen. Dazu gehört aber spitzen Klammern   um die E-Mail-Adresse, so dass die maximale Länge einer E-Mail-Adresse ist   254 Zeichen.“- Dominic Sayers

Ich verwende varchar (64) Ich glaube nicht, dass jemand mehr E-Mail haben könnte

Für E-Mail, unabhängig von der Spezifikation, gehe ich fast immer mit 512 (nvarchar). Namen und Vornamen sind ähnlich.

Wirklich, müssen Sie sehen, wie viel kümmern uns um Sie ein wenig mehr Daten. Für mich, vor allem, es ist nicht eine Sorge, so dass ich auf der konservativen Seite irren. Aber wenn Sie sich entschieden haben, durch logisch und genaues Mittel, die Sie benötigen um Platz zu sparen, dann so tun. Aber im Allgemeinen konservativ mit Feldgrößen, und das Leben wird gut sein.

Beachten Sie, dass wahrscheinlich nicht alle E-Mail-Clients die RFC-Unterstützung, so dass unabhängig davon, was es heißt, Sie können verschiedene Dinge in der Natur begegnen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top