Platná délka e-mailové adresy

Depositphotos 1948865 s

Musel jsem dnes něco kopat, abych to našel, ale věděli jste, jaká je platná délka e-mailové adresy? Je to vlastně rozbité na části ... Jméno@Doména.com. To je podle RFC2822.

  1. Název může mít 1 až 64 znaků.
  2. Doména může mít 1 až 255 znaků.

Páni ... to znamená, že by to mohla být platná e-mailová adresa:


loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc @ loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPhasellusatin
ciduntaturpisaduis.com

Zkuste to namontovat na vizitku! Je ironií, že většina polí e-mailových adres má na webu omezeno 100 znaků. To ve skutečnosti není platné. Pokud chcete ověřit e-mailovou adresu pro správnou konstrukci využívající PHP, našel jsem tento úryvek na síti:

http://derrick.pallas.us/email-validator/ # Licence: Academic Free License 2.1 # Verze: 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)) vrátit false; list ($ local, $ domain) = split ("@", $ email, 2); if (strlen ($ local)> 64 || strlen ($ domain)> 255) return false; if ($ check &&! gethostbynamel ($ domain)) return false; návrat true; # KONEC ###### }

9 Komentáře

  1. 1
  2. 2

    Ano, všiml jsem si také nesouladu jiných řešení s RFC. Všiml jsem si však, že i tento regex je atypický a není standardní. Pamatuji si, že čtení skutečného regulárního výrazu (umožňující <,> atd.) Je pro většinu procesů příliš intenzivní.

    Je však napsáno stručně a rozhodně řešení, které by mělo být přijatelné pro jakoukoli podnikovou e-mailovou aplikaci.

    Ještě jednou děkuji!
    Doug

  3. 3

    Bohužel jsem tuto stránku propojil se špatným RFC (2821 místo 2822), ale to bylo opraveno. Úhlové závorky nemohou být součástí místní nebo doménové části e-mailové adresy; spíše představují tokenizační body, tj. mohou být použity k obklopení e-mailové adresy (například ve vaší čtečce pošty) právě proto, že nemohou být součástí adresy.

    Jedna věc, kterou moje funkce nedělá, je starat se o citovanou formu e-mailových adres - kde se místní část zobrazuje v uvozovkách - protože RFC2821 v podstatě říká, že nikdo by nikdy nemusel psát svou adresu tímto způsobem. (Věřím, že formulář slouží zpětné kompatibilitě a nyní je špatnou praxí.)

  4. 4
  5. 5

    V RFC 2821 existuje omezení délky adresy v příkazech MAIL a RCPT o délce 256 znaků. Horní limit délek adres by měl být normálně považován za 256.

    - Zdroj: RFC 3696 Errata

    Protože RFC 2181 říká „Celý název domény je omezen na 255 oktetů“, lidé (včetně autorů jiných RFC) jej opakovaně nesprávně interpretují, což znamená, že názvy domén mohou mít délku 255 znaků. Ale RFC2181 hovoří o reprezentaci na úrovni protokolu DNS na drátě, ne o tisknutelných znacích.

    Maximální délka názvu domény je 253 znaků (254 včetně koncové tečky, 255 oktetů na drátu s koncovou hodnotou null). A to implementují BIND a DiG.

  6. 6
  7. 7
  8. 8

Co si myslíte?

Tyto stránky používají Akismet k omezení spamu. Zjistěte, jak jsou vaše údaje komentářů zpracovávány.