Berapa panjang maksimum alamat email yang valid?

988

Berapa panjang maksimum alamat email yang valid? Apakah ini didefinisikan oleh standar apa pun?

tidak stabil
sumber
Apa alamat emailnya? Internet, X.400, atau lainnya?
Toby Speight
Perhatikan bahwa batas panjang yang harus diterapkan aplikasi Anda untuk alamat email mungkin tidak sama dengan maksimum teoritis (yang lebih panjang dari seluruh komentar ini ). Jawaban lain membahas pertanyaan itu, misalnya: stackoverflow.com/questions/1297272
MGOwen

Jawaban:

1207

Alamat email tidak boleh melebihi 254 karakter.

Ini diterima oleh IETF setelah erratum yang diajukan . Diagnosis lengkap dari setiap alamat yang diberikan tersedia online . Versi asli RFC 3696 menggambarkan 320 sebagai panjang maksimum, tetapi John Klensin kemudian menerima nilai yang salah, karena Path didefinisikan sebagai

Path = "<" [ A-d-l ":" ] Mailbox ">"

Jadi elemen Kotak Surat (yaitu, alamat email) memiliki tanda kurung siku di sekitarnya untuk membentuk Path, yang panjang maksimum 254 karakter untuk membatasi panjang Path ke 256 karakter atau kurang.

Panjang maksimum yang ditentukan dalam status RFC 5321 :

Total panjang maksimum jalur mundur atau jalur maju adalah 256 karakter.

RFC 3696 diperbaiki di sini .

Orang-orang harus menyadari errata terhadap RFC 3696 pada khususnya. Tiga dari contoh kanonik sebenarnya adalah alamat yang tidak valid.

Saya telah menyusun beberapa ratus alamat pengujian, yang dapat Anda temukan di http://www.dominicsayers.com/isemail

Dominic Sayers
sumber
7
Bagaimana dengan standar RFC baru yang memungkinkan Unicode di alamat email?
Pacerier
3
Berapa banyak karakter sebelum @ dan berapa banyak setelahnya, atau tidak masalah?
systemovich
5
@Lodewijk RFC 3696 bukan standar, itu hanya mencoba untuk membantu orang menafsirkan standar yang mendasarinya dengan benar. Sayangnya, dalam upayanya untuk mengklarifikasi situasi, Klensin memasukkan beberapa kesalahan besar yang diperbaiki di Errata. Tapi tidak ada yang membaca errata sehingga RFC 3693 akhirnya menjadi sangat tidak membantu, ironisnya.
Dominic Sayers
3
Saya percaya dengan alamat e-mail yang diinternasionalkan, akan lebih tepat untuk menetapkan batas sebagai 254 oktet , bukan karakter. Tapi saya tidak yakin. RFC 6531 memperluas jalur balik dan maju RFC 5321 untuk memungkinkan karakter UTF-8, tetapi RFC 5321 secara khusus mengatakan batasnya adalah "256 oktet", termasuk pemisah (perubahan yang disengaja dari RFC 2821 yang mengatakan "karakter"). Saya percaya batas 256-oktet (minus 2 untuk 254) tidak digantikan, dan batas karakter efektif berkurang untuk alamat dengan multi-byte karakter UTF-8.
Andre D
1
@JohnLBevan karena domain digunakan untuk tujuan lain selain email dan ditentukan oleh RFC yang berbeda. Saya yakin Jon Postel berharap dia bisa membuatnya lebih konsisten, tetapi pada saat itu sebagian besar domain sangat pendek dan akan terlalu sulit untuk memecah alamat amplop menjadi dua atau lebih paket hanya untuk memperhitungkan potensi domain yang sangat panjang. nama.
Dominic Sayers
38

320

Dan segmennya terlihat seperti ini

{64} @ {255}

64 + 1 + 255 = 320

Anda juga harus membaca ini jika Anda memvalidasi email

http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx

