# mailman2에서 discourse로 마이그레이션하는 방법

**URL:** https://meta.discourse.org/t/howto-migrate-from-mailman2-to-discourse/193608
**Category:** Support
**Created:** [6월 12, 2021, 8:09오전 UTC](https://meta.discourse.org/t/howto-migrate-from-mailman2-to-discourse/193608 "2021-06-12T08:09:54Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![dachary](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/dachary/32/119731_2.png) [@dachary](https://meta.discourse.org/u/dachary)
#### Post date: [6월 12, 2021, 8:09오전 UTC](https://meta.discourse.org/t/howto-migrate-from-mailman2-to-discourse/193608/1 "2021-06-12T08:09:54Z")

</div>

안녕하세요,

[mailman2discourse](https://lab.enough.community/discourse/mailman2discourse/)는 **`config.pck` 파일에서 발견되는 `mailman2` 구성을 discourse 카테고리로 가져오기 위한 명령줄 도구** 로 [PyPI에서 사용할 수 있습니다](https://pypi.org/project/mailman2discourse/). 메일링 리스트의 각 멤버에 대해 사용자가 생성되며, 카테고리에 새 메시지가 게시되면 해당 사용자에게 알림이 전송됩니다(해당 사용자의 mailman2 옵션이 메일을 전혀 받지 않는 것으로 설정된 경우 제외). 비공개 메일링 리스트의 관리자는 discourse 그룹의 멤버가 되며, 이 그룹은 [모든 새 게시물을 검토할 수 있습니다](https://meta.discourse.org/t/category-group-review-moderation/116478). 메일링 리스트의 아카이브가 공개되지 않은 경우, discourse 카테고리는 mailman2 멤버십 목록을 모방하는 discourse 그룹에게만 표시됩니다.

### 설치

```plaintext
$ pipenv install mailman2discourse

```

### 사용법

요구 사항:

- `User Level`이 `All Users`인 API 키(`/admin/api/keys/new`에서 발급)
- 관리자 사용자(예: `admin`)
- 다음을 포함하는 [mbox 가져오기](https://meta.discourse.org/t/importing-mailing-lists-mbox-listserv-google-groups-emails/79773) 컨테이너
  - `DISCOURSE_MAX_ADMIN_API_REQS_PER_KEY_PER_MINUTE: 60000000`
  - `DISCOURSE_MAX_REQS_PER_IP_MODE: none`
  - “templates/web.ratelimited.template.yml” 파일 미포함

- mailman2 메일링 리스트의 `config.pck` 파일

`listname@example.com` mailman2 메일링 리스트를 가져오려면:

```plaintext
    $ mailman2discourse --url http://172.19.0.2 --api-key APIKEY --api-user admin \
                      --mailman-config config.pck \
                      --list listname --domain example.com

```

가져오기는 멱등적(idempotent)이므로, 중단되었거나 `config.pck` 파일이 업데이트된 경우와 같이 여러 번 실행해도 안전합니다.

이제 아카이브의 내용을 가져올 수 있습니다.

### 아카이브 가져오기

메일링 리스트 아카이브는 [mbox  
가져오기 도구](https://meta.discourse.org/t/importing-mailing-lists-mbox-listserv-google-groups-emails/79773)를 사용하여 가져올 수 있습니다. `.mbox` 및 `.mbox.gz` 파일은 `mailman2discourse`가 생성한 카테고리 이름과 동일한 이름의 디렉터리에 배치해야 합니다.

### 버그 보고

문제를 보고하는 가장 좋은 곳은 [이슈 트래커](https://lab.enough.community/discourse/mailman2discourse/-/issues)이지만, 이 주제에 게시해도 됩니다.

---

<div class="post-metadata">

### Author: ![dachary](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/dachary/32/119731_2.png) [@dachary](https://meta.discourse.org/u/dachary)
#### Post date: [6월 12, 2021, 8:26오전 UTC](https://meta.discourse.org/t/howto-migrate-from-mailman2-to-discourse/193608/2 "2021-06-12T08:26:42Z")

</div>

지난해 [이 스크립트 개발을 시작](https://meta.discourse.org/t/working-on-a-mailman2-to-discourse-migration-script/169220)했으며, 2021년 5월 [Spip 메일링 리스트](https://blog.spip.net/Les-listes-de-diffusion-evoluent-Mailman-Discourse.html)를 마이그레이션할 때 이를 테스트할 기회를 가졌습니다. 스크립트는 아직 매우 초기 단계이지만, 이제 충분히 사용 가능하다고 자신 있습니다.

아직 가져오기 과정에서 수작업으로 처리해야 할 단계가 많습니다. `discourse import --mailman2 config.pck mbox-archives-directory`처럼 “그저 작동하는” 도구를 가지면 좋겠습니다. 하지만 저는 이를 구현할 계획은 없습니다. [커스텀 셸 스크립트](https://lab.enough.community/dachary/rezo-import/-/blob/master/rezo-import)를 사용하는 데 만족하고 있으며, 이를 일반화하는 방법을 찾지 못하고 있습니다. 어쨌든 [mailman2discourse](https://pypi.org/project/mailman2discourse/)에서 구현한 로직은 퍼즐에서 빠져 있던 한 조각이었으며, 그것이 존재하게 되어 기쁩니다 🙂

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [1월 15, 2022, 8:03오전 UTC](https://meta.discourse.org/t/howto-migrate-from-mailman2-to-discourse/193608/3 "2022-01-15T08:03:23Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
