Tinkamas el. Pašto adreso ilgis

Depositphotos 1948865 s

Šiandien turėjau šiek tiek kasti, kad jį surasčiau, bet ar žinojote, koks yra galiojantis el. Pašto adreso ilgis? Iš tikrųjų jis suskaidytas į dalis ... Vardas@Domenas.com. Tai yra pagal RFC2822.

  1. Pavadinimas gali būti nuo 1 iki 64 simbolių.
  2. Domenas gali būti nuo 1 iki 255 simbolių.

Oho ... tai reiškia, kad tai gali būti galiojantis el. Pašto adresas:


loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc @ loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPuikiai nustebinti, kad nepatiktų blogų laikų
tumarutrumbaturpisamassaaconsectetueararcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPasellusatin
ciduntaturpisaduis.com

Pabandykite įsidėti tai į vizitinę kortelę! Ironiška, tačiau daugumoje el. Pašto adresų laukų internete yra 100 simbolių. Tai iš tikrųjų negalioja. Jei norite patvirtinti el. Pašto adresą, kad tinkamai sukurtumėte naudodami PHP, internete radau šį fragmentą:

http://derrick.pallas.us/email-validator/ # Licencija: „Academic Free“ licencija 2.1 # Versija: 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)) grąžinti klaidingą; sąrašas ($ local, $ domain) = split ("@", $ email, 2); jei (strlen ($ local)> 64 || strlen ($ domain)> 255) grąžina false; jei ($ check &&! gethostbynamel ($ domain)) grąžins klaidingą; grįžti tiesa; # PABAIGA ###### }

9 komentarai

  1. 1
  2. 2

    Taip, pastebėjau ir kitų sprendimų neatitikimą RFC. Tačiau pastebėjau, kad net šis reguliarus reiškinys yra netipiškas, o ne standartas. Prisimenu, kad faktinio reguliaraus reiškinio skaitymas (leisti <,>, , ir tt) yra per daug intensyvus daugeliui procesų.

    Tačiau tai parašyta glaustai ir tikrai sprendimas, kuris turėtų būti priimtinas bet kuriai įmonės el. pašto programai.

    Ačiū dar kartą!
    Doug

  3. 3

    Deja, susiejau tą puslapį su netinkamu RFC (2821, o ne 2822), bet tai buvo ištaisyta. Kampiniai skliaustai negali būti el. pašto adreso vietinių ar domeno dalių dalis; veikiau jie žymi atpažinimo taškus, ty jie gali būti naudojami elektroninio pašto adresui apsupti (pavyzdžiui, jūsų laiškų skaitytuve), nes jie negali būti adreso dalis.

    Vienas dalykas, kurio mano funkcija nedaro, yra nerimauti dėl cituojamų el. pašto adresų formos, kur vietinė dalis yra dvigubose kabutėse, nes RFC2821 iš esmės sako, kad niekam niekada nereikėtų taip rašyti savo adreso. (Manau, kad forma skirta atgaliniam suderinamumui ir dabar yra netinkama praktika.)

  4. 4
  5. 5

    RFC 2821 yra 256 simbolių adreso ilgio MAIL ir RCPT komandose apribojimas. Viršutinė adreso ilgio riba paprastai turėtų būti laikoma 256.

    — Šaltinis: RFC 3696 Errata

    Be to, kadangi RFC 2181 sako: „Visas domeno vardas yra ribojamas iki 255 oktetų“, žmonės (įskaitant kitų RFC kūrėjus) jį ne kartą klaidingai interpretuoja kaip reiškiantį, kad domeno vardai gali būti 255 simbolių ilgio. Tačiau RFC2181 kalba apie DNS protokolo lygio atvaizdavimą laidoje, o ne apie spausdinamus simbolius.

    Didžiausias domeno vardo ilgis yra 253 simboliai (254, įskaitant galinį tašką, 255 oktetai laidoje su baigiamąja nuliu). Būtent tai įgyvendina BIND ir DiG.

  6. 6
  7. 7
  8. 8

Ką manote?

Ši svetainė naudoja "Akismet", kad sumažintų šlamštą. Sužinokite, kaip apdorojamas jūsų komentaras.