Dirêjahiya Navnîşana E-nameya Navdar

Depositphotos 1948865 s

Ez neçar bûm ku îro hinekî kolandinê bikim da ku wê bibînim, lê we dizanibû ku dirêjiya derbasdar a navnîşana e-nameyê çi ye? Ew bi rastî parçe parçe bûye Name@Domain.com. Ev li gorî ye RFC2822.

  1. Nav dikare ji 1 heya 64 tîpan be.
  2. Domain dikare ji 1 heya 255 tîpan be.

Wow… tê vê wateyê ku ev dikare navnîşanek e-nameyek derbasdar be:


loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc @ loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPhasellusatin
ciduntaturpisaduis.com

Vê biceribînin ku li ser kartek karsaziyê bicîh bikin! Bi qeşengî, piraniya qadên navnîşanên e-nameyê li ser tevnê bi 100 tîpan re sînordar in. Ew bi rastî ne derbasdar e. Heke hûn dixwazin navnîşana e-nameyek ji bo çêkirina guncan a PHP-ê bikar bînin rast bikin, min ev perçeyek li ser torê dît:

http://derrick.pallas.us/email-validator/ # Lîsans: Lîsansa Azad a Akademîk 2.1 # Guherto: 2006-12-01a heke (! 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]) *) + '.' $ ', $ e-name)) vegerin derewîn; navnîş ($ local, $ domain) = dabeşkirî ("@", $ e-name, 2); if (strlen ($ local)> 64 || strlen ($ domain)> 255) derewîn vegerîne; heke ($ check &&! gethostbynamel ($ domain)) derewîn vegerîne; vegerîn rast; # END ######}

9 Comments

  1. 1
  2. 2

    Erê, min nebûna lihevhatina çareseriyên din bi RFC re jî dît. Lêbelê, min bala xwe kişand ku tewra ev regex ne normal e û ne standard e. Tê bîra min xwendina regeksa rastîn (destûra <,>, , hwd) ji bo pir pêvajoyan pir zexm e.

    Lêbelê, ew bi kurtahî û bê guman çareseriyek hatî nivîsandin ku divê ji her serîlêdana e-nameya pargîdanî re were pejirandin.

    Spas, Dîsa!
    Doug

  3. 3

    Mixabin, min ew rûpel bi RFC-ya çewt ve girêda (2821 li şûna 2822) lê ew hate rast kirin. Kevirên goşeyê nikarin bibin beşek ji beşên herêmî an domainê yên navnîşana e-nameyê; lêbelê, ew nuqteyên tokenîzasyonê temsîl dikin, ango ew dikarin ji bo dorpêçkirina navnîşanek e-nameyê (mînak di xwendevana nameya we de) werin bikar anîn tam ji ber ku ew nikarin bibin beşek ji navnîşanê.

    Tiştek ku fonksiyona min nake ev e ku xema forma binavkirî ya navnîşanên e-nameyê ye - li ku derê beşa herêmî bi quotesên ducar xuya dike - ji ber ku RFC2821 bi eslê xwe dibêje ku nabe ku kes çu carî navnîşana xwe bi vî rengî binivîsîne. (Ez bawer dikim ku form ji bo lihevhatina paşverû ye û naha pratîkek xirab e.)

  4. 4

    Bi rastî RFC2821 ji bo dirêjahiya navnîşana e-nameyê referansa rast e. Min ew li wir dît, lê ne di RFC 2822 de.

  5. 5

    Di RFC 2821 de li ser dirêjahiya navnîşanek di fermanên MAIL û RCPT yên 256 tîpan de sînorek heye. Divê sînorê jorîn li ser dirêjahiya navnîşan bi gelemperî wekî 256 were hesibandin.

    - Çavkanî: RFC 3696 Errata

    Di heman demê de, ji ber ku RFC 2181 dibêje "Navê domainek tam bi 255 oktetan ve sînorkirî ye", ew gelek caran ji hêla mirovan ve (di nav de nivîskarên RFCyên din jî) xelet tê şîrove kirin ku tê vê wateyê ku navên domainê dikarin 255 tîp dirêj bin. Lê RFC2181 behsa nûnertiya asta protokola DNS-ê li ser têlê dike, ne karakterên çapkirî.

    Dirêjahiya herî zêde ya navek domainê 253 tîp e (254 di nav de xala paşîn, 255 oktetên li ser têlê bi null bidawî dibe). Û ya ku BIND û DiG pêk tînin ev e.

  6. 6
  7. 7
  8. 8

Hûn çi difikirin?

Ev malpera Akismet bikar tîne ku ji bo kêmkirina spam. Zêdetir agahdariya danûstandinên we çawa pêvajoy kirin.