Giltig längd på e-postadress

Depositphotos 1948865 s

Jag var tvungen att gräva idag för att hitta den, men visste du vad giltigheten på en e-postadress är? Det är faktiskt uppdelat i delar ... Namn@domän.com. Detta är enligt RFC2822.

  1. Namnet kan bestå av 1 till 64 tecken.
  2. Domänen kan bestå av 1 till 255 tecken.

Wow ... det betyder att det här kan vara en giltig e-postadress:


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

Prova att montera det på ett visitkort! Ironiskt nog är de flesta e-postadressfält begränsade till 100 tecken på webben. Det är faktiskt inte giltigt. Om du vill validera en e-postadress för korrekt konstruktion med hjälp av PHP hittade jag det här utdraget på nätet:

http://derrick.pallas.us/email-validator/ # Licens: Academic Free License 2.1 # Version: 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)) returnera falskt; lista ($ local, $ domain) = split ("@", $ email, 2); om (strlen ($ local)> 64 || strlen ($ domain)> 255) returnerar false; om ($ check &&! gethostbynamel ($ domain)) returnerar false; återvänd sant; # SLUTET ###### }

9 Kommentarer

  1. 1
  2. 2

    Ja, jag märkte också att andra lösningar inte överensstämmer med RFC. Jag har dock märkt att även denna regex är atypisk och inte standard. Jag kommer ihåg att läsa den faktiska regexen (att tillåta <,> osv.) Är för intensiv för de flesta processer.

    Det är dock skrivet kortfattat och definitivt en lösning som borde vara acceptabel för alla e-postprogram för företag.

    Tack igen!
    Doug

  3. 3

    Tyvärr länkade jag den sidan till fel RFC (2821 istället för 2822) men det har rättats. Vinkelparenteserna kan inte vara en del av en e-postadresss lokala eller domändelar; snarare representerar de tokeniseringspunkter, dvs de kan användas för att omge en e-postadress (till exempel i din e-postläsare) just för att de inte kan vara en del av adressen.

    En sak som min funktion inte gör är att oroa sig för den citerade formen av e-postadresser - där den lokala delen visas i dubbla citat - för RFC2821 säger i princip att ingen någonsin ska behöva skriva sin adress på det sättet. (Jag tror att formuläret är för bakåtkompatibilitet och nu är dålig praxis.)

  4. 4
  5. 5

    Det finns en begränsning i RFC 2821 för längden på en adress i MAIL- och RCPT-kommandon på 256 tecken. Den övre gränsen för adresslängder bör normalt anses vara 256.

    - Källa: RFC 3696 Errata

    Eftersom RFC 2181 säger ”Ett fullständigt domännamn är begränsat till 255 oktetter”, tolkas det upprepade gånger av människor (inklusive författare till andra RFC: er) så att domännamn kan vara 255 tecken långa. Men RFC2181 pratar om representation av DNS-protokollnivå på kabeln, inte utskrivbara tecken.

    Den maximala längden på ett domännamn är 253 tecken (254 inklusive efterföljande punkt, 255 oktetter på kabeln med avslutande null). Och det är vad BIND och DiG implementerar.

  6. 6
  7. 7
  8. 8

Vad tror du?

Den här sidan använder Akismet för att minska spam. Läs om hur din kommentardata behandlas.