![배포 목록을 사용할 때 감지된 헤더 구문 오류로 인해 다양한 Linux 기반 시스템에서 이메일이 거부되었습니다.](https://rvso.com/image/231069/%EB%B0%B0%ED%8F%AC%20%EB%AA%A9%EB%A1%9D%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%A0%20%EB%95%8C%20%EA%B0%90%EC%A7%80%EB%90%9C%20%ED%97%A4%EB%8D%94%20%EA%B5%AC%EB%AC%B8%20%EC%98%A4%EB%A5%98%EB%A1%9C%20%EC%9D%B8%ED%95%B4%20%EB%8B%A4%EC%96%91%ED%95%9C%20Linux%20%EA%B8%B0%EB%B0%98%20%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%97%90%EC%84%9C%20%EC%9D%B4%EB%A9%94%EC%9D%BC%EC%9D%B4%20%EA%B1%B0%EB%B6%80%EB%90%98%EC%97%88%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
내가 뭘 놓치고 있는 걸까...
주어진 내용: 웹메일 구성 요소가 포함된 Linux 스택 기반 이메일 서버 시스템(호스팅).다양한이메일 클라이언트 및 기타 웹메일 시스템과 관련되어 테스트되었습니다.
우리는 웹메일 클라이언트를 사용하여 배포 목록을 통해 이메일을 배포하고 있습니다. 메일 시스템은 다음 예(소스 이메일 헤더에서 복사)와 유사한 이메일을 보냅니다. organisation
배포 목록 이름은 어디에 있습니까?
Date: Sat, 20 Apr 2024 18:35:45 +0200
Message-ID: <[email protected]>
From: [email protected]
To: organisation: [email protected], [email protected];
Subject: here goes the subject
지금까지는 이메일이 정상적으로 전달되었으며(GMX 사서함으로도) "배달할 수 없는 이메일" 메시지가 수신되지 않았습니다.
문제
다음으로 특정 이메일 클라이언트 또는 웹메일 시스템(예: GMX 웹메일)에서 "모두에게" 응답하면 분명히 잘못된 헤더가 생성됩니다(예: Thunderbird를 사용하면 올바른 형식이 생성됨). 이러한 응답은 특정 시스템에서 거부됩니다. 예시 메시지:
이메일 헤더에 제공된 정보가 RFC 5322 및 RFC 2047의 사양을 준수하지 않기 때문에 귀하의 이메일이 당사 메일 시스템에서 거부되었습니다. 헤더 필드 "To"가 구문상 올바르지 않습니다.
문제의 이메일 헤더는 다음과 같습니다(받는 사람: 줄에 특히 주의하세요).
Received: from ...
Reply-To: ...
From: <[email protected]>
To: <[email protected]>, <organisation: [email protected]>;
References: <[email protected]>
In-Reply-To: <[email protected]>
Subject: AW: here goes the subject
분명히 특정 메일 클라이언트는 제공된 배포 목록 이름을 첫 번째 수신자의 이메일 주소의 일부로 해석하고 있습니다.
(1) 범인은 누구인가? (2) 올바른 형식은 무엇입니까? (3) 서버가 특정 RFC를 따르지 않고 원본 메시지를 배포하고 있습니까? 아니면 메일 클라이언트나 메일 시스템의 오류입니까?
===== 최종 수정 =====
이건 호드의 버그인 것 같습니다. 티켓이 제기되었습니다.
답변1
(이것은 아마도 잘못된 것일 수 있지만 아래에 유용한 토론이 있으므로 그대로 둡니다)
여기서 조직은 배포 목록의 이름입니다.
원본 이메일을 생성하는 모든 것이 여기서 잘못되었습니다. 사서함 이름(@domain 앞의 비트)에는 공백, @ 문자 및 기타 모든 종류의 이상한 내용이 포함될 수 있습니다. 따라서 전달에서는 To: 헤더의 첫 번째 항목을 "organisation:[이메일 보호됨]".
명시적인 공백에 인용 또는 이스케이프가 필요한지 확인하려면 많은 읽기 작업을 수행해야 합니다(메일함 이름의 '@' 문자가 그렇습니다). 따라서 이것이 RFC를 준수하지 않는다고 주장하는 오류가 정확한지 여부는 알 수 없습니다. 그러나 이것이 필요하지 않더라도 이는 의도한 동작이 아니기 때문에 이 점은 논쟁의 여지가 있습니다.
답변2
RFC 5322그룹 주소에 대한 현재 사양입니다. 부록 A.1.3에 설명되어 있습니다.
From: Pete <[email protected]> To: A Group:Ed Jones <[email protected]>,[email protected],John <[email protected]>; […]
이 메시지의
To:
필드에는 '라는 이름의 단일 그룹 수신자가 있습니다.그룹", 3개의 주소가 포함되어 있습니다 [...]
주소 사양은 섹션 3.4에 공식적으로 정의되어 있으며 여기에서는 관련 부분만 선택하겠습니다.
3.4. 주소 사양
주소는 개별 사서함일 수도 있고 사서함 그룹일 수도 있습니다.
group = display-name ":" [group-list] ";" [CFWS] group-list = mailbox-list / CFWS mailbox-list = (mailbox *("," mailbox)) mailbox = name-addr / addr-spec name-addr = [display-name] angle-addr angle-addr = [CFWS] "<" addr-spec ">" [CFWS]
그리고
3.4.1. Addr-Spec 사양
addr-spec은 로컬로 해석된 문자열, at 기호 문자("@", ASCII 값 64), 인터넷 도메인을 포함하는 특정 인터넷 식별자입니다. [...] 주석과 접는 공백은 addr-spec의 "@" 주위에 사용되어서는 안 됩니다.
addr-spec = local-part "@" domain local-part = dot-atom / quoted-string domain = dot-atom / domain-literal
그리고
3.2.3. 원자
dot-atom = [CFWS] dot-atom-text [CFWS]
obs-*
RFC 5322의 공식 사양에 존재하는 항목은 더 이상 사용되지 않는 패턴을 참조하므로 생략했습니다 . CFWS
주석 및/또는 접는 공백이 허용됨을 나타냅니다.
따라서 이 두 형식은 모두 다음 정의에 따라 허용되어야 합니다 group-list
.
A Group:Ed Jones <[email protected]>,[email protected],John <[email protected]>;
A Bare Group:[email protected],[email protected],[email protected];
이 해석을 귀하의 그룹 목록에 적용하면 귀하가 가지고 있는 것이 유효하다고 말할 수 있습니다.
To: organisation: [email protected], [email protected];
따라서 문제가 있는 것은 수신자 시스템입니다. (또는 공격적인 헤더 재작성을 갖춘 중간 시스템입니다. 방화벽 어플라이언스를 통해 이메일을 보내거나 클라이언트가 방화벽 어플라이언스를 통해 이메일을 받는 경우 이를 확인하겠습니다.)