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.
- Nav dikare ji 1 heya 64 tîpan be.
- 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 ######}
Ez kêfxweş im ku kesek wusa kêrhatî dît! Lêgerîna li ser Google-ê ji bo "email regexp" gelek bêjeyên birêkûpêk ên ku bi RFC-ê re hevdeng nabin eşkere dike.
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
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.)
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.
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.
Pêşdebiran ku mezinahiyên potansiyel ên navnîşanên e-nameyê piçûktir dikin, bûye sedema çend pirsgirêkan: http://www.eph.co.uk/resources/email-address-le...
Ez texmîn dikim heke navnîşana e-nameya we tiştek piçûk e mîna "jack1983@aol.com" hûn dikarin bifikirin ku 30 karakter jî comerd e.
Bibore, URL-ya jorîn şikestiye…
Pêşdebiran ku mezinahiyên potansiyel ên navnîşanên e-nameyê piçûktir dikin, bûye sedema çend pirsgirêkan:
http://www.eph.co.uk/resources/email-address-leng...
Ez texmîn dikim heke navnîşana e-nameya we tiştek piçûk e mîna "jack1983@aol.com" hûn dikarin bifikirin ku 30 karakter jî comerd e.
Tenê vê postê dît… dilgeş. Ez niha meraq dikim gelo ez dikarim wê domainê tomar bikim lol.