Elektron pochta manzilining amal qilish muddati

Depositphotos 1948865 s

Bugun uni topish uchun bir oz qazishim kerak edi, lekin elektron pochta manzilining haqiqiy uzunligi qancha ekanligini bilasizmi? Bu aslida qismlarga bo'lingan ... Ism@Domain.com. Bu shunga ko'ra RFC2822.

  1. Ism 1 dan 64 gacha belgidan iborat bo'lishi mumkin.
  2. Domen 1 dan 255 gacha belgidan iborat bo'lishi mumkin.

Vau ... demak, bu to'g'ri elektron pochta manzili bo'lishi mumkin:


loremaipsumadolorasitaametbacbacectectueraadipiscin
gaelitanullamc @ loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
siduntaliberoaaugueavestibulumaeratcaFasellusatin
ciduntaturpisaduis.com

Buni tashrif qog'oziga o'rnatib ko'ring! Ajablanarlisi shundaki, ko'pchilik elektron pochta manzillari Internetdagi 100 ta belgidan iborat. Bu aslida yaroqsiz. PHP-dan foydalangan holda to'g'ri qurilish uchun elektron pochta manzilini tasdiqlashni istasangiz, men ushbu parchani tarmoqdan topdim:

http://derrick.pallas.us/email-validator/ # Litsenziya: Academic Free License 2.1 # Version: 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; list ($ local, $ domain) = split ("@", $ email, 2); if (strlen ($ local)> 64 || strlen ($ domain)> 255) false qiymatini qaytaradi; if ($ check &&! gethostbynamel ($ domain)) return false; haqiqiy qaytish; # OXIRI ###### }

9 Comments

  1. 1
  2. 2

    Ha, men boshqa echimlarning RFC bilan mos kelmasligini ham sezdim. Shunga qaramay, men ushbu regexning odatiy emasligini va odatiy emasligini payqadim. Haqiqiy regexni o'qiganimni eslayman (<,>,, va hokazolarga ruxsat berish) aksariyat jarayonlar uchun juda zich.

    Biroq, bu qisqa va aniq biron bir tarzda yozilgan bo'lib, u har qanday korporativ elektron pochta dasturiga ma'qul bo'lishi kerak.

    Yana bir bor rahmat!
    Doug

  3. 3

    Afsuski, men ushbu sahifani noto'g'ri RFC bilan bog'lab qo'ydim (2821 o'rniga 2822), ammo bu tuzatildi. Burchak qavslari elektron pochta manzilining mahalliy yoki domen qismlarining bir qismi bo'lishi mumkin emas; aksincha, ular tokenizatsiya nuqtalarini anglatadi, ya'ni elektron pochta manzilini (masalan, sizning pochta o'quvchingizda) o'rab olish uchun ishlatilishi mumkin, chunki ular manzilning bir qismi bo'lishi mumkin emas.

    Mening vazifam bajarmaydigan narsa, elektron pochta manzillarining keltirilgan shakli haqida tashvishlanishdir - bu erda mahalliy qism ikki tirnoqli ko'rinishda bo'ladi - chunki RFC2821 aslida hech kim o'z manzilini shu tarzda yozmasligi kerak deb aytadi. (Shakl orqaga qarab muvofiqligi uchun mo'ljallangan deb o'ylayman va endi yomon amaliyotdir.)

  4. 4

    Aslida RFC2821 elektron pochta manzili uzunligi uchun to'g'ri ma'lumotdir. Men u erda topdim, lekin RFC 2822 da emas.

  5. 5

    2821 ta belgidan iborat MAIL va RCPT buyruqlaridagi RFC 256-da manzil uzunligiga cheklov mavjud. Odatda manzil uzunliklarining yuqori chegarasi 256 ga teng bo'lishi kerak.

    - Manba: RFC 3696 Errata

    Shuningdek, RFC 2181-da "To'liq domen nomi 255 oktet bilan cheklangan" deb yozilganligi sababli, odamlar tomonidan (shu jumladan boshqa RFClarning yozuvchilari) domen nomlari 255 belgidan iborat bo'lishi mumkinligi sababli bir necha bor noto'g'ri talqin qilingan. Ammo RFC2181 simvolda DNS protokoli darajasida tasvirlanishi haqida gapiradi, bosma belgilar emas.

    Domen nomining maksimal uzunligi 253 ta belgidan iborat (254 ta oxirgi nuqta, simvolda 255 oktet, null tugashi bilan). Va BIND va DiG amalga oshiradigan narsa.

  6. 6
  7. 7
  8. 8

Siz nima deb o'ylaysiz?

Ushbu sayt spamni kamaytirish uchun Akismet-dan foydalanadi. Fikringiz ma'lumotlarining qanday ishlashini bilib oling.