이메일 주소의 로컬 부분에 두 개의 기간이 허용됩니까?


13

타사 이메일 게이트웨이 릴레이가 보내는 이메일 주소에 대한 메시지 처리를 거부하고 있습니다. 주소는 firstname..lastname @ recipientdomain.com 형식입니다 (두 마침표 참고). RFC 지침에 의해 허용됩니까?

RFC 2822 는 섹션 3.4.1에서 이에 반대하는 것으로 보입니다.

로컬로 해석 된 문자열은 따옴표로 묶은 문자열이거나 도트 원자입니다. 문자열이 점-원자로 표현 될 수 있다면 (즉, 문자 문자로 둘러싸인 문자 또는 "."이외의 문자를 포함하지 않음), 점-원자 형식을 사용해야하며 인용 문자열 형식은 NOT 사용하십시오. 주석과 접는 공백은 addr-spec의 "@"주위에 사용해서는 안됩니다.

또한 동일한 섹션에서 다음을 참조합니다.

addr-spec = 로컬 부분 "@"도메인

local-part = 도트 원자 / 인용 문자열 / obs-local-part

나는 이것을 localpart가 점으로 분리 된 내용을 가질 수 있지만 두 개의 연속적인 점 은있을 수 없으며 점으로 시작하거나 끝날 수 없다는 것을 의미합니다. 즉, 나는 도트 아톰 구문에 익숙하지 않으므로 여기에 실수했을 수 있습니다.

누군가 확인하고 설명해 주시겠습니까?

답변:


13

그래 정확 해. 인용 한 섹션에서 인용 된 문자열이거나 점 원자 여야합니다. 인용 된 문자열이 분명하지 않기 때문에 (인 클로징 "이 부족하다는 것이 분명합니다) 점 원자이어야합니다 ...

그것은 우리를 dot-atom의 정의로 인도합니다.

힌트는 in RFC 5322 (3.2.3-13 페이지) (RFC 2822에 비슷한 섹션이 포함되어 있음 )를 제외하고는 이것을보십시오 . 이는 점-원자가 점으로 구분 된 하나 이상의 "텍스트"문자로 구성된 문자열로 구성됨을 의미합니다. 텍스트가 0 인 문자열은 계산되지 않으므로 연속 된 두 개의 점 (0 문자로 구분) 또는 선행 또는 후행 점을 가질 수 없습니다 .1*dot-atom-text = 1*atext *("." 1*atext)

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

당신의 해석은 정확합니다. 로컬 부분은 마침표로 구분 된 텍스트 그룹을 포함 할 수 있지만 연속 된 여러 마침표는 허용되지 않습니다.

당으로 RFC 5322의 섹션 3.4.1 당신이 당신의 질문에서 인용, 도트 원자는 " 문자 atext 또는 이외의 문자가 포함되어 있지 않습니다." "atext 문자로 둘러싸인 ". 따라서, 정의상, 도트 원자는 2 개 이상의 연속주기를 포함하지 않을 수있다.

참고 로 RFC 5322의 섹션 3.2.3 에서 가져온 텍스트 정의는 다음과 같습니다.

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

물론 두 가지 MTA가 동일한 방식으로 RFC를 시행하는 것은 없으므로 일부 MTA는 다른 MTA가 그렇지 않은 이중 기간을 허용한다는 것을 알게 될 것입니다. 예를 들어 Exchange는 이중 기간이 포함 된 주소에 대해서는 배달을 거부하지만 이중 지원 기간을 모두 사용하는 3 개의 메일 서버를 임의로 선택하여 테스트합니다.

따라서 RFC 5322에 따르면 문제가있는 릴레이를 호스팅하는 조직은 이중 기간이 포함 된 주소를 거부 할 권리가 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.