mailman2에서 discourse로 마이그레이션하는 스크립트 작성 중

안녕하세요,

오늘 디스커스 API만 사용하여 메일맨2 메일링 리스트(아카이브 및 config.pck)를 마이그레이션하는 파이썬 스크립트 작성에 착수합니다. 관심 있으신 분들은 여기에서 진행 상황을 확인하실 수 있으며, 이 토픽에도 진행 상황을 업데이트하겠습니다.

사용자가 필요로 하는 사항에 대한 의견이나 더 나은 구현 방법에 대한 조언은 언제나 환영입니다. :slight_smile:

감사합니다

digest_members: 폐기되었습니다. 카테고리별로 다이제스트 모드를 요청할 수 없습니다.

목록에서 다이제스트가 얼마나 자주 전송되었는지에 따라 다르지만, "첫 게시물 보기"가 대략적인 대체 기능이 될 수 있습니다.

스크립트의 첫 번째 버전은 Client Challenge 에 게시되었습니다. 저에게는 잘 작동하며, 다른 분들에게도 도움이 되기를 바랍니다. 그렇지 않다면 알려주시면 스크립트를 조정해 보겠습니다.

from_is_list가 Munge From 또는 Wrap Message로 설정된 목록(또는 이에 해당하는 DMARC 전용 설정이 사용된 경우)은 어떻게 처리합니까? 이러한 메시지를 보낸 사용자를 식별할 수 있습니까?

그렇지 않아요. 어떤 작업이 필요한지 확인해 볼게요.

감사합니다. 도움이 된다면, 원래 발신자의 이메일 주소는 “Cc:” 헤더에 자주(항상?) 표시됩니다. 특히 from_is_list가 Munge From인 경우 말이죠.

from_is_list

from_is_list

  • 이 설정은 목록이 전송하는 모든 비 다이제스트(non-digest) 메시지에 적용됩니다. From: 도메인이 DMARC p=reject 또는 p=quarantine 정책을 게시하는 메시지에만 적용되는 설정에 대해서는 Sender filters 섹션의 dmarc_moderation_action 설명을 참조하세요.

Munge From으로 설정하면, 원래 From: 도메인의 DMARC 또는 유사한 정책으로 인해 발생하는 문제를 완화하기 위해 From: 헤더 주소를 목록의 게시 주소로 대체하고, 원래 From: 주소를 Reply-To: 헤더에 배치합니다.

Wrap Message로 설정하면, 위와 같이 From: 및 Reply-To: 헤더가 있는 외부 메시지의 MIME 하위 부분으로 원래 메시지를 래핑합니다.

Discourse가 유사한 기능을 제공하는지 의문이 듭니다. 일치하는 사이트 설정을 본 적이 없습니다. 그리고 지난 며칠간 진행 중인 mailman2 마이그레이션 맥락에서 이메일 관련 설정을 여러 번 살펴봤습니다.

질문이 Discourse에서 해당 기능을 구현하는 것이 아니라, 아카이브에서 메일을 가져오는 방식과 관련이 있는 것일 수도 있습니다.

Discourse는 기본적으로 Mailman 2의 from_is_list = Munge From 설정과 동일한 방식으로 동작합니다. 이 설정이 적용되면 모든 Mailman 목록 이메일은 "From: joebloggs@email.com"이 아니라 "From: listname@example.com"으로 표시되며, 마찬가지로 Discourse에서 보내는 모든 이메일 알림도 동일한 포럼 이메일 주소(noreply@forum.example.com 등)에서 발송됩니다.

하지만 저는 실제로 Discourse에서 해당 기능을 재현하는 방법에 대해 묻는 것이 아니었습니다. [편집 - 이미 눈치채셨듯이 - 방금 두 번째 답변을 확인했습니다!]

제가 묻고자 했던 것은 이렇습니다. 이 Mailman 설정이 켜져 있을 때, 스크립트가 이러한 메시지를 단일 Discourse 사용자(이메일 주소가 listname@example.com인 사용자)로부터 온 것으로 가져오는지, 아니면 원래 발신자를 식별할 수 있는지 묻는 것이었습니다.

이해가 되셨으면 좋겠습니다!

설명해 주셔서 감사합니다. mailman2discourse 스크립트는 메시지를 가져오지 않으므로 이 문제와 관련이 없습니다. 메시지 가져오기는 Discourse의 mbox 가져오기 기능을 통해 이루어집니다.

모든 메일의 작성자를 listname@example.com으로 설정할 것 같습니다. discourse/script/import_scripts/mbox/importer.rb 파일에서 이와 달리 동작하도록 하는 코드는 보이지 않습니다. settings.yml 파일에 use_reply_to_instead_of_from 필드를 추가하여 이를 제어할 수 있는 기능을 제공하는 것이 좋겠습니다.

이제 이해했어요. 감사합니다.

불행히도 reply_goes_to_list도 "This list"로 설정되어 있어서(이 설정은 “Reply-To:” 헤더를 변경합니다) 다른 해결책을 찾아야 할 것 같습니다. 아니면 그렇지 않을 수도 있겠네요. 다른 주제에 질문을 남겨보겠습니다. 도움 주셔서 감사합니다.

기록을 위해 말씀드리자면, 마이그레이션 스크립트는 사용 가능한 단계에 도달했으며 HOWTO 문서가 준비되어 있습니다: