E-posta adresleri büyük / küçük harfe duyarlı mı?


305

E-posta standart ilk bölümü ile ben e-posta göndermek için denedim ancak küçük harf duyarlı olduğunu okudum name@example.com, Name@example.comve NAME@example.com- bu her durumda geldi.

Posta sunucuları kullanıcı adlarını nasıl işler? Davayı kaçırmak mümkün mü ve bu mesaj teslim edilmeyecek mi? E-posta adresinizi verirken kaydolurken yazdığınız mektup harfinin tam olarak aynı olması çok önemli mi?


Yanıtlar:


366

Gönderen RFC 5321, bölüm 2.3.11 :

Standart posta kutusu adlandırma kuralı "local-part @ domain" olarak tanımlanmıştır; çağdaş kullanım, basit "kullanıcı adları" ndan çok daha geniş bir uygulama kümesine izin verir. Sonuç olarak ve ara ana bilgisayarlar taşımayı değiştirerek en iyi duruma getirmeye çalıştıklarında uzun bir sorun geçmişi nedeniyle, yerel bölüm, yalnızca adresin etki alanı bölümünde belirtilen ana bilgisayar tarafından yorumlanmalı ve atanmalıdır.

Yani evet, "@" den önceki kısım, tamamen ana bilgisayar sisteminin kontrolü altında olduğu için büyük / küçük harfe duyarlı olabilir. Yine de pratikte, yaygın olarak kullanılan hiçbir posta sistemi farklı adresleri duruma göre ayırmaz.

Ancak @ işaretinden sonraki kısım alan adıdır ve RFC 1035 , bölüm 3.1'e göre,

"Ad sunucuları ve çözümleyicileri [etki alanlarını] büyük / küçük harfe duyarlı olmayan bir şekilde karşılaştırmalıdır"

Kısacası, e-posta adreslerine büyük / küçük harfe duyarsız davranabilirsiniz.


81
'Kısacası, e-posta adreslerine büyük / küçük harfe duyarsız davranabilirsiniz.' Ben daha güçlü ifade ediyorum: "e-posta adreslerini büyük / küçük harfe duyarlı bir şekilde ele almak için güvensizsiniz" Özellikle kullanıcı-veri tabanlarında, vs. kopyalarını kontrol ederken
Geert-Jan

61
Sonuca katılmıyorum. Bir veritabanında yinelenen kayıtlar arıyorsanız - evet, büyük / küçük harfe duyarlı olmayan bir eşleşme muhtemelen en iyi yoldur, ancak göndermeden önce e-posta adresinin küçük harfe dönüştürüldüğü kodu gördüm. Bu iyi bir fikir değil, çünkü teslim edilmeyeceği küçük bir şans var. Dolayısıyla, bunu nasıl ele alacağınız, hatanın sonuçlarının ne olduğuna ve o sırada e-posta adresleriyle ne yaptığınıza bağlıdır (benzersiz adreslerin listesini daraltmak, e-posta göndermek, vb.).
Peter Bagnall

11
Herkes (a) john.doe@company.com kullanıcısı geçerli olduğunda bir John.Doe@company.com'u reddedecek veya (b) iki ayrı posta kutusunun oluşturulmasına izin verecek posta ürünlerinin listesini biliyor mu? .Doo @ company.com ve john.doe@company.com?
MSC

51
Büyük bir şirkette çalışıyorum ve aynı adı ve soyadı olan başka bir kişi var. Bugün onun yerel kısmının sadece büyük harf kullanımında benimkinden farklı olduğunu keşfettim. Bu düzgün çalışıyor, bu yüzden "yaygın kullanılan posta sistemleri farklı adresleri duruma göre ayırt" görmekten şaşırdım. "Yaygın olarak kullanılan" diyeceğim MS Exchange kullanıyoruz.
Matthew James Briggs

7
RFC 5321 2.4. Genel Sözdizimi İlkeleri ve İşlem Modeli - SMTP uygulamaları, posta kutusu yerel parçalarının durumunun korunmasına özen göstermelidir. Özellikle, bazı ana bilgisayarlar için, "smith" kullanıcısı "Smith" kullanıcısından farklıdır. Posta kutusu etki alanları normal DNS kurallarına uyar ve bu nedenle büyük / küçük harfe duyarlı değildir.
Adam111p

43

Bu eski bir soru olduğunu biliyorum ama sadece burada yorum yapmak istiyorum: Herhangi bir ölçüde e-posta adresleri büyük / küçük harfe duyarlıdır, çoğu kullanıcı aktif olarak büyük harf gerektiren bir e-posta adresini kullanmak için "çok akılsız" olacaktır. Kısa süre içinde adresi kullanmayı bırakacaklardı çünkü postalarının çoğunu kaçırıyorlardı. (İşleri zorlaştırmak için belirli bir nedenleri olmadığı ve yalnızca tanıdıkları belirli gönderenlerden posta bekledikleri sürece.)

