Mailman 設定 · 2 min read · Sep 09, 2025
Debian Squeeze に Mailman (Postfix 付き) をインストールして設定する方法
Debian Squeeze に Mailman (Postfix 付き) をインストールして設定する方法
バージョン 1.0
著者: Falko Timme
Twitterでフォローしてください
Mailman はオープンソースのメーリングリスト管理ツールであり、メールディスカッションやニュースレターリストを管理するために使用できます。おそらく、インターネット上で最も人気があり、広く使用されているメーリングリスト管理ツールです。このチュートリアルでは、Debian Squeeze サーバーに Postfix メールサーバーを使用して Mailman をインストールして設定する方法を説明します。
これがあなたにとって機能するという保証はありません!
1 前提条件
このチュートリアルでは、lists.example.com というホスト名の仮想ホストを設定し、そこで Mailman をインストールします。lists.example.com は、Mailman に設定されるメーリングリストのメールアドレスの右側の部分でもあります。つまり、メーリングリストへのメールは
ホスト名は異なる場合があるため、このチュートリアルを適宜調整してください。また、ホスト名が DNS に存在することを確認してください。
Mailman は多くのメールサーバー(例: Postfix, Exim, Sendmail, Qmail)と一緒に使用できます。このチュートリアルでは Postfix を使用します。作業中の Postfix インストールがあることを確認してください。たとえば、次のチュートリアルに示されているように: Virtual Users And Domains With Postfix, Courier, MySQL And SquirrelMail (Debian Squeeze)
2 Mailman と Apache のインストール
Mailman にはウェブフロントエンドが付属しているため、Mailman に加えてウェブサーバーが必要です。私は Apache を選択します。Mailman と Apache は次のようにインストールできます:
apt-get install mailman apache2次の質問/メッセージが表示されます:
サポートする言語: <– en (英語)
サイトリストが不足しています
Mailman には「サイトリスト」と呼ばれるものが必要で、これはパスワードリマインダーなどが送信されるリストです。このリストは、Mailman が起動する前に作成する必要があります。リストを作成するには、「newlist mailman」を実行し、画面の指示に従ってください。また、その後に Mailman を起動する必要があります。/etc/init.d/mailman start を使用します。 <– Ok
Mailman には Apache 設定ファイル /etc/mailman/apache.conf が付属しており、これを /etc/apache2/sites-available/mailman.conf にコピーします:
cp /etc/mailman/apache.conf /etc/apache2/sites-available/mailman.conf/etc/apache2/sites-available/mailman.conf を開きます…
vi /etc/apache2/sites-available/mailman.conf… 次の vhost 設定をファイルに追加します(ファイル内には lists.example.net 用の vhost がすでにコメントアウトされていますが、その vhost は使用しないでください。私の vhost 設定は少し異なりますが、見た目はかなり似ています):
| [...] |
最後から2番目の行 ScriptAlias / /usr/lib/cgi-bin/mailman/listinfo はオプションです。これは、http://lists.example.com/ にアクセスすると、http://lists.example.com/listinfo にリダイレクトされることを意味します。これは、ドキュメントルート /var/www/lists に提供するファイルがない場合に意味があります。
次に、ドキュメントルート /var/www/lists を作成し、lists.example.com の vhost 設定を有効にし、Apache を再起動します:
mkdir /var/www/lists
a2ensite mailman.conf
/etc/init.d/apache2 restart
ここで vhost (lists.example.com) を使用しているため、/etc/mailman/mm_cfg.py の次の変数を調整する必要があります:
vi /etc/mailman/mm_cfg.py| [...] DEFAULT_URL_PATTERN = 'http://%s/' [...] DEFAULT_EMAIL_HOST = 'lists.example.com' [...] DEFAULT_URL_HOST = 'lists.example.com' [...] |
3 Postfix の設定
次に、Postfix を設定する必要があります。最初に実行します:
postconf -e ‘relay_domains = lists.example.com’
postconf -e ‘mailman_destination_recipient_limit = 1’
次に /etc/postfix/master.cf を開きます…
vi /etc/postfix/master.cf… 次の行が含まれていることを確認します(デフォルトで存在するはずです):
| [...] mailman unix - n n - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user} [...] |
次に、lists.example.com ドメインを mailman: トランスポートに関連付ける必要があります。これを行う方法は、Postfix の設定によって異なります。たとえば、Virtual Users And Domains With Postfix, Courier, MySQL And SquirrelMail (Debian Squeeze) チュートリアルに従ってサーバーを設定した場合、トランスポートは MySQL データベースに保存されます。他のほとんどのセットアップでは、/etc/postfix/transport ファイルがトランスポートを作成するために使用されます。両方のケースについて、3.1 および 3.2 章で説明します。
3.1 MySQL データベース内のトランスポート
Virtual Users And Domains With Postfix, Courier, MySQL And SquirrelMail (Debian Squeeze) チュートリアルに従ってサーバーを設定した場合、トランスポートは mail MySQL データベース内の transport テーブルに保存されます。必要なトランスポートを作成するには、MySQL にログインします…
mysql -u root -p… 次の MySQL コマンドを実行します:
USE mail;
INSERT INTO transport (domain, transport) VALUES (‘lists.example.com’, ‘mailman:’);
quit;
その後、Postfix を再起動します:
/etc/init.d/postfix restart3.2 /etc/postfix/transport 内のトランスポート
MySQL データベースにトランスポートがない場合は、おそらく /etc/postfix/transport ファイルを使用しています。この場合、必要なトランスポートを次のように設定できます:
postconf -e 'transport_maps = hash:/etc/postfix/transport'/etc/postfix/transport を開きます…
vi /etc/postfix/transport… 次の行を追加します:
| lists.example.com mailman: |
その後、次のコマンドを実行し、Postfix を再起動します:
postmap -v /etc/postfix/transport/etc/init.d/postfix restart 4 mailman メーリングリストの作成
Mailman を使用する前に、mailman という名前のメーリングリストを作成する必要があります。これは必須であり、これがないと Mailman は起動しません:
newlist --urlhost=lists.example.com --emailhost=lists.example.com mailmanほとんどの場合、–urlhost および –emailhost スイッチは必要ありません。なぜなら、私たちの vhost はすでに lists.example.com と名付けられており、/etc/mailman/mm_cfg.py にもそれがあります(DEFAULT_EMAIL_HOST と DEFAULT_URL_HOST)が、Mailman が正しいホスト名を使用することを確認したい場合は、これらのスイッチを使用してください。
root@server1:~# newlist –urlhost=lists.example.com –emailhost=lists.example.com mailman
リストを運営する人のメールアドレスを入力してください: <– リスト管理者のメールアドレスを指定します。例: [email protected]
初期 mailman パスワード: <– mailman_password
メーリングリストを作成するには、/etc/aliases(または同等の)ファイルを編集し、次の行を追加し、必要に応じて newaliases プログラムを実行する必要があります:
mailman メーリングリスト
mailman: “|/var/lib/mailman/mail/mailman post mailman”
mailman-admin: “|/var/lib/mailman/mail/mailman admin mailman”
mailman-bounces: “|/var/lib/mailman/mail/mailman bounces mailman”
mailman-confirm: “|/var/lib/mailman/mail/mailman confirm mailman”
mailman-join: “|/var/lib/mailman/mail/mailman join mailman”
mailman-leave: “|/var/lib/mailman/mail/mailman leave mailman”
mailman-owner: “|/var/lib/mailman/mail/mailman owner mailman”
mailman-request: “|/var/lib/mailman/mail/mailman request mailman”
mailman-subscribe: “|/var/lib/mailman/mail/mailman subscribe mailman”
mailman-unsubscribe: “|/var/lib/mailman/mail/mailman unsubscribe mailman”
mailman の所有者に通知するには Enter を押してください… <– ENTER
root@server1:~#
次に /etc/aliases を開き、newlist コマンドの出力に表示されるエイリアスを追加します(これは、作成する新しいリストごとに手動で行う必要があります):
vi /etc/aliases| [...] ## mailman メーリングリスト mailman: "|/var/lib/mailman/mail/mailman post mailman" mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman" mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman" mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman" mailman-join: "|/var/lib/mailman/mail/mailman join mailman" mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman" mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman" mailman-request: "|/var/lib/mailman/mail/mailman request mailman" mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman" mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman" |
/etc/aliases を変更するたびに、次のコマンドを実行する必要があります:
newaliases
/etc/init.d/postfix restart
これで、ようやく Mailman を起動できます:
/etc/init.d/mailman startroot@server1:~# /etc/init.d/mailman start
Mailman マスタークルーラーを起動しています: mailmanctl.
root@server1:~#
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。