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. Vis dėlto pastebėjau, kad net ši regex yra netipinė, o ne standartinė. Prisimenu, kaip perskaityti tikrąjį regex'ą (leisti <,>, ir tt) daugeliui procesų yra per daug.

    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, susiečiau tą puslapį su neteisingu RFC (2821 vietoj 2822), bet tai buvo ištaisyta. Kampiniai skliaustai negali būti vietinio ar domeno el. Pašto adreso dalis; veikiau jie žymi tokenizacijos taškus, ty juos galima naudoti norint apjuosti el. pašto adresą (pvz., jūsų pašto skaitytuve) būtent todėl, kad jie negali būti adreso dalis.

    Vienas dalykas, kurio mano funkcija neveikia, yra nerimas dėl cituojamos el. Pašto adresų formos - kai vietinė dalis rodoma dvigubomis kabutėmis - nes RFC2821 iš esmės sako, kad niekam niekada nereikėtų rašyti savo adreso. (Manau, kad forma skirta atgaliniam suderinamumui ir dabar yra bloga praktika.)

  4. 4
  5. 5

    RFC 2821 yra apribotas adreso ilgis MAIL ir RCPT komandose - 256 simboliai. Paprastai viršutine adreso ilgio riba turėtų būti laikoma 256.

    - Šaltinis: RFC 3696 Errata

    Be to, kadangi „RFC 2181“ sako „Visas domeno vardas apribotas 255 oktetais“, žmonės (taip pat ir kitų RFC rašytojai) pakartotinai neteisingai interpretuoja tai, kad domenų vardai gali būti 255 simboliai. Bet RFC2181 kalba apie DNS protokolo lygio vaizdavimą ant laido, o ne apie spausdintinus simbolius.

    Maksimalus domeno vardo ilgis yra 253 simboliai (254, įskaitant galinį tašką, 255 oktetai ant vielos su galo nuliu). Tai ir į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.