サーバー設定 · 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.shiRedMail は必要なすべてをインストールします。バックエンドを除いてすべてのデフォルトを受け入れてください - LDAP の代わりに MySql を選択します。最初の仮想メールドメインを尋ねられたら、example.com と入力してください。mailserver.example.com ではありません。プロンプトが表示されたら、はいと答えてください。
これで素晴らしいメールサーバーができました!簡単でしたね?
3. Mailman のインストール
まず、Mailman をインストールします:
apt-get install mailmanMailman はまだ起動しないことに注意してください。まず、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 reload6. グレイリスティングをオフにする
今、あなたはおそらくグレイリスティングをオフにしたいでしょう。グレイリスティングは、新しい送信者から受信したすべてのメールを単に返します。送信者がしばらくして再送信しようとすると、それはおそらくスパムボットではありません。スパムを防ぐのに非常に効果的ですが、誰かがあなたにメールを送信してから受信するまでの遅延を意味することがよくあります。Mailman の場合、Mailman へのメッセージが 1 時間遅れると、システムが応答しないように感じられます - 特に新しい購読者にとっては。テストも面倒になります。オフにする必要はありません - 次の部分はオプションです。
/etc/postfix-policyd.conf を編集します:
[...]
GREYLISTING=0
[...]次に、Postfix ポリシーを再起動します:
/etc/init.d/postfix-policyd restart7. 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/mailmanScriptAlias /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 restart9. 最初のリストを作成する
最初の Mailman リストは常に「mailman」です。このリストを作成するには、次のコマンドを実行します:
newlist mailman管理者のメールアドレスとパスワードを入力します。管理者に通知するために Enter を押すように求められます。これを行うと、すぐにメールは届きません。もう一つのステップを行う必要があります:
/etc/init.d/mailman startこれを実行すると、リスト管理者は新しいリストの管理インターフェースへのリンクを含むメールを受け取るはずです。
これがうまくいけば、購読のテストも行いたいでしょう (空のメールを [email protected] に送信してください)。購読確認が戻ってきて、リンクをクリックできる場合、ほぼすべてが 100% 機能している可能性が高いです。そうでない場合は、パニックにならないでください!/var/log/mail.log を確認して、何が問題かを把握してください。
ヒント: メールログを監視するには、次のコマンドを使用します:
tail -f /var/log/mail.logMailman リストを再作成する必要がある場合は、まず次のコマンドを実行します:
rmlist mailman10. さらにリストを作成する
「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 サーバーを楽しんでください!素晴らしいメールコミュニティを作成できることを願っています。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。