Š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.
- Pavadinimas gali būti nuo 1 iki 64 simbolių.
- 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 ###### }
Džiaugiuosi, kad kažkam tai buvo naudinga! „Google“ ieškant „email regexp“ atskleidžiama daug įprastų posakių, kurie nėra sinchronizuojami su RFC.
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
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.)
Tiesą sakant, RFC2821 yra teisinga el. pašto adreso ilgio nuoroda. Radau jį ten, bet ne RFC 2822.
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.
Kūrėjai, neįvertinę galimo el. pašto adresų dydžio, sukėlė keletą problemų: http://www.eph.co.uk/resources/email-address-le...
Manau, jei jūsų el. pašto adresas yra mažas, pavyzdžiui, „jack1983@aol.com“, galite manyti, kad net 30 simbolių yra dosni.
Atsiprašome, aukščiau nurodytas URL neveikia...
Kūrėjai, neįvertinę galimo el. pašto adresų dydžio, sukėlė keletą problemų:
http://www.eph.co.uk/resources/email-address-leng...
Manau, jei jūsų el. pašto adresas yra mažas, pavyzdžiui, „jack1983@aol.com“, galite manyti, kad net 30 simbolių yra dosnus.
Ką tik radau šį įrašą... juokingas. Dabar galvoju, ar galiu užregistruoti tą domeną lol.