Geçerli bir e-posta adresinin maksimum uzunluğu nedir?


987

Geçerli bir e-posta adresinin maksimum uzunluğu nedir? Herhangi bir standart tarafından tanımlanmış mı?


Ne tür bir e-posta adresi? İnternet, X.400 veya diğerleri?
Toby Speight

O Not uygulama empoze gerektiğini uzunluk sınırını e-posta adreslerini olabilir değil aynı olması teorik maksimum (olan bütün bu yorumun daha uzun ). Diğer cevaplar bu soruyu tartışıyor, örneğin: stackoverflow.com/questions/1297272
MGOwen

Yanıtlar:


1205

Bir e-posta adresi 254 karakteri geçmemelidir .

Bu, gönderilen erratumun ardından IETF tarafından kabul edildi . Herhangi bir adresin tam teşhisi çevrimiçi olarak mevcuttur . RFC 3696'nın orijinal sürümü 320'yi maksimum uzunluk olarak tanımladı, ancak John Klensin daha sonra yanlış bir değer kabul etti, çünkü bir Yol

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

Bu nedenle, Posta Kutusu öğesi (yani e-posta adresi), bir Yol oluşturmak için etrafında köşeli parantez içerir; bu yol, Yol uzunluğunu 256 veya daha az karakterle sınırlamak için maksimum 254 karakter uzunluğundadır.

RFC 5321'de belirtilen maksimum uzunluk şunları belirtir:

Bir ters yolun veya ileri yolun toplam uzunluğu 256 karakterdir.

RFC 3696 burada düzeltildi .

İnsanlar özellikle RFC 3696'ya karşı olan hatalardan haberdar olmalıdır . Kanonik örneklerden üçü aslında geçersiz adreslerdir.

Http://www.dominicsayers.com/isemail adresinde bulabileceğiniz birkaç yüz test adresi derledim


7
E-posta adreslerinde Unicode'a izin veren yeni RFC standardı ne olacak?
Pacerier

3
@ Karakterinden önce kaç karakter ve kaç karakterin ardından mı, önemli değil mi?
systemovich

5
@Lodewijk RFC 3696 bir standart değildir, sadece temel standartları doğru yorumlamalarına yardımcı olmaya çalışır. Ne yazık ki, durumu açıklığa kavuşturmak için Klensin, Errata'da düzeltilen bazı brüt hatalar içeriyordu. Ancak kimse erratayı okumaz, bu nedenle RFC 3693 ironik olarak çok yararsızdır.
Dominic Sayers

