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.
- De naam kan 1 tot 64 tekens lang zijn.
- 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 ######}
Ik ben blij dat iemand dat nuttig vond! Zoeken op Google naar "e-mailregexp" onthult veel reguliere expressies die niet synchroon lopen met de RFC.
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
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.)
Eigenlijk IS RFC2821 de juiste referentie voor de lengte van het e-mailadres. Ik vond het daar, maar niet in RFC 2822.
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.
Ontwikkelaars die de mogelijke grootte van e-mailadressen onderschatten, hebben een aantal problemen veroorzaakt: http://www.eph.co.uk/resources/email-address-le...
Ik denk dat als je e-mailadres iets kleins is, zoals "jack1983@aol.com", je misschien denkt dat zelfs 30 tekens vrijgevig zijn.
Sorry, de bovenstaande URL is verbroken ...
Ontwikkelaars die de mogelijke grootte van e-mailadressen onderschatten, hebben een aantal problemen veroorzaakt:
http://www.eph.co.uk/resources/email-address-leng...
Ik denk dat als je e-mailadres iets kleins is, zoals "jack1983@aol.com", je misschien denkt dat zelfs 30 tekens vrijgevig zijn.
Ik heb net dit bericht gevonden ... hilarisch. Ik vraag me nu af of ik dat domein kan registreren lol.