Bob
sumber
Namun menurut spesifikasi ini (untuk data pinjaman mahasiswa) nchelp.org/elibrary/ESC/CommonRecord-CommonLineDocumentation/… di halaman 20: "Panjang email berubah untuk mencerminkan standar ANSI saat ini. Alamat email adalah panjang maksimal 128 karakter. " Hmm.
Nathan
8
Berikut ini adalah artikel bagus yang menghilangkan berbagai mitos tentang email termasuk "max len == 320". Batasnya sebenarnya 254.
Carl
26
Di mana artikel yang bagus?
Bob
1
Jawaban ini benar. Email ini valid, tetapi benar-benar tidak dapat digunakan, karena 2821 membatasi perintah MAIL / RCPT ke 256 dengan <>tanda kurung ...
vp_arth
1
Apakah itu termasuk email dalam format user+inbox@domain?
Aaron Esau
20

pengguna

Panjang total maksimum nama pengguna adalah 64 karakter.

domain

Maksimal 255 karakter di bagian domain (yang setelah "@")

Namun, ada batasan dalam bacaan RFC 2821 :

Panjang total maksimum jalur mundur atau jalur maju adalah 256 karakter, termasuk tanda baca dan pemisah elemen ”. Karena alamat yang tidak cocok di bidang tersebut biasanya tidak berguna, batas atas panjang alamat biasanya dianggap 256, tetapi jalur didefinisikan sebagai: Jalur = "<" [Adl ":"] Kotak Surat "> ”Jalur-maju akan berisi setidaknya sepasang kurung sudut di samping Kotak Surat, yang membatasi alamat email hingga 254 karakter.

Artem Kovalov
sumber
7
Keren, rfc kuno tahun 1982 ... Ada rfc5321 untuk SMTP
vp_arth
14

Untuk membantu pemula yang bingung seperti saya, jawaban untuk "Berapa panjang maksimum alamat email yang valid?" adalah 254 karakter .

Jika aplikasi Anda menggunakan email, cukup setel bidang Anda untuk menerima 254 karakter atau kurang dan Anda siap melakukannya.

Anda dapat menjalankan banyak tes pada email untuk melihat apakah itu valid di sini. http://isemail.info/

RFC, atau Request for Comments adalah jenis publikasi dari Internet Engineering Task Force (IETF) yang menetapkan 254 karakter sebagai batas. Terletak di sini - https://tools.ietf.org/html/rfc5321#section-4.5.3

Joshua Dance
sumber
12

Jawaban lainnya sedikit memperkeruh air. Jawaban sederhana: 254 karakter total dalam kontrol kami untuk email 256 adalah untuk SELURUH alamat email, yang mencakup "<" tersirat di awal, dan ">" di akhir. Karenanya, 254 yang tersisa untuk kita gunakan.

Forrest
sumber
4

Menurut artikel di bawah ini:

http://tools.ietf.org/html/rfc3696 (Halaman 6, Bagian 3)

Disebutkan bahwa:

"Ada batas panjang pada alamat email. Batas itu adalah maksimum 64 karakter (oktet) di" bagian lokal "(sebelum" @ ") dan maksimum 255 karakter (oktet) di bagian domain (setelah "@") dengan total panjang 320 karakter. Sistem yang menangani email harus siap memproses alamat yang panjang, meskipun jarang dijumpai. "

Jadi, panjang total maksimum untuk alamat email adalah 320 karakter ("bagian lokal": 64 + "@": 1 + "bagian domain": 255 yang berjumlah 320)

Waqar UlHaq
sumber
dapatkah Anda memberikan saya ekspresi reguler dalam javascript untuk memvalidasi 320 karakter id email? Terima kasih sebelumnya.
Kamlesh
1
Bagian standar ini diubah dalam errata untuk memasukkan batas total 254 karakter. Lihat jawaban yang diterima untuk detail dan tautan ke errata.
Matthijs Kooijman