Érvényes e-mail cím hossza

Depositphotos 1948865 s

Ma kellett ásni, hogy megtaláljam, de tudta, hogy mi az e-mail cím érvényes hossza? Valójában részekre van bontva ... Név@Domain.com. Ez szerint RFC2822.

  1. A név 1-64 karakter lehet.
  2. A tartomány 1–255 karakter hosszú lehet.

Wow ... ez azt jelenti, hogy ez érvényes e-mail cím lehet:


loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc @ loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatincidbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPasellusatin
ciduntaturpisaduis.com

Próbálkozzon ezzel egy névjegykártyával! Ironikus módon a legtöbb e-mail mező 100 karakterre korlátozódik az interneten. Ez valójában nem érvényes. Ha egy e-mail címet szeretne érvényesíteni a PHP használatával történő megfelelő felépítéshez, akkor a neten találtam ezt a részletet:

http://derrick.pallas.us/email-validator/ # Licenc: Academic Free License 2.1 # Változat: 2006-12-01a if (! ereg (''. '^'. '[-! # $% & \ '* + / 0-9 =? AZ ^ _a-z {|} ~]'. '(\\.? [-! # $% & \' * + / 0-9 =? AZ ^ _a-z { |} ~]) * '.' @ '.' [a-zA-Z] (-? [a-zA-Z0-9]) * '.' (\\. [a-zA-Z] (- ? [a-zA-Z0-9]) *) + '.' $ ', $ email)) false értéket ad vissza; list ($ local, $ domain) = split ("@", $ email, 2); if (strlen ($ local)> 64 || strlen ($ domain)> 255) hamis értéket ad vissza; ha ($ check &&! gethostbynamel ($ domain)) false értéket ad vissza; return true; # END ######}

9 Comments

  1. 1
  2. 2

    Igen, észrevettem, hogy más megoldások nem felelnek meg az RFC-nek. Észrevettem azonban, hogy még ez a regex is atipikus, és nem a szabvány. Emlékszem, hogy a tényleges regex olvasása (a <,>, , stb. engedélyezése) túl intenzív a legtöbb folyamathoz.

    Mindazonáltal tömören van megírva, és határozottan olyan megoldás, amely minden vállalati e-mail alkalmazás számára elfogadható.

    Köszönöm mégegyszer!
    Doug

  3. 3

    Sajnos az oldalt rossz RFC-hez linkeltem (2821 helyett 2822), de ezt javítottuk. A szögletes zárójelek nem lehetnek részei az e-mail cím helyi vagy tartományi részének; hanem tokenizációs pontokat képviselnek, azaz egy e-mail cím körülölelésére használhatók (például a levelezőolvasóban), mert nem lehetnek a cím részei.

    Az egyik dolog, amit a funkcióm nem tesz, az az e-mail címek idézőjeles formája miatt – ahol a helyi rész dupla idézőjelben jelenik meg –, mert az RFC2821 lényegében azt mondja ki, hogy soha senkinek nem kell így írnia a címét. (Úgy gondolom, hogy az űrlap a visszafelé kompatibilitást szolgálja, és ma már rossz gyakorlat.)

  4. 4

    Valójában az RFC2821 AZ e-mail-cím hosszának megfelelő hivatkozása. Ott találtam, de nem az RFC 2822-ben.

  5. 5

    Az RFC 2821 korlátozza a címek hosszát a MAIL és RCPT parancsokban, 256 karakter. A címhosszak felső határát általában 256-nak kell tekinteni.

    — Forrás: RFC 3696 Errata

    Továbbá, mivel az RFC 2181 szerint „A teljes domain név 255 oktettre korlátozódik”, az emberek (beleértve más RFC-k íróit is) többször is félreértelmezik, ami azt jelenti, hogy a domain nevek 255 karakter hosszúak is lehetnek. De az RFC2181 DNS-protokoll szintű ábrázolásról beszél a vezetéken, nem nyomtatható karakterekről.

    A domain név maximális hossza 253 karakter (254 a záróponttal együtt, 255 oktett a vezetéken a lezáró nullával). És ezt valósítja meg a BIND és a DiG.

  6. 6
  7. 7
  8. 8

Mit gondolsz?

Ez az oldal Akismet-et használ a levélszemét csökkentése érdekében. Ismerje meg, hogyan dolgozik a megjegyzésed.