3
Uluslararası e-posta adresleriyle, sınırı karakter değil 254 oktet olarak tanımlamak daha doğru olur . Ama emin değilim. RFC 6531, UTF-8 karakterlerine izin vermek için RFC 5321 ileri ve geri yolunu genişletir, ancak RFC 5321 özellikle ayırıcıları da içeren sınırın "256 oktet" olduğunu söyler ("karakterler" adı verilen RFC 2821'den kasıtlı bir değişiklik). 256 sekizli sınırın (254 için eksi 2) yerine geçmediğine ve çok baytlık UTF-8 karakterli adresler için etkili karakter sınırının azaldığına inanıyorum .
Andre D

1
@JohnLBevan çünkü alanlar e-postaların yanı sıra başka amaçlar için de kullanılıyor ve farklı RFC'ler tarafından tanımlanıyor. Eminim Jon Postel onu daha tutarlı hale getirmeyi diledi, ancak o zaman çoğu alan çok kısa ve zarf adreslerini iki veya daha fazla pakete ayırmak çok uzun bir alan için potansiyeli hesaba katmak aşırıya kaçmış olurdu. isimler.
Dominic Sayers

38

320

Ve segmentler şöyle görünür

{64} @ {255}

64 + 1 + 255 = 320

E-postaları doğrulıyorsanız bunu da okumalısınız

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


Ancak bu özelliğe göre (öğrenci kredisi verileri için) nchelp.org/elibrary/ESC/CommonRecord-CommonLineDocumentation/… sayfa 20: "E-posta uzunluğu, mevcut ANSI standartlarını yansıtacak şekilde değiştirildi. E-posta adresi maksimum uzunluktur 128 karakterden oluşur. " Hmm.
Nathan

8
İşte "max len == 320" de dahil olmak üzere e-posta ile ilgili çeşitli efsaneleri anlatan güzel bir makale. Sınır aslında 254'tür.
Carl

26
Güzel makale nerede?
Bob

1
Bu cevap doğru. Bu e-postalar geçerli, ancak kesinlikle kullanılamaz, çünkü 2821, MAIL / RCPT komutlarını <>parantez içinde 256 ile
sınırlıyor

1
Bu, biçimdeki e-postaları içeriyor mu user+inbox@domain?
Aaron Esau

20

kullanıcı

Bir kullanıcı adının maksimum toplam uzunluğu 64 karakterdir.

alan adı

Alan adında maksimum 255 karakter (“@” karakterinden sonra gelen karakter)

Ancak, RFC 2821 okumasında bir kısıtlama vardır :

Bir geri yolun veya ileri yolun maksimum toplam uzunluğu noktalama işaretleri ve öğe ayırıcılar dahil 256 karakterdir ”. Bu alanlara sığmayan adresler normalde yararlı olmadığından, adres uzunluklarındaki üst sınırın normalde 256 olarak kabul edilmesi gerekir, ancak bir yol şu şekilde tanımlanır: Yol = “<” [Adl “:”] Posta Kutusu “> ”İletme yolu, Posta Kutusuna ek olarak en az bir çift açılı ayraç içerecek ve bu da e-posta adresini 254 karakterle sınırlayacaktır.


7
1982 Güzel, eski rfc ... SMTP için rfc5321 var
vp_arth

14

Benim gibi şaşkın çaylaklara yardımcı olmak için, "Geçerli bir e-posta adresinin maksimum uzunluğu nedir?" olduğu 254 karakter .

Uygulamanız bir e-posta kullanıyorsa, alanınızı 254 veya daha az karakter kabul edecek şekilde ayarlamanız yeterlidir.

Burada geçerli olup olmadığını görmek için bir e-postada bir sürü test çalıştırabilirsiniz. http://isemail.info/

RFC veya Yorum İsteği, Internet Mühendislik Görev Gücü'nden (IETF) 254 karakteri sınır olarak tanımlayan bir yayın türüdür. Burada bulunan - https://tools.ietf.org/html/rfc5321#section-4.5.3


12

Diğer cevaplar suyu biraz çamurluyor. Basit cevap: E-posta 256 için kontrolümüzdeki toplam 254 karakter , başında "<" ve sonunda ">" içeren ENTIRE e-posta adresi içindir. Bu nedenle, 254 bizim kullanımımıza bırakılmıştır.


4

Aşağıdaki makaleye göre:

http://tools.ietf.org/html/rfc3696 (Sayfa 6, Bölüm 3)

Bahsedildiği gibi:

"E-posta adreslerinde bir uzunluk sınırı var. Bu sınır," yerel kısımda "(" @ "den önce) maksimum 64 karakter (sekizli) ve alan adında ( "@") toplam 320 karakter uzunluğunda. E-postaları işleyen sistemler, nadiren karşılaşılsalar bile, bu kadar uzun adresleri işlemek için hazırlanmalıdır. "

Bu nedenle, bir e-posta adresi için maksimum toplam uzunluk 320 karakterdir ("yerel bölüm": 64 + "@": 1 + "alan bölümü": 255, 320'ye karşılık gelir)


320 karakter e-posta kimliğini doğrulamak için lütfen javascript'te düzenli ifade verebilir misiniz? Şimdiden teşekkürler.
Kamlesh

1
Standardın bu kısmı, toplam 254 karakter sınırlaması içerecek şekilde hata olarak değiştirildi. Ayrıntılar ve errata bağlantılar için kabul edilen cevaba bakınız.
Matthijs Kooijman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.