Debian Mailman 2から3へのアップグレード リスト移行編

さて、基本的な設定が完了したら実際にMailman 2で利用していたメーリングリストを3にインポートする作業を行う。

ここからの作業もroot権限で行う必要があるためにsudo bashでrootのシェルを立ち上げて作業する。

まずは移行するメーリングリストをMailman 3に作成する。Mailman 3ではメーリングリスト名は投稿するアドレスそのものなのでFQDNまで含めて指定する必要があることに注意。

mailman create LISTNAME@FQDN.COM

次にMailman 2のメーリングリストの設定をインポートする。

mailman import21 LISTNAME@FQDN.COM /var/lib/mailman/lists/LISTNAME/config.pck

その後、Mailman 2のメーリングリストのアーカイブをインポートする。mailman3-webのDjangoプロジェクトのディレクトリに移動する。

cd /usr/share/mailman3-web

Python2と3の混在環境ではPython3を明示して実行する必要があるので以下のコマンドでインポート作業を実行する。

python3 manage.py hyperkitty_import -l LISTNAME@FQDN.COM /var/lib/mailman/archives/private/LISTNAME.mbox/LISTNAME.mbox

多少のエラーは出るかもしれないが気にしない。インポートが完了したらインデックスを作成する。

python3 manage.py update_index_one_list LISTNAME@FQDN.COM

最後にダイジェストを保管するディレクトリの所有者がrootで作成されてしまっているので所有者をMailman 3のユーザーIDであるlistに変更する。ディレクトリ名がLISTNAMEとFQDNの間を@ではなく.でつないでいることに注意。

chown list:list /var/lib/mailman3/lists/ LISTNAME.FQDN.COM

以上で移行作業は完了。この時点で正しく配送されているかどうかを実際にメーリングリストにメールを投げてみて確認しよう。うまくいけばMailman Coreは問題なく動いている。あとは管理フロントエンドの設定を残すのみ。

「Debian Mailman 2から3へのアップグレード リスト移行編」への1件のフィードバック

  1. メールのアーカイブ機能がうまく働いていなかった。原因はmailman-webとhyperkittyの連携に使うARCHIVER_KEYが正しく設定されていなかったため。ARCHIVER_KEYそのものはmailman3-webのインストール時に自動で生成されているので、これをhyperkitty側にも設定してあげる必要がある。

    まずはARCHIVER_KEYを見つける。

    grep MAILMAN_ARCHIVER_KEY /etc/mailman3/mailman-web.py

    これで発見した行の中でシングルクォートに囲まれた文字列がARCHIVER_KEYの正体。

    これを/etc/mailman3/mailman-hyperkitty.cfgに書き込む。

    api_key: ARCHIVER_KEY

    こちらのファイルに書き込むときはシングルクォートは不要なのでシングルクォートで囲まれた中の文字列だけをコピーしてここに貼り付ける。

    さらにmailman.cfgにhyperkittyを有効にする設定を追加する必要がある。ていうか、なぜこれがインストール時に最初から有効になっていないのかと問い詰めたい。一応、mailman-hyperkitty.cfgに追記するようにという指示は書いてあるのだが。

    /etc/mailman3/mailman.cfg

    [archiver.hyperkitty]
    class: mailman_hyperkitty.Archiver
    enable: yes
    configuration: /etc/mailman3/mailman-hyperkitty.cfg

    これでメールのアーカイブが自動的にhyperkittyでインデックスされてPostoriusから見れるようになるはず。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください