Debian Mailman 2から3へのアップグレード フロントエンド編

Mailman 3は管理用ウェブフロントエンドにPostoriusというPython3とDjangoで稼働するサービスを利用している。Djangoのフレームワークが会員登録やログイン認証などの必要なインターフェースを提供してくれているわけだ。今時のユーザー登録をするとメールでアクティベーションURLが送られてくるというシステムなので、まずはPostoriusからメールが正しく送れることを確認しておく必要がある。

実は、この作業、一度でもMailman Coreからメールを送っておかないとメールの送信に必要なフォルダやデータベースが作成されないので、メーリングリストの移行とテスト送信を済ませてからでないとできないのだ。

実際にメールが送れるかどうかのテストは以下の通り。

/usr/share/mailman3-web/manage.py sendtestemail MYADDRESS@MYDOMAIN.COM

これでPostriusからのメールが受信できれば問題ない。

次にサイト全体を管理する権限を持つスーパーユーザーを作成する。

/usr/share/mailman3-web/manage.py createsuperuser

対話的なインターフェースでスーパーユーザーのユーザー名、メールアドレス、パスワードを設定する。ここまでで準備は完了。ここからはブラウザを使って設定を続行する。

まずはPostoriusにブラウザでアクセスする。

http://FQDN.COM/mailman3/

作成したスーパーユーザーのアカウントでログインすると設定したメールアドレスにアクティベーションするためのメールが送られてくるので指示に従ってアクティベーションすると晴れてスーパーユーザーが有効になってメーリングリストの設定等を変更できるようになる。

ここまででメーリングリスト運用に必要なすべての準備が整ってはいるのだが、最後にお化粧をする必要がある。というのも、Postriusのデフォルトのドメイン名がexample.comになっているので、格好悪いからだ。

Postriusにスーパーユーザーでログインした状態でツールバーのDomainsを選び、説明内のリンクからドメインを追加登録する。するとドメインがexample.comと新しく登録したドメインから選べるようになるので、新しく登録した正しいドメインを選ぶ。

ここで、元のexample.comを削除すればいいように思えるが、実はそれが大きな罠である。というのも、ここに登録されたドメインには順番にSITE_IDという内部識別IDが割り振られており、しかもmailman3-webは設定の中でSITE_ID = 1を絶対に利用するようにハードコードされており、このSITE_ID = 1がexample.comなのだ。というわけで、これをオーバーライドしておかないとexample.comを削除したとたんに、Postriusが動作不能になってしまうのだ。

というわけで、/etc/mailman3/mailman-web.pyに以下の記述を足して設定をオーバーライドしておく。

SITE_ID = 2

追加したドメインは自動的にSITE_ID = 2になっているはずなので、これでexample.comでなく新しいドメインが削除できない必須ドメインになった。

この状態でもう一度ドメイン一覧に戻り、example.comを削除すればよい。

以上でMailman 2から3へのアップグレード作業は全終了である。

「Debian Mailman 2から3へのアップグレード フロントエンド編」への1件のフィードバック

  1. 明示的にPostriusのバウンスメールの送信元を有効なアドレスで定義することにした。

    /etc/mailman3/mailman-web.py

    DEFAULT_FROM_MAIL = ‘postorius@bam-system.ddo.jp’
    SERVER_EMAIL = ‘root@bam-system.ddo.jp’

    上がバウンスメールの送信者で下がエラーメールの送信者だ。

    postoriusユーザーは存在しないのでpostorius宛のメールをrootに転送するようにエイリアスを追加する。

    /etc/aliases

    postorius: root

    追加した後はnewaliasesコマンドでエイリアスの更新をすることを忘れないように。

コメントを残す

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