Panjang Alamat E-mel yang Sah

Depositphotos 1948865 s

Saya terpaksa membuat penggalian hari ini untuk mencarinya, tetapi adakah anda tahu berapa lama alamat e-mel yang sah? Ia sebenarnya dipecah menjadi beberapa bahagian ... Nama@Domain.com. Ini menurut RFC2822.

  1. Nama boleh terdiri daripada 1 hingga 64 aksara.
  2. Domain boleh terdiri daripada 1 hingga 255 aksara.

Wow ... ini bererti alamat e-mel yang sah:


loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc @ loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPhasellusatin
ciduntaturpisaduis.com

Cuba pasangkannya pada kad nama! Ironinya, kebanyakan bidang alamat e-mel terhad kepada 100 aksara di web. Itu sebenarnya tidak sah. Sekiranya anda ingin mengesahkan alamat e-mel untuk pembinaan yang betul menggunakan PHP, saya dapati coretan ini di internet:

http://derrick.pallas.us/email-validator/ # Lesen: Lesen Percuma Akademik 2.1 # Versi: 2006-12-01a jika (! 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)) kembali palsu; list ($ local, $ domain) = split ("@", $ email, 2); jika (strlen ($ tempatan)> 64 || strlen ($ domain)> 255) kembali palsu; jika ($ cek &&! gethostbynamel ($ domain)) kembali palsu; kembali benar; # TAMAT ######}

9 Komen

  1. 1
  2. 2

    Ya, saya perhatikan juga kurangnya pematuhan penyelesaian lain dengan RFC. Saya perhatikan, walaupun regex ini tidak biasa dan bukan standard. Saya ingat membaca regex sebenarnya (membenarkan <,>, dll) terlalu intensif untuk kebanyakan proses.

    Walau bagaimanapun, ia ditulis secara ringkas dan pasti penyelesaian yang boleh diterima oleh mana-mana aplikasi e-mel perusahaan.

    Terima kasih sekali lagi!
    Doug

  3. 3

    Malangnya, saya memautkan halaman itu ke RFC yang salah (2821 dan bukannya 2822) tetapi itu telah diperbetulkan. Kurungan sudut tidak boleh menjadi bahagian dari bahagian tempatan atau domain dari alamat e-mel; sebaliknya, mereka mewakili titik tokenisasi, iaitu dapat digunakan untuk mengelilingi alamat e-mel (misalnya di pembaca surat anda) tepat kerana tidak dapat menjadi bagian dari alamat.

    Satu perkara yang tidak dilakukan fungsi saya adalah bimbang tentang bentuk alamat e-mel yang disebut - di mana bahagian tempatan muncul dalam tanda petik - kerana RFC2821 pada dasarnya mengatakan bahawa tidak ada seorangpun yang harus menulis alamat mereka dengan cara itu. (Saya percaya borang itu untuk keserasian kebelakang dan sekarang adalah amalan yang buruk.)

  4. 4

    Sebenarnya RFC2821 ADALAH rujukan yang tepat untuk panjang alamat e-mel. Saya menjumpainya di sana, tetapi tidak di RFC 2822.

  5. 5

    Terdapat sekatan dalam RFC 2821 pada panjang alamat dalam perintah MAIL dan RCPT sebanyak 256 aksara. Batas atas panjang alamat biasanya dianggap 256.

    - Sumber: RFC 3696 Errata

    Juga, kerana RFC 2181 mengatakan "Nama domain penuh terhad kepada 255 oktet", ini berulang kali disalahtafsirkan oleh orang-orang (termasuk penulis RFC lain) yang bermaksud bahawa nama domain boleh panjang 255 karakter. Tetapi RFC2181 membicarakan perwakilan tahap protokol DNS pada wayar, bukan watak yang boleh dicetak.

    Panjang maksimum nama domain adalah 253 karakter (254 termasuk titik akhir, 255 oktet pada wayar dengan nol penamatan). Dan itulah yang dilaksanakan oleh BIND dan DiG.

  6. 6
  7. 7
  8. 8

Apa yang anda fikir?

Laman web ini menggunakan Akismet untuk mengurangkan spam. Ketahui bagaimana data komen anda diproses.