Çünkü tüm e-postaların küçük harf olduğunu varsayacak kusurlu insanlar ve kusurlu yazılımlar var (Sürpriz!) onlara. Alıcı bu tür mesajları alamıyorsa, çok fazla eksik olduğunu fark etmeleri ve yalnızca küçük harfli bir e-posta adresine geçmeleri veya sunucularının büyük / küçük harfe duyarlı olmayacak şekilde ayarlanmaları uzun sürmeyecektir.


14
Bu, Postel'in en.wikipedia.org/wiki/Robustness_principle yasasının anlayışlı bir uygulamasıdır . E-posta adreslerinin yerel bölümlerinin büyük / küçük harfe duyarlı olmadığını varsayan bir yazılım yazmak yanlış kalır, ancak evet, orada çok sayıda yanlış yazılım olduğu göz önüne alındığında, postayı kabul eden sizseniz büyük / küçük harfe duyarlılık gerektirmekten daha az .
zigg

1
En çok hayal kırıklığına uğradığım şeylerden biri, e-postalarımı küçük harfle yazmaya zorlayan siteler . Sadece Twitch.tv'ye destek siteleriyle ilgili bu konuda kızgın bir yorum yaptım. Sitelerinde büyük harf girmenizi bile engellerler . Bu nedenle, e-posta sunucumun büyük / küçük harfe duyarsız davrandığını ve RFC'nin büyük / küçük harfe duyarlı olduğunu belirttiğini bilsem de, siteler ASLA herhangi bir şekilde varsayımlarda bulunmamalı ve yalnızca kullanıcının girdiği şeyi geçmelidir. Çok sinir bozucu adam !!!
Mark A. Donohoe

Şahsen, e-postamı bir yere yazdığımda, daha okunaklı olması için karışık kutu kullanmayı tercih ederim. Örneğin: JamesTKirk@domain.com (Gerçek adresim değil.) E-postaları büyük harf olmadan alsam bile bunu yapıyorum.
PaulOTron2000

Bir yazılım yazarı olarak, servisinizin büyük / küçük harf duyarlı e-posta ile bu kişi için doğru olan şeylerden biri olmasını tercih edersiniz.
Klesun

31

Bu yazıya geç kaldım, ama söyleyecek biraz farklı bir şeyim var ...

>> "Are email addresses case sensitive?"

Eh, "Bu bağlıdır ..." (TM)

Bazı kuruluşlar bunun iyi bir fikir olduğunu düşünür ve e-posta sunucuları büyük / küçük harf duyarlılığını zorunlu kılar.

Yani, bu çılgın yerler için, "Evet, E-postalar büyük / küçük harfe duyarlıdır."

Not: Bir spesifikasyonun bir şey yapabileceğinizi belirtmesi, bunun iyi bir fikir olduğu anlamına gelmez.

KISS ilkesi düşündürmektedir bizim sistemleri harf duyarsız e-posta kullanabilir.

Sağlamlık ilkesi, büyük / küçük harfe duyarlı e-postaları kabul ettiğimizi önerir.

Çözüm:

  • E-postaları büyük / küçük harfe duyarlı olarak depolayın
  • Büyük / küçük harf duyarlılığı olan e-postalar gönderin
  • Büyük / küçük harfe duyarlı olmayan dahili aramalar yapın

Bu, bu e-posta zaten varsa: user@x.com anlamına gelir

... ve başka bir kullanıcı gelir ve bu e-postayı kullanmak ister: USER@x.com

... büyük / küçük harfe duyarlı olmayan arama mantığımızın "Bu e-posta zaten var" hata iletisini döndüreceğini söyledi.

Şimdi, bir karar vermeniz gerekiyor: Bu çözüm sizin durumunuz için yeterli mi?

Değilse, büyük / küçük harfe duyarlı e-postaları için destek talep eden müşterilerden kolaylık ücreti alabilir ve user@x.com zaten mevcut olsa bile USER@x.com'un sisteminize girmesine izin veren özel mantık uygulayabilirsiniz.

Bu durumda, e-posta arama / doğrulama mantığınız şu sahte kod gibi görünebilir:

if (user.paidEmailFee) {
   // case sensitive email
   query = "select * from users where email LIKE ' + user.email + '"
} else {
   // case insensitive email
   query = "select * from users where email ILIKE ' + user.email + '"
}

