طول آدرس ایمیل معتبر

Depositphotos 1948865 s

امروز مجبور شدم حفاری کنم تا آن را پیدا کنم ، اما آیا می دانید طول معتبر آدرس ایمیل چقدر است؟ این در واقع به قطعات شکسته شده است ... Name@Domain.com. این با توجه به RFC2822.

  1. نام می تواند از 1 تا 64 نویسه باشد.
  2. دامنه می تواند از 1 تا 255 نویسه باشد.

وای ... این بدان معنی است که این می تواند یک آدرس ایمیل معتبر باشد:


loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc @ loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratca فازلوساتین
ciduntaturpisaduis.com

این را روی کارت ویزیت قرار دهید! از قضا ، بیشتر قسمتهای آدرس ایمیل به 100 نویسه در وب محدود می شوند. در واقع معتبر نیست. اگر می خواهید یک آدرس ایمیل را برای ساخت مناسب با استفاده از PHP تأیید کنید ، من این قطعه را در شبکه پیدا کردم:

http://derrick.pallas.us/email-validator/ # مجوز: مجوز رایگان علمی 2.1 # نسخه: 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)) false false؛ list ($ local، $ domain) = split ("@"، $ email، 2)؛ if (strlen ($ local)> 64 || strlen ($ domain)> 255) false false برگردد ؛ if ($ check &&! gethostbynamel ($ domain)) برگشت نادرست است؛ بازگشت درست # پایان ###### }

9 نظرات

  1. 1
  2. 2

    بله ، من متوجه عدم انطباق سایر راه حل ها با RFC نیز شدم. من متوجه شده ام که حتی این regex نیز معمولی است و استاندارد نیست. به یاد دارم که خواندن regex واقعی (اجازه دادن به <،> و غیره) برای بیشتر فرآیندها بسیار فشرده است.

    با این حال ، به طور مختصر و قطعاً راه حلی نوشته شده است که باید برای هر برنامه ایمیل سازمانی قابل قبول باشد.

    با تشکر ، دوباره!
    داگ

  3. 3

    متأسفانه ، من آن صفحه را به RFC اشتباه پیوند دادم (2821 به جای 2822) اما این اصلاح شده است. براکت های زاویه ای نمی توانند بخشی از قسمت های محلی یا دامنه آدرس ایمیل باشند. بلکه آنها نشانگر نقاط رمزگذاری هستند ، یعنی می توان از آنها برای احاطه آدرس ایمیل (مثلاً در خواننده نامه شما) استفاده کرد دقیقاً به این دلیل که نمی توانند بخشی از آدرس باشند.

    یک کاری که عملکرد من انجام نمی دهد ، نگرانی در مورد فرم ذکر شده آدرس های ایمیل است - جایی که قسمت محلی در دو نقل قول ظاهر می شود - زیرا RFC2821 اساساً می گوید که هیچ کس مجبور نیست که آدرس خود را به این روش بنویسد. (من معتقدم فرم برای سازگاری به عقب است و اکنون عملکرد بدی است.)

  4. 4
  5. 5

    در RFC 2821 محدودیتی در طول آدرس در دستورات MAIL و RCPT با 256 کاراکتر وجود دارد. حد معمول در طول آدرس باید به طور معمول 256 در نظر گرفته شود.

    - منبع: RFC 3696 Errata

    همچنین ، از آنجا که RFC 2181 می گوید "نام دامنه کامل به 255 اکتت محدود می شود" ، بارها و بارها توسط مردم (از جمله نویسندگان سایر RFC ها) سو mis تعبیر می شود به این معنی که نام دامنه ها می توانند 255 کاراکتر طول داشته باشند. اما RFC2181 در مورد نمایش سطح پروتکل DNS روی سیم صحبت می کند ، نه کاراکترهای قابل چاپ.

    حداکثر طول یک نام دامنه 253 کاراکتر است (254 شامل نقطه انتهایی ، 255 هشتم روی سیم با خالی شدن انتها). و این همان چیزی است که BIND و DiG پیاده سازی می کنند.

  6. 6
  7. 7

    با عرض پوزش ، URL فوق خراب است

    توسعه دهندگان که اندازه احتمالی آدرس های ایمیل را دست کم می گیرند ، چند مشکل ایجاد کرده است:

    http://www.eph.co.uk/resources/email-address-leng...

    من حدس می زنم اگر آدرس ایمیل شما چیزی کوچک مانند "jack1983@aol.com" باشد ، ممکن است فکر کنید حتی 30 کاراکتر سخاوتمندانه است.

  8. 8

شما چه فکر میکنید؟

این سایت از Akismet برای کاهش هرزنامه استفاده می کند. بدانید که چگونه نظر شما پردازش می شود.