Etibarlı e-poçt ünvanı uzunluğu

Depositphotos 1948865 s

Tapmaq üçün bu gün bir az qazma işləri görməli idim, amma bir e-poçt adresinin etibarlı uzunluğunun nə olduğunu bilirdinmi? Əslində hissələrə ayrılıb ... Ad@Domain.com. Buna görə RFC2822.

  1. Ad 1 ilə 64 simvol arasında ola bilər.
  2. Domen 1 - 255 simvol ola bilər.

Vay ... bu o deməkdir ki, bu, etibarlı bir e-poçt ünvanı ola bilər:


loremaipsumadolorasitaametbaconsectetueraadipiscin
geyitanullamc @ loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPhasellusatin
ciduntaturpisaduis.com

Bunu vizit kartına yerləşdirməyə çalışın! Qəribədir ki, əksər e-poçt ünvanları vebdə 100 simvolla məhdudlaşır. Bu əslində etibarlı deyil. PHP istifadə edərək düzgün bir tikinti üçün bir e-poçt ünvanını təsdiqləmək istəyirsinizsə, bu parçanı şəbəkədə tapdım:

http://derrick.pallas.us/email-validator/ # Lisenziya: Akademik Pulsuz Lisenziya 2.1 # Versiya: 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)) return false; siyahı ($ local, $ domain) = split ("@", $ email, 2); if (strlen ($ local)> 64 || strlen ($ domain)> 255) false return; if ($ check &&! gethostbynamel ($ domain)) false return; doğru qayıt; # SON ######}

9 Şərhlər

  1. 1
  2. 2

    Bəli, digər həllərin RFC ilə uyğunsuzluğunu da gördüm. Ancaq bu regexin də standart olmadığını və standart olmadığını gördüm. Xatırlayıram ki, faktiki regex (<,>, və s. İmkan verir) oxumaq əksər proseslər üçün çox intensivdir.

    Bununla birlikdə, qısaca və hər hansı bir şirkətin elektron poçt tətbiqi üçün məqbul ola biləcək bir həlldən yazılmışdır.

    Yenidən Təşəkkürlər!
    Doug

  3. 3

    Təəssüf ki, bu səhifəni səhv RFC ilə əlaqələndirdim (2821 əvəzinə 2822), amma düzəldildi. Bucaq mötərizələri bir e-poçt adresinin lokal və ya domen hissələrinin bir hissəsi ola bilməz; əksinə, simvollaşdırma nöqtələrini təmsil edirlər, yəni ünvanın bir hissəsi ola bilmədikləri üçün elektron poçt ünvanını (məsələn, poçt oxuyucunuzda) əhatə etmək üçün istifadə edilə bilər.

    Funksiyamın etmədiyi bir şey, yerli hissənin ikiqat tırnak şəklində göründüyü yerdəki e-poçt ünvanından narahat olmaqdır, çünki RFC2821 mahiyyət etibarilə heç kimin öz adresini bu şəkildə yazmamalı olduğunu söyləyir. (İnanıram ki, forma geriyə uyğunluq üçündür və indi pis təcrübədir.)

  4. 4

    Əslində RFC2821 elektron poçt ünvanı uzunluğu üçün düzgün istinaddır. Orada tapdım, amma RFC 2822-də yox.

  5. 5

    2821 simvoldan ibarət poçt və RCPT əmrlərindəki bir ünvanın uzunluğuna dair RFC 256-də bir məhdudiyyət var. Ünvan uzunluqlarının yuxarı həddi normal olaraq 256 olmalıdır.

    - Mənbə: RFC 3696 Errata

    RFC 2181-də “Tam domen adı 255 oktetlə məhdudlaşır” deyildiyi üçün insanlar (digər RFC-lərin yazıçıları da daxil olmaqla) dəfələrlə səhv təfsir olunur, yəni domen adları 255 işarədən ibarət ola bilər. Ancaq RFC2181, simdə yazdırıla bilən simvollardan deyil, DNS protokol səviyyəsində təmsil olunmasından danışır.

    Bir domen adının maksimum uzunluğu 253 işarədən ibarətdir (254 arxa nöqtə daxil olmaqla, 255 səkkiz nöqtə ilə teldə). BIND və DiG-nin tətbiq etdiyi budur.

  6. 6
  7. 7
  8. 8

Siz nə düşünürsünüz?

Bu sayt spam azaldılması üçün Akismet istifadə edir. Yorumunuzun necə işləndiyini öyrənin.