É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 cím 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)) hamis; return true; # END ######}

9 Comments

  1. 1
  2. 2

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

    Ez azonban tömören és határozottan meg van írva, és minden vállalati e-mail alkalmazás számára elfogadhatónak kell lennie.

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

  3. 3

    Sajnos az oldalt hibás RFC-hez (2821 helyett 2822) kapcsoltam, de ezt kijavítottuk. A szögletes zárójelek nem lehetnek részei az e-mail cím helyi vagy domain részének; inkább tokenizálási pontokat képviselnek, azaz felhasználhatók egy e-mail cím körülvételére (például az e-mail olvasóban), éppen azért, mert nem lehetnek részei a címnek.

    Egy dolog, amit a funkcióm nem csinál, az az e-mail címek idézett formája miatt aggódni - ahol a helyi rész kettős idézőjelben jelenik meg -, mert az RFC2821 lényegében azt mondja, hogy soha senkinek nem kell így megírnia a címét. (Úgy gondolom, hogy az űrlap a visszafelé való kompatibilitást szolgálja, és most rossz gyakorlat.)

  4. 4

    Valójában az RFC2821 IS a helyes hivatkozás az e-mail cím hosszára. Ott találtam, de az RFC 2822-ben nem.

  5. 5

    Az RFC 2821-ben korlátozás van érvényben a cím hosszára a MAIL és RCPT parancsokban, 256 karakterből. A címhosszak felső határát általában 256-nak kell tekinteni.

    - Forrás: RFC 3696 Errata

    Továbbá, mivel az RFC 2181 azt mondja: „A teljes tartománynév 255 oktettre korlátozódik”, ezért az emberek (beleértve más RFC-k íróit is) ismételten félreértelmezik azt, hogy a domainnevek 255 karakter hosszúak lehetnek. De az RFC2181 DNS-protokoll-szintű ábrázolásról beszél a vezetéken, nem nyomtatható karakterekről.

    A tartománynév maximális hossza 253 karakter (254 a végpontot is beleértve, 255 oktett a nullán végződő vezetéken). É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.