サーバー設定 · 3 min read · Sep 26, 2025

Debian Squeeze に iRedMail と Mailman をインストールする

Debian Squeeze に iRedMail と Mailman をインストールする

バージョン: 1
著者: Jason Norwood-Young
最終編集: 2011年12月22日

私は iRedMail の大ファンで、基本的には Postfix と、Spamassassin、グレイリスティング、LDAP または MySql バックエンドなど、Postfix をクールにする他の要素のパッケージ版です。iRedMail で欲しかったのは、私のお気に入りのメーリングリストサーバーである Mailman です。両者を統合するのは大変な作業ですが、あなたの苦痛をかなり軽減するための指示を以下に示します。

iRedMail の開発者は、ユーザーアカウントを管理するための無料の管理コンソールを提供しています。私は iRedMail のプロ版の管理コンソールを購読しており、クライアントが自己管理するのに非常に便利です。私は iRedMail の顧客以外の何者でもありません。

1. サーバーの設定

私はクリーンな Debian Squeeze インストールにインストールしています。新しいサーバーで最初に行うことは、常に以下の通りです:

apt-get update   
apt-get upgrade   
dpkg-reconfigure tzdata

最後の行は、タイムゾーンを設定することを可能にします。私たちの目的には厳密には必要ありませんが、これを設定することは良い習慣だと考えています。

次に、完全修飾ドメイン名 (FQDN) を設定する必要があります。つまり、mailserver の代わりに mailserver.example.com のようなドメインが必要です。ホスト名を確認するには、次のコマンドを入力します:

hostname -f

注意: 選択するドメイン名は、使用したいメールドメインとは異なるべきです。もしあなたのメールが [email protected] から来ることを望むなら、サーバー名を example.com にしないでください - obiwan や captainkirk のようなサブドメインを与えるか、私のように退屈な場合は mailserver にしてください。

すでに FQDN を持っている場合は、ステップ 2 に進むことができます。

ドメイン名は 2 か所に設定されます: /etc/hostname と /etc/hosts。

/etc/hostname を編集して、FQDN を含めます (このチュートリアルの目的のために、mailserver.example.com を使用します)。

/etc/hosts ファイルの最初の行は次のようになります:

127.0.0.1     mailserver.example.com mailserver localhost localhost.localdomain

次に、システムに変更を登録するように指示する必要があります:

/etc/init.d/hostname.sh   
hostname -f

これで FQDN が表示されるはずです。表示されない場合は、パニックにならないでください!ええと、再起動して再度確認してください。

2. iRedMail のインストール

執筆時点での iRedMail のバージョンは 0.7.3 です。最新バージョンについては www.iredmail.org を確認し、適宜調整してください。

cd ~   
wget http://iredmail.googlecode.com/files/iRedMail-0.7.3.tar.bz2   
apt-get install bzip2   
tar xjf iRedMail-0.7.3.tar.bz2   
cd iRedMail-0.7.3   
bash iRedMail.sh

iRedMail は必要なすべてをインストールします。バックエンドを除いてすべてのデフォルトを受け入れてください - LDAP の代わりに MySql を選択します。最初の仮想メールドメインを尋ねられたら、example.com と入力してください。mailserver.example.com ではありません。プロンプトが表示されたら、はいと答えてください。

これで素晴らしいメールサーバーができました!簡単でしたね?

3. Mailman のインストール

まず、Mailman をインストールします:

apt-get install mailman

Mailman はまだ起動しないことに注意してください。まず、Postfix に特定のアドレスからメールを受信したときに Mailman に送信するように指示する必要があります。

4. トランスポートとエイリアスアカウントの設定

lists.example.com という仮想ドメインを作成します。これをすべての Mailman 関連の作業に使用します。lists.example.com ドメインに何かが送信されると、それを通常のメールのように処理するのではなく、Mailman プログラムに転送します。

私たちのメーリングリストは lists.example.com ではなく、example.com にしたいので、example.com の Mailman アドレスに送信されたメールを受け入れ、代わりに lists.example.com にルーティングするためのエイリアスをいくつか設定します。

これを MySql データベースを通じて行います。ブラウザを https://example.com/phpmyadmin に向けます。https であり、単なる http ではないことに注意してください。また、すでにあなたの IP アドレスを指すネームサーバーがない場合は、ローカルコンピュータの /etc/hosts ファイルに example.com を追加する必要があるかもしれません。

iRedMail インストール中に選択したパスワードでユーザー root でログインします。詳細を思い出せない場合は、~/iRedMail-0.7.3/iRedMail.tips を確認してください - iRedMail はすべての iRedMail サービスの場所、ユーザー名、パスワードを便利に保存しています。

左側のパネルで「vmail」データベースをクリックし、「SQL」タブを選択します。次のコマンドをタブに貼り付けて (もちろん、ドメインを自分のものに変更した後)、実行をクリックします:

