Geldige e-posadreslengte

Depositphotos 1948865 s

Ek moes vandag grawe om dit op te spoor, maar het u geweet wat die geldige lengte van 'n e-posadres is? Dit is eintlik in dele opgebreek ... Naam@Domein.com. Dit is volgens RFC2822.

  1. Naam kan 1 tot 64 karakters bevat.
  2. Domein kan 1 tot 255 karakters bevat.

Sjoe ... dit beteken dat dit 'n geldige e-posadres kan wees:


loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc @ loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimnn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratca Phasellusatin
ciduntaturpisaduis.com

Probeer dit op 'n besigheidskaartjie pas! Ironies genoeg is die meeste e-posadresvelde tot 100 karakters op die internet beperk. Dit is eintlik nie geldig nie. As u 'n e-posadres wil bevestig vir die regte konstruksie met behulp van PHP, het ek die brokkie op die internet gevind:

http://derrick.pallas.us/email-validator/ # Lisensie: Akademiese gratis lisensie 2.1 # Weergawe: 2006-12-01a as (! 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]) *) + '.' $ ', $ e-pos)) vals terug; lys ($ local, $ domain) = split ("@", $ email, 2); as (strlen ($ local)> 64 || strlen ($ domain)> 255) vals teruggee; as ($ check &&! gethostbynamel ($ domain)) vals teruggee; terugkeer waar; # EINDE ######}

9 Comments

  1. 1
  2. 2

    Ja, ek het opgemerk die gebrek aan voldoening aan ander oplossings aan die RFC. Ek het egter opgemerk dat selfs hierdie regex atypies is en nie die standaard nie. Ek onthou dat die lees van die werklike regex (om <,>, ens. Toe te laat) te intensief is vir die meeste prosesse.

    Dit is egter bondig en beslis 'n oplossing geskryf wat aanvaarbaar is vir enige e-posprogram vir ondernemings.

    Weereens dankie!
    Doug

  3. 3

    Ongelukkig het ek die bladsy aan die verkeerde RFC gekoppel (2821 in plaas van 2822), maar dit is reggestel. Die hoekhakies kan nie deel uitmaak van die plaaslike of domeindele van 'n e-posadres nie; Inteendeel, dit verteenwoordig tokeniseringspunte, dws dit kan gebruik word om 'n e-posadres (byvoorbeeld in u e-posleser) te omring, juis omdat dit nie deel van die adres kan wees nie.

    Een ding wat my funksie nie doen nie, is om my te bekommer oor die aangehaalde vorm van e-posadresse - waar die plaaslike onderdeel in dubbele aanhalings verskyn - omdat RFC2821 in wese sê dat niemand ooit hul adres so hoef te skryf nie. (Ek glo die vorm is vir agteruitversoenbaarheid en is nou slegte praktyk.)

  4. 4
  5. 5

    Daar is 'n beperking in RFC 2821 op die lengte van 'n adres in MAIL- en RCPT-opdragte van 256 karakters. Die boonste limiet vir adreslengtes moet normaalweg as 256 beskou word.

    - Bron: RFC 3696 Errata

    Omdat RFC 2181 sê: ''n Volledige domeinnaam is beperk tot 255 oktette', word dit herhaaldelik verkeerd geïnterpreteer deur mense (insluitend die skrywers van ander RFC's) dat dit beteken dat domeinname 255 karakters lank kan wees. Maar RFC2181 praat oor die voorstelling van DNS-protokol op die draad, nie afdrukbare karakters nie.

    Die maksimum lengte van 'n domeinnaam is 253 karakters (254 insluitend agterste punt, 255 oktette op die draad met nul eindig). En dit is wat BIND en DiG implementeer.

  6. 6
  7. 7
  8. 8

Wat dink jy?

Hierdie webwerf gebruik Akismet om spam te verminder. Leer hoe jou opmerking verwerk is.