Yerel bölümün sonunda kısa çizgi içeren e-posta kimliği


19

E-postanın bir e-postanın yerel bölümünün sonunda kısa çizgi (-) olması geçerli bir e-posta mıdır? Örneğin,

an.unusual.email-@mydomain.com

Veya genelleştirmek için, Characters !#$%&'*+-/=?^_``{|}~ (ASCII: 33, 35-39, 42, 43, 45, 47, 61, 63, 94-96, 123-126)e-posta kimliğinin başında ve / veya sonunda e-postanın yerel bölümünde geçerli olan bu karakterlerden ( ) herhangi biri olabilir mi?

Google bunun geçersiz olduğunu söylüyor, bu yüzden RFC'nin yalnızca [nokta] karakterin yerel bölümle başlamasını ve / veya bitmesini hariç tutmasına rağmen, şimdilik da geçersiz olduğunu varsayıyorum.

Yukarıdaki dava için GMail Hatası

Not: Alan kısmı hakkında endişelenmiyorum, çünkü bu soru ve cevapları karmaşıklaştıran DNS yolu nedeniyle daha fazla yer kaplıyor.

https://social.technet.microsoft.com/Forums/ie/en-US/69f393aa-d555-4f8f-bb16-c636a129fc25/what-are-valid-and-invalid-email-address-characters


İyi soru. Bu Stack Overflow soru ve cevap dizisine baktınız mı ? Çok fazla bilgi - bunların çoğu bu noktada güncel değil - ama yine de iyi bir başlangıç ​​noktası /
JakeGould

iyi referans bağlantısı, google bu e-posta geçersiz gibi görünüyor, Microsoft herhangi bir sorun yok gibi görünüyor.
Jimson Kannanthara James

1
Google’ı açtığınızdan beri bunu paylaşma: Gmail, bir e-posta adresindeki herhangi bir dönemi yok sayar. Dolayısıyla, e-postanız "anunusualemail@gmail.com" olsaydı, "an.unusual.email@gmail.com" adresine gönderilen postaları da alırsınız. Ayrıca, e-posta adresinin sonundaki artıları yok sayar: "anunusualemail+something@gmail.com".
mowwwalker

1
Kendi posta hizmetimde "u" harfini kullanıcı adlarından yasaklayabilirim. Çünkü.
Agent_L

Yanıtlar:


60

E-postanın bir e-postanın yerel bölümünün sonunda kısa çizgi (-) olması geçerli bir e-posta mıdır? [...] Google bunun geçersiz olduğunu söylüyor, bu yüzden RFC'nin yalnızca [dot] karakterinin yerel bölümle başlamasını ve / veya bitmesini hariç tutmasına rağmen, şimdilik geçersiz olduğunu varsayıyorum.

Geçerli. Yalnızca Google tarafından reddedildiğini görüyorsunuz çünkü tamamen farklı bir kontrol gerçekleştiriyor - diğer birçok sağlayıcı gibi yerel kısmın ne olabileceği konusunda kendi politikaları var .


Google, veya bir başkası, form gerçekten edilmiş olması kaydıyla, tüm olasılıkla geçerli e-posta adreslerini kabul etmek zorunda olacağını soran (muhtemelen sağlayıcıdan) varolan, geçerli e-posta adresi. Örneğin, Gmail'in Kime: / Bilgi: alanının geçerli bir adresi reddetmesi bir hata olur .

Ancak vurguladığınız alan sizden mevcut bir e-posta adresini istemez; yalnızca hesap oluşturulduktan sonra bir e-posta adresinin temelini oluşturacak Google sistemlerinde bir hesap adı ister . Google'ın veya başkalarının kendi sistemlerinde geçerli hesap adları (veya posta kutusu adları) kümesini sınırlamasını engelleyecek hiçbir şey yoktur .

Başka bir deyişle, 'yerel bölüm' için izin verilen karakterleri tanımlamak, yalnızca posta uygulamalarının SMTP sunucularının RFC 822 üstbilgilerinde ve SMTP komutlarında bu adresleri kabul etmesi gerektiği anlamına gelir - ancak bu tür posta kutuları oluşturabilme hakkında hiçbir şey söylemez . (Gerçekten de, erken e-posta RFC'leri yazıldığında ve çoğu posta kutusu hala işletim sistemi düzeyinde hesaplara bağlıyken, adlarının benzer veya daha katı sınırları vardı.)

Örneğin, RFC 5321'in bu kısmı (bölüm 4.1.2, ABNF'lerin altında) açıkça bir alıcı ana bilgisayarın kendi posta kutularının adlandırılması konusunda daha katı sınırlara sahip olduğunu ve gerçekten daha katı sınırlara sahip olması gerektiğini söylüyor:

Yerel bölüm için yukarıdaki tanım nispeten izin verilebilir olsa da, maksimum birlikte çalışabilirlik için posta almayı bekleyen bir ana bilgisayar, Yerel bölümün Alıntılanan dize formunu gerektirdiği (veya kullandığı) veya Yerel bölümün büyük olduğu posta kutularını tanımlamalıdır -hassas.

Dolayısıyla, sözdizimsel anunusualemail-@gmail.com olarak geçerli olmakla birlikte , bu tek başına Google'ın oluşturmanıza izin vermesi gerektiği anlamına gelmez.


6
İlginç bir yan not olarak google , RFC'de de belirtilmeyen e-posta adreslerindeki ( gmail.googleblog.com/2008/03/… ) dönemleri yok sayar . Yani myname@gmail.com, my.name@gmail.com veya myname@gmail.com ile aynı yere gider.
childofsoong

4
@JimsonKannantharaJames Genel olarak, bir e-postanın geçerli olup olmadığını kontrol etmek istiyorsanız, o adrese bir e-posta göndermeniz ve kullanıcıyı işlem yapmaya zorlamanız gerekir. Sadece adresin sözdizimine dayalı herhangi bir kontrol gerçekten sadece yazım hatası yapan kullanıcının yakalamak olmalıdır.
Michael Mior

1
@grawity Oh biliyorum - RFC'de belirtilmeyen ancak izin verilen başka bir şeyin örneğini vermek için yorum yapıyordum.
childofsoong

1
@ user71659 Gerektiğinde kontrol karakterlerinden düzgün bir şekilde kaçmıyorsanız daha büyük bir sorununuz var demektir. Sonuçta e-posta kullanıcı tarafından girildi ve kullanıcı girişi her zaman tehlikeli sayılmalıdır. Veritabanınızdaki bir alanın güvenli olduğunu varsaymak, bazı doğrulama kuralları nedeniyle oldukça tehlikeli olabilir. Birkaç ay sonra başka biri aynı doğrulamaya sahip olmayan başka bir formdan bu alanı doldurduğunda ne olur?
Michael Mior

2
@ user71659 iki farklı konuyu ele alıyorsunuz ve argümanı çamurluyorsunuz. MichaelMior bu duruma çok doğru doğrulamak e-posta adresi olduğunu var , sen olacaktır kullanıcı eylem gerektirir o adrese bir e-posta göndermek zorunda.
kumarharsh

7

G Suite (resmi olarak Alan Adınız için Google Apps), son karakter gibi e-posta adreslerinde tire (tire) kullanımına izin verir.

Kullanıcı adları harf (az), rakam (0-9), tire (-), alt çizgi (_), kesme işareti (') ve nokta (.) İçerebilir.

Kaynak: Ad ve şifre yönergeleri

Belirttiğiniz gibi Gmail, e-posta adreslerinde tirelere izin vermez.

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.