Geldige lengte van e-mailadres

Depositphotos 1948865 s

Ik moest vandaag wat zoeken om het te vinden, maar wist je wat de geldige lengte van een e-mailadres is? Het is eigenlijk opgedeeld in delen ... Naam@Domain.com. Dit blijkt uit RFC2822.

  1. De naam kan 1 tot 64 tekens lang zijn.
  2. Het domein mag 1 tot 255 tekens lang zijn.

Wauw ... dat betekent dat dit een geldig e-mailadres kan zijn:


loremaipsumadolorasitaametbaconectetueraadipiscin
gaelitanullamc @ loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbataturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPhasellusatin
ciduntaturpisaduis.com

Pas dat eens op een visitekaartje! Ironisch genoeg zijn de meeste e-mailadresvelden op internet beperkt tot 100 tekens. Dat klopt eigenlijk niet. Als je een e-mailadres wilt valideren voor een juiste constructie met behulp van PHP, heb ik dit fragment op het net gevonden:

http://derrick.pallas.us/email-validator/ # Licentie: Academic Gratis licentie 2.1 # Versie: 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)) return false; lijst ($ local, $ domein) = split ("@", $ email, 2); if (strlen ($ local)> 64 || strlen ($ domein)> 255) return false; if ($ check &&! gethostbynamel ($ domein)) return false; terugkeer waar; # EINDE ######}

9 reacties

  1. 1
  2. 2

    Ja, ik merkte ook dat andere oplossingen niet voldoen aan de RFC. Ik heb echter gemerkt dat zelfs deze regex atypisch is en niet de standaard. Ik herinner me dat het lezen van de eigenlijke regex (toestaan ​​van <,>, enz.) Te intensief is voor de meeste processen.

    Het is echter beknopt geschreven en zeker een oplossing die acceptabel zou moeten zijn voor elke zakelijke e-mailtoepassing.

    Nogmaals bedankt!
    Doug

  3. 3

    Helaas heb ik die pagina aan de verkeerde RFC gelinkt (2821 in plaats van 2822) maar dat is gecorrigeerd. De punthaken mogen geen deel uitmaken van de lokale of domeingedeelten van een e-mailadres; ze vertegenwoordigen eerder tokenisatiepunten, dwz ze kunnen worden gebruikt om een ​​e-mailadres te omringen (bijvoorbeeld in uw e-maillezer) juist omdat ze geen deel kunnen uitmaken van het adres.

    Een ding dat mijn functie niet doet, is zorgen maken over de geciteerde vorm van e-mailadressen - waar het lokale gedeelte tussen dubbele aanhalingstekens staat - omdat RFC2821 in wezen zegt dat niemand ooit zijn adres op die manier zou moeten schrijven. (Ik geloof dat het formulier voor achterwaartse compatibiliteit is en nu een slechte gewoonte is.)

  4. 4
  5. 5

    Er is een beperking in RFC 2821 met betrekking tot de lengte van een adres in MAIL- en RCPT-opdrachten van 256 tekens. De bovengrens voor adreslengtes moet normaal worden beschouwd als 256.

    - Bron: RFC 3696 Errata

    Omdat RFC 2181 zegt "Een volledige domeinnaam is beperkt tot 255 octetten", wordt het ook herhaaldelijk verkeerd geïnterpreteerd door mensen (inclusief de schrijvers van andere RFC's), wat betekent dat domeinnamen 255 tekens lang kunnen zijn. Maar RFC2181 heeft het over representatie op DNS-protocolniveau op de draad, niet over afdrukbare tekens.

    De maximale lengte van een domeinnaam is 253 tekens (254 inclusief volgpunt, 255 octetten op de draad met nul eindigend). En dat is wat BIND en DiG implementeren.

  6. 6
  7. 7
  8. 8

Wat denk je?

Deze site gebruikt Akismet om spam te verminderen. Ontdek hoe uw reactiegegevens worden verwerkt.