Apakah dua periode diperbolehkan di bagian lokal dari alamat email?

13

Relay gerbang email pihak ketiga menolak memproses pesan untuk alamat email yang kami kirimi. Alamatnya dalam format firstname..lastname @ recipientdomain.com (perhatikan dua periode). Apakah ini diizinkan oleh pedoman RFC?

RFC 2822 tampaknya keberatan dengan hal ini di bagian 3.4.1:

String yang ditafsirkan secara lokal adalah string yang dikutip atau dot-atom. Jika string dapat direpresentasikan sebagai atom-titik (yaitu, string tersebut tidak mengandung karakter selain karakter ateks atau "." Yang dikelilingi oleh karakter atext), maka bentuk atom-atom HARUS digunakan dan bentuk string yang dikutip HARUS TIDAK. digunakan. Komentar dan ruang putih lipat TIDAK HARUS digunakan di sekitar "@" di addr-spec.

Lebih jauh, di bagian yang sama, referensi ini:

addr-spec = domain-lokal "@" domain

local-part = dot-atom / dikutip-string / obs-local-part

Saya menafsirkan ini berarti bahwa bagian lokal dapat memiliki konten yang dipisahkan oleh titik-titik tetapi tidak boleh ada dua titik berturut-turut , dan itu tidak dapat dimulai atau diakhiri dengan titik. Yang sedang berkata, saya tidak terbiasa dengan sintaks dot-atom jadi mungkin saya salah di sini.

Bisakah seseorang tolong konfirmasi dan jelaskan?

Mike B
sumber

Jawaban:

13

Ya kamu benar. Bagian yang Anda kutip mengatakan bahwa itu harus berupa string yang dikutip ATAU titik atom. Karena jelas bukan string yang dikutip (kurangnya penutup "memperjelas) itu harus berupa dot-atom ...

Itu mengarahkan kita ke definisi dot-atom:

Lihat ini kecuali dari RFC 5322 (3.2.3 - halaman 13) (RFC 2822 berisi bagian yang serupa) isinya adalah 1*in dot-atom-text = 1*atext *("." 1*atext). Ini secara efektif berarti bahwa atom-titik terdiri dari string satu atau lebih "atext" karakter yang dipisahkan oleh titik-titik. String 0 karakter atext tidak dihitung sehingga Anda tidak dapat memiliki dua titik berturut-turut (dipisahkan oleh 0 karakter) atau titik awal atau akhir.

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
Philip Couling
sumber
4

Penafsiran Anda benar. Bagian lokal dapat berisi grup atext yang dipisahkan oleh titik, tetapi beberapa periode berurutan tidak diperbolehkan.

Sesuai bagian 3.4.1 dari RFC 5322 yang Anda kutip dalam pertanyaan Anda, sebuah atom titik " tidak mengandung karakter selain karakter ateks atau". "Dikelilingi oleh karakter atext ". Oleh karena itu, menurut definisi, atom titik mungkin tidak mengandung dua atau lebih periode berturut-turut.

Untuk referensi, inilah definisi atext, diambil dari Bagian 3.2.3 dari RFC 5322 :

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

Tentu saja, tidak ada dua MTA yang menegakkan RFC dengan cara yang sama, sehingga Anda akan menemukan beberapa MTA akan menerima dua kali periode di mana yang lain tidak. Sebagai contoh, Exchange akan menolak untuk mengirimkan alamat yang berisi periode ganda, tetapi pengujian cepat dari pemilihan acak 3 server mail yang saya gunakan semua periode ganda dukungan.

Jadi menurut RFC 5322, organisasi yang menjadi tuan rumah relai yang bermasalah dengan Anda berhak menolak alamat yang berisi dua periode.

Richard Keller
sumber