Bir e-posta adresinin yerel bölümünde iki noktaya izin veriliyor mu?


13

Üçüncü taraf bir e-posta ağ geçidi geçişi, gönderdiğimiz e-posta adresi için bir iletiyi işlemeyi reddediyor. Adres, firstname..lastname @ recipientdomain.com biçimindedir (iki noktaya dikkat edin). Buna RFC yönergeleri izin veriyor mu?

RFC 2822 bölüm 3.4.1'de buna itiraz ediyor gibi görünmektedir:

Yerel olarak yorumlanan dize, tırnak içine alınmış bir dize veya bir nokta atomudur. Dize bir nokta atomu olarak temsil edilebiliyorsa (yani, metin karakterleri veya metin karakterleri ile çevrili "." Dışında hiçbir karakter içermiyorsa), nokta-atom formu kullanılmalı ve tırnak içine alınmış dize formu KULLANILMAMALIDIR kullanılabilir. Yorumlar ve katlanır beyaz alan addr-spec'teki "@" etrafında KULLANILMAMALIDIR.

Ayrıca, aynı bölümde, buna atıfta bulunur:

addr-spec = yerel bölüm "@" alan adı

local-part = nokta-atom / alıntılanan dize / obs-local-part

Bunu, yerel bölümün noktalarla ayrılmış içeriğe sahip olabileceği, ancak birbirini izleyen iki nokta bulunamayacağı ve nokta ile başlayamayacağı veya bitemeyeceği anlamına gelir. Bununla birlikte, nokta-atom sözdizimine aşina değilim, bu yüzden belki burada yanılıyorum.

Birisi lütfen onaylayıp açıklayabilir mi?

Yanıtlar:


13

Evet haklısın. Alıntı yaptığınız bölüm bunun tırnak içine alınmış bir dize VEYA bir nokta atomu olması gerektiğini söylüyor. Açıkça alıntılanmış bir dize olmadığı için (çevrelemenin eksikliği "bunu açıkça ortaya koymaktadır) bir nokta atomu olmalıdır ...

Bu bizi dot-atom tanımına götürür:

Dan dışında bu bak RFC 5322 (3.2.3 - sayfa 13) (RFC 2822 Benzer bir bölüm içerir) ipucu 1*içinde dot-atom-text = 1*atext *("." 1*atext). Bu, nokta atomunun noktalarla ayrılmış bir veya daha fazla "metin" karakterinin dizelerinden oluştuğu anlamına gelir. 0 metin karakterleri dizesi sayılmaz ve bu nedenle birbirini izleyen iki nokta (0 karakterle ayrılmış) veya satır aralığı veya sondaki nokta olamaz .

RFC 5322                Internet Message Format             October 2008


   atext           =   ALPHA / DIGIT /    ; Printable US-ASCII
                       "!" / "#" /        ;  characters not including
                       "$" / "%" /        ;  specials.  Used for atoms.
                       "&" / "'" /
                       "*" / "+" /
                       "-" / "/" /
                       "=" / "?" /
                       "^" / "_" /
                       "`" / "{" /
                       "|" / "}" /
                       "~"

   atom            =   [CFWS] 1*atext [CFWS]

   dot-atom-text   =   1*atext *("." 1*atext)

   dot-atom        =   [CFWS] dot-atom-text [CFWS]

   specials        =   "(" / ")" /        ; Special characters that do
                       "<" / ">" /        ;  not appear in atext
                       "[" / "]" /
                       ":" / ";" /
                       "@" / "\" /
                       "," / "." /
                       DQUOTE

4

Yorumunuz doğru. Yerel kısım, noktalarla ayrılmış metin grupları içerebilir, ancak art arda birden çok noktaya izin verilmez.

Gereğince RFC 5322 bölüm 3.4.1 Eğer söz konusu alıntı, bir nokta atomu " karakterleri atext veya başka herhangi bir karakter içermeyen". "Atext karakterler çevrili ". Dolayısıyla, tanım gereği, bir nokta atomu iki veya daha fazla ardışık dönem içeremez.

Referans olarak, RFC 5322'nin 3.2.3. Bölümünden alınan metin tanımı aşağıdadır :

atext           =       ALPHA / DIGIT / ; Any character except controls,
                        "!" / "#" /     ;  SP, and specials.
                        "$" / "%" /     ;  Used for atoms
                        "&" / "'" /
                        "*" / "+" /
                        "-" / "/" /
                        "=" / "?" /
                        "^" / "_" /
                        "`" / "{" /
                        "|" / "}" /
                        "~"

Elbette, iki MTA RFC'leri aynı şekilde uygulamıyor, bu yüzden bazı MTA'ların diğerlerinin yapmayacağı çift dönemleri kabul edeceğini göreceksiniz. Örneğin, Exchange, çift nokta içeren adresler için teslim etmeyi reddeder, ancak kullandığım 3 posta sunucusunun rasgele seçiminin çift testi desteklediğini hızlı bir şekilde sınayın.

Bu yüzden kesinlikle RFC 5322'ye göre, sorun yaşadığınız röleyi barındıran kuruluş, çift dönem içeren adresleri reddetme haklarına sahiptir.

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.