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 に設定されるメーリングリストのメールアドレスの右側の部分でもあります。つまり、メーリングリストへのメールは @lists.example.com に送信される必要があります。

ホスト名は異なる場合があるため、このチュートリアルを適宜調整してください。また、ホスト名が 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 設定は少し異なりますが、見た目はかなり似ています):

| [...] ServerName lists.example.com DocumentRoot /var/www/lists ErrorLog /var/log/apache2/lists-error.log CustomLog /var/log/apache2/lists-access.log combined Options FollowSymLinks AllowOverride None Alias /pipermail/ /var/lib/mailman/archives/public/ Alias /images/mailman/ /usr/share/images/mailman/ ScriptAlias /admin /usr/lib/cgi-bin/mailman/admin ScriptAlias /admindb /usr/lib/cgi-bin/mailman/admindb ScriptAlias /confirm /usr/lib/cgi-bin/mailman/confirm ScriptAlias /create /usr/lib/cgi-bin/mailman/create ScriptAlias /edithtml /usr/lib/cgi-bin/mailman/edithtml ScriptAlias /listinfo /usr/lib/cgi-bin/mailman/listinfo ScriptAlias /options /usr/lib/cgi-bin/mailman/options ScriptAlias /private /usr/lib/cgi-bin/mailman/private ScriptAlias /rmlist /usr/lib/cgi-bin/mailman/rmlist ScriptAlias /roster /usr/lib/cgi-bin/mailman/roster ScriptAlias /subscribe /usr/lib/cgi-bin/mailman/subscribe ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/ ScriptAlias / /usr/lib/cgi-bin/mailman/listinfo |

最後から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 restart

3.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 start

root@server1:~# /etc/init.d/mailman start
Mailman マスタークルーラーを起動しています: mailmanctl.
root@server1:~#

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。