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
tumarutrumbaturpisamassaakonsektetuaarcubaeuatin
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 die gebrek aan voldoening van ander oplossings met die RFC ook opgemerk. Ek het egter opgemerk dat selfs hierdie regex atipies is en nie die standaard nie. Ek onthou dat die lees van die werklike regex (laat <,>, , ens toe) te intensief is vir die meeste prosesse.

    Dit is egter bondig geskryf en beslis 'n oplossing wat aanvaarbaar behoort te wees vir enige onderneming se e-postoepassing.

    Weereens dankie!
    Doug

  3. 3

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

    Een ding wat my funksie nie doen nie, is om bekommerd te wees oor die aangehaalde vorm van e-posadresse - waar die plaaslike deel in dubbele aanhalingstekens verskyn - want RFC2821 sê in wese dat niemand ooit hul adres so moet skryf nie. (Ek glo die vorm is vir terugwaartse versoenbaarheid 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 op adreslengtes moet normaalweg as 256 beskou word.

    — Bron: RFC 3696 Errata

    Ook, omdat RFC 2181 sê "'n Volledige domeinnaam is beperk tot 255 oktette", word dit herhaaldelik deur mense (insluitend die skrywers van ander RFC's) verkeerd geïnterpreteer as wat beteken dat domeinname 255 tekens lank kan wees. Maar RFC2181 praat van DNS-protokolvlak-voorstelling op die draad, nie drukbare karakters nie.

    Die maksimum lengte van 'n domeinnaam is 253 tekens (254 insluitende agterste punt, 255 oktette op die draad met eindigende nul). 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.