INSERT INTO `vmail`.`domain` (`domain`, `description`, `disclaimer`, `aliases`, `mailboxes`, `maxquota`, `quota`, `transport`, `backupmx`, `defaultuserquota`, `defaultuseraliases`, `defaultpasswordscheme`, `minpasswordlength`, `maxpasswordlength`, `created`, `modified`, `expired`, `active`) VALUES ('lists.example.com', '', '', '0', '0', '0', '0', 'mailman:', '0', '1024', '', '', '0', '0', NOW(), '0000-00-00 00:00:00', '9999-12-31 00:00:00', '1');

これで、lists.example.com から Mailman アプリにすべてを取得するためのトランスポートが設定されました。

次に、Mailman エイリアスを追加する必要があります。新しいリストを Mailman に追加するたびにこれを行う必要があります。新しいリスト名で「mailman」を検索して置き換え、再度 SQL を実行します。

INSERT INTO `alias` (`address`, `goto`, `name`, `moderators`, `accesspolicy`, `domain`, `created`, `modified`, `expired`, `active`) VALUES
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1);

5. Postfix の設定

コマンドラインに戻ります。次のコマンドを実行する必要があります:

postconf -e 'relay_domains = lists.example.com'   
postconf -e 'mailman_destination_recipient_limit = 1'   
/etc/init.d/postfix reload

6. グレイリスティングをオフにする

今、あなたはおそらくグレイリスティングをオフにしたいでしょう。グレイリスティングは、新しい送信者から受信したすべてのメールを単に返します。送信者がしばらくして再送信しようとすると、それはおそらくスパムボットではありません。スパムを防ぐのに非常に効果的ですが、誰かがあなたにメールを送信してから受信するまでの遅延を意味することがよくあります。Mailman の場合、Mailman へのメッセージが 1 時間遅れると、システムが応答しないように感じられます - 特に新しい購読者にとっては。テストも面倒になります。オフにする必要はありません - 次の部分はオプションです。

/etc/postfix-policyd.conf を編集します:

[...]
GREYLISTING=0
[...]

次に、Postfix ポリシーを再起動します:

/etc/init.d/postfix-policyd restart

7. Mailman の設定

Mailman に @lists.example.com ではなく @example.com からメールを送信するように指示します。ただし、送信するすべてのリンクは lists.example.com ドメインから来る必要があります。これは、Mailman のためだけに仮想ドメインを設定するからです。

pico /etc/mailman/mm_cfg.py
[...]
DEFAULT_URL_PATTERN = 'http://%s/'
[...]
DEFAULT_EMAIL_HOST = 'example.com'
[...]
DEFAULT_URL_HOST = 'lists.example.com'

8. Apache の設定

ほぼ完了です。lists.example.com にアクセスしたときに Mailman ウェブサイトを提供するように Apache サーバーを設定する必要があります。このドメインを /etc/hosts またはネームサーバーに設定することを忘れないでください。

pico /etc/apache2/sites-available/mailman
ScriptAlias /cgi-bin/mailman/ /usr/lib/cgi-bin/mailman/
Alias /pipermail/ /var/lib/mailman/archives/public/
Alias /images/mailman/ /usr/share/images/mailman/

    AllowOverride None
    Options ExecCGI
    AddHandler cgi-script .cgi
    Order allow,deny
    Allow from all
    Satisfy Any


    Options FollowSymlinks
    AllowOverride None
    Order allow,deny
    Allow from all


    AllowOverride None
    Order allow,deny
    Allow from all


    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

この仮想ホストを有効にするだけです。

a2ensite mailman   
mkdir /var/www/lists   
apache2ctl restart

9. 最初のリストを作成する

最初の Mailman リストは常に「mailman」です。このリストを作成するには、次のコマンドを実行します:

newlist mailman

管理者のメールアドレスとパスワードを入力します。管理者に通知するために Enter を押すように求められます。これを行うと、すぐにメールは届きません。もう一つのステップを行う必要があります:

/etc/init.d/mailman start

これを実行すると、リスト管理者は新しいリストの管理インターフェースへのリンクを含むメールを受け取るはずです。

これがうまくいけば、購読のテストも行いたいでしょう (空のメールを [email protected] に送信してください)。購読確認が戻ってきて、リンクをクリックできる場合、ほぼすべてが 100% 機能している可能性が高いです。そうでない場合は、パニックにならないでください!/var/log/mail.log を確認して、何が問題かを把握してください。

ヒント: メールログを監視するには、次のコマンドを使用します:

tail -f /var/log/mail.log

Mailman リストを再作成する必要がある場合は、まず次のコマンドを実行します:

rmlist mailman

10. さらにリストを作成する

「listname」というリストを作成するには、まず新しいリストのエイリアスを MySql vmail データベースのエイリアステーブルに追加します:

INSERT INTO `alias` (`address`, `goto`, `name`, `moderators`, `accesspolicy`, `domain`, `created`, `modified`, `expired`, `active`) VALUES
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1),
('[email protected]', '[email protected]', '', '', 'public', 'example.com', NOW(), NOW(), '9999-12-31 00:00:00', 1);

それが完了したら、新しいリストを作成するために次のコマンドを実行します:

newlist listname

新しい Mailman サーバーを楽しんでください!素晴らしいメールコミュニティを作成できることを願っています。

Share: X/Twitter LinkedIn

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

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