수신 메일의 Message-Id가 부분적으로 파싱됩니다

안녕하세요,

첨부된 두 이메일의 Message-Id 필드는 다음과 같이 보입니다:

Message-Id: =?us-ascii?Q?<937921.143a05a8b3cfad92dd74ccf3c20c29a0@seenth?=
 =?us-ascii?Q?is.net>?=

2.7.9 및 2.8.0 버전에서는 Email::Receiver가 이를 **=?us-ascii?Q?**로 파싱합니다. 즉, 두 번째 줄의 일부만 가져오게 됩니다. 그 결과, 첫 번째 메시지 이후의 모든 메시지가 동일한 Message-Id를 가진 것으로 오인되어 조용히 폐기됩니다.

아래의 mail1.txt를 python3으로 파싱하면 다음과 같은 Message-Id가 표시됩니다:

$ ( echo import email ; echo 'print(email.message_from_string(open("mail1.txt").read())["Message-Id"])' ) | python3 
=?us-ascii?Q?<937921.143a05a8b3cfad92dd74ccf3c20c29a0@seenth?=
 =?us-ascii?Q?is.net>?=

이것은 discourse에서 사용되는 Mail 파서 클래스의 버그로 보입니다:

이 문제를 수정하거나 우회하는 방법에 대한 조언을 주시면 감사하겠습니다.

mail1.txt (3.6 KB)
mail2.txt (3.6 KB)

2개의 좋아요