Bu şekilde, çoğunlukla büyük / küçük harf duyarsızlığını uygularsınız, ancak müşterilerin bu saçmalıkları destekleyen e-posta sistemleri kullanıyorlarsa bu destek için ödeme yapmasına izin verirsiniz.

ps ILIKE bir PostgreSQL anahtar kelimesidir: http://www.postgresql.org/docs/9.2/static/functions-matching.html


8
Tam bir maç için LIKE / ILIKE korkunç bir fikirdir. İçeren %veya daha olası bir e-posta düşünün_
ThiefMaster

18
Puanlarınız harika! Ama örnek
türünüzdeki

6
@epelc BU. Daha fazla anlaşamıyorum. Bu tür bir sorgu oluşturma yalnızca bir örnek olsa bile hiçbir yere yazılmamalıdır.
xDaizu

1
@ l3x, yukarıdaki örnek koda karşı diğerleri kadar güçlü olmamakla birlikte, özellikle sözde kod olarak adlandırdığınız ve yalnızca açıklama amaçlı olduğu için, yukarıdaki yorumların tümü query = ...satırlarınızı değiştirerek ele alınabilir. basit query = // Insert case-sensitive/insensitive search hereyorumlar, konuşmayı SQL enjeksiyon konusundan uzak tutar ve göstermeye çalıştığınız şeye odaklanır. Başka bir deyişle, onu uygulamada değil mantık üzerinde tutun. Eleştirmenleri susturur.
Mark A. Donohoe

10

IETF Açık Standartlar RFC 5321 2.4. Genel Sözdizimi İlkeleri ve İşlem Modeli

SMTP uygulamaları, posta kutusu yerel parçalarının durumunu korumaya ZORUNLU OLMALIDIR. Özellikle, bazı ana bilgisayarlar için "smith" kullanıcısı "Smith" kullanıcısından farklıdır.

Posta kutusu etki alanları normal DNS kurallarına uyar ve bu nedenle büyük / küçük harfe duyarlı değildir


3

@ L3x başına değişir.

Doğru cevabın farklı olabileceği iki genel durum kümesi vardır, bunun yanı sıra genel olmayan bir üçüncüsü:

a) Özel posta gönderen bir kullanıcıysanız :

Çok az sayıda modern e-posta sistemi büyük / küçük harf duyarlılığı uygular, bu nedenle büyük olasılıkla göz ardı etmek ve kullanmak istediğiniz durumu seçmek iyi bir seçimdir. Ama bu kadar az postaları olumsuz o etkilenecektir - hayır tüm postalar teslim edileceğini garanti yoktur olmamalıdır bu konuda endişe.

b) Posta yazılımı geliştiriyorsunuz :

Aşağıdaki RFC5321 2.4 alıntısına bakınız.

Posta yazılımı geliştirirken, RFC uyumlu olmak istiyorsunuz . Sen edebilir isterseniz kendi kullanıcıların e-posta adresleri vaka duyarsız hale (ve varmalıydın). Ancak RFC uyumlu olabilmek için dış adreslere büyük / küçük harfe duyarlı olarak davranmanız GEREKİR .

c) Çalışanların sahip oldukları e-posta adres listelerini yönetmek :

Aynı e-posta alıcısının bir listeye birden fazla kez eklenmesi mümkündür, ancak farklı bir durum kullanılır. Bu durumda, adresler teknik olarak farklı olsa da, bir alıcının yinelenen e-postalar almasına neden olabilir. Bu duruma nasıl davrandığınıza a) benzerdir, çünkü muhtemelen onlara yinelenen gibi davranmanız ve yinelenen bir girişi kaldırmanız iyi olur. Bununla birlikte, her iki adrese de birbirlerinin kopyası olup olmadığını ve alıcının hangi e-posta adresini kullanmayı tercih edeceğini sormak için bir "hatırlatma" postası göndererek bunları özel durumlar olarak ele almak daha iyidir.

Her iki adreslerden onay / izin alınmadan yinelenen kaldırırsanız Yasal olarak, sen edilebilir sorumlu sızdırmakla özel bilgileri / kimlik doğrulaması bir karşı yetkisiz adrese iki çünkü aslında-ayrı alıcılar var farklı durumda olan aynı adresi .

RFC5321 2.4'ten alıntı:

Bir posta kutusunun yerel kısmı büyük / küçük harfe duyarlı olarak görülmelidir. Bu nedenle, SMTP uygulamaları, posta kutusu yerel parçalarının durumunun korunmasına özen göstermelidir. Özellikle, bazı ana bilgisayarlar için "smith" kullanıcısı "Smith" kullanıcısından farklıdır. Ancak, posta kutusu yerel bölümlerinin büyük / küçük harf duyarlılığının kullanılması birlikte çalışabilirliği engeller ve önerilmez.

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.