Gyldig lengde på e-postadresse

Depositphotos 1948865 s

Jeg måtte grave litt i dag for å finne den, men visste du hva gyldig lengde på en e-postadresse er? Det er faktisk delt inn i deler ... Navn@Domain.com. Dette er iht RFC2822.

  1. Navnet kan bestå av 1 til 64 tegn.
  2. Domenet kan bestå av 1 til 255 tegn.

Wow ... det betyr at dette kan være en gyldig e-postadresse:


loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc @ loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratca Phasellusatin
ciduntaturpisaduis.com

Prøv å montere det på et visittkort! Ironisk nok er de fleste e-postadressefelt begrenset til 100 tegn på nettet. Det er faktisk ikke gyldig. Hvis du vil validere en e-postadresse for riktig konstruksjon ved hjelp av PHP, fant jeg denne kodebiten på nettet:

http://derrick.pallas.us/email-validator/ # Lisens: Academic Free License 2.1 # Versjon: 2006-12-01a hvis (! 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)) returner false; liste ($ local, $ domain) = split ("@", $ email, 2); hvis (strlen ($ local)> 64 || strlen ($ domain)> 255) returner false; hvis ($ check &&! gethostbynamel ($ domain)) returnerer false; returner sant; # SLUTT ###### }

9 Kommentarer

  1. 1
  2. 2

    Ja, jeg la også merke til mangelen på samsvar med andre løsninger med RFC. Jeg har imidlertid lagt merke til at selv denne regex er atypisk og ikke standard. Jeg husker å lese det faktiske regulære uttrykket (å tillate <,>, , osv.) er for intensivt for de fleste prosesser.

    Det er imidlertid skrevet kortfattet og definitivt en løsning som bør være akseptabel for enhver bedrifts e-postapplikasjon.

    Takk igjen!
    Doug

  3. 3

    Dessverre koblet jeg den siden til feil RFC (2821 i stedet for 2822), men det er rettet. Vinkelparentesene kan ikke være en del av den lokale delen eller domenedelen av en e-postadresse; snarere representerer de tokeniseringspunkter, dvs. de kan brukes til å omgi en e-postadresse (for eksempel i e-postleseren din) nettopp fordi de ikke kan være en del av adressen.

    En ting som funksjonen min ikke gjør, er å bekymre seg for den siterte formen for e-postadresser - der den lokale delen vises i doble anførselstegn - fordi RFC2821 i hovedsak sier at ingen noen gang skal måtte skrive adressen sin på den måten. (Jeg tror skjemaet er for bakoverkompatibilitet og er nå dårlig praksis.)

  4. 4
  5. 5

    Det er en begrensning i RFC 2821 på lengden på en adresse i MAIL- og RCPT-kommandoer på 256 tegn. Den øvre grensen for adresselengder bør normalt anses å være 256.

    — Kilde: RFC 3696 Errata

    Dessuten, fordi RFC 2181 sier "Et fullt domenenavn er begrenset til 255 oktetter", blir det gjentatte ganger feiltolket av folk (inkludert forfattere av andre RFC-er) som at domenenavn kan være 255 tegn lange. Men RFC2181 snakker om representasjon på DNS-protokollnivå på ledningen, ikke utskrivbare tegn.

    Maksimal lengde på et domenenavn er 253 tegn (254 inkludert etterfølgende prikk, 255 oktetter på ledningen med avsluttende null). Og det er det BIND og DiG implementerer.

  6. 6
  7. 7
  8. 8

Hva tror du?

Dette nettstedet bruker Akismet for å redusere spam. Lær hvordan kommentaren din behandles.