システム構築

サーバー構築のデージーネットTOP > システム構築 > メールシステム構築 > mailmanを使ったメーリングリストサーバ

構築事例:mailmanを使ったメーリングリストサーバ

Open Smart Design

mailmanを利用して、多数のメーリングリストを管理するメーリングリストサーバを構築しました。4台のサーバを使って、サーバの冗長性と拡張性を確保した構成で導入を行いました。

導入企業業種
製造業(東京都)
ユーザー規模
約30,000人
利用OS
CentOS7
導入月
2016年3月
お客様が悩まれていた課題
メーリングリストサーバが古くなった
メーリングリスト数が多く1台のサーバでは不安
メールアーカイブのデータを確実に保全したい

デージーネットが提案した「mailmanを使ったメーリングリストサーバ」

解決ポイント

クラスタでmailmanの冗長性を確保し、振分け機能を導入

稼働中のメーリングリストサーバをリプレースしたいというご要望で、提案を行いました。冗長性とスケーラビリティの両方を確保したいということで、4台のサーバで構成しました。

mailmanのメーリングリストサーバ

mailmanにメーリングリスト振分け機能を導入

多数のメーリングリストがあり、1台では性能に不安があると言うことでした。そのため、当初はNFSにデータを配置し、mailmanのメーリングリストサーバを負荷分散する形でシステムを構築できないかを検討しました。

しかし、提案の段階で、このような方法で単純に負荷分散を行うことには問題があることが分かりました。というのは、mailmanにはメールの記事にカウンターなどを付ける機能があり、カウンターのデータがファイルで管理されるためです。ロック機構が正常に働かない可能性のあるNFSでは、mailmanのカウンターデータが正しく管理できない可能性があることが分かったのです。 そのため、各mailmanのサーバにメーリングリストの振分け機能を持たせ、メーリングリストの処理は、各サーバ内部だけで処理されるようにしました。

mailmanをクラスタで冗長化

mailmanで管理するメーリングリストのアーカイブデータや設定情報の冗長性を確保するため、各メーリングリストサーバはPacemaker、corosyncを使ったHAクラスタで構成しました。この構成では、設定情報やメーリングリストのアーカイブは、DRBDを使って2つのサーバにミラーリングされます。万一、稼働中のサーバが停止したり、正常に処理ができない場合には、Pacemakerがそれを検出し、corosyncを使ってサーバを切り替えるようにしました。

既存データの移行

デージーネットで新しいメーリングリストのシステムを初期設定し、動作確認した後、既存のメーリングリストサーバからデータ移行を行いました。そのため、メーリングリスト設定やカウンターなどのなども引き継ぐことができました。

導入後の結果

これまでと同じmailmanを使って、使用感を大きく変えずにメーリングリストサーバの冗長化とスケーラビリティの確保を行なうことができました。




利用OSS

mailmanとは

mailman(Mailman, the GNU Mailing List Manager)は、OSSのメーリングリスト管理ソフトウェアです。Pythonで記述されていて、GNU General Public Licenseのもとで公開されています。RedHat Enterprise LinuxやCentOSに採用されていて、パッケージを使って簡単に導入することができます。ISPやメールサービスを提供する事業者などでも使われています。mailmanの特徴は、次の通りです。

  • メーリングリストの作成やユーザの入会・退会などの処理は、コマンドラインからもWebからも管理可能
  • メーリングリスト毎にWebページを提供する
  • メーリングリスト毎にリスト管理者を置くことができる
  • 過去に投稿されたメールをアーカイブし、閲覧することができる
  • 会員自身によるメーリングリストへの参加と脱退が可能
  • メーリングリストにモデレータを設置することもできる
  • メーリングリストのメールをまとめ読みする機能がある
  • メールフィルタリングが可能(SPAMとマークされたメールの除去などに利用)
  • 添付ファイルを自動的に柵状することが可能
  • リストの作成や削除に合わせて、Postfixの設定を自動的に連携することができる

mailmanは非常に高機能です。Webからの管理も可能ですが、機能が多い分だけ管理も複雑になります。そのため、シンプルにメーリングリストを作りたい場合には、Sympaなどの別のソフトウェアを使った方が良い場合もあります。

mailmanのインストール

mailmanは、CentOSなどではパッケージで提供されています。そのため、yumコマンドなどで簡単にインストールすることができます。ただし、次のような初期設定が必要です。

  • mailmanの設定

    mailmanの設定ファイル(/etc/mailman/mm_cfg.py)に、メーリングリストサーバのホスト名、メールドメイン名などを設定します。それぞれ、DEFAULT_URL_HOST、DEFAULT_EMAIL_HOSTの値を設定するだけです。

  • Postfixとの統合

    mailmanの設定ファイル(/etc/mailman/mm_cfg.py)に、MTAとしてPostfixを使うことを設定します。そして、Postfixの拡張アドレスを有効にし、mailmanと連携するためのエイリアスデータベースを作成し、Postfixが参照するように設定します。

  • Apacheの設定

    CentOSでは、mailmanのパッケージをインストールすると自動的に設定ファイル(/etc/httpd/conf.d/mailman.conf)がインストールされ、Apacheからの参照に必要な設定が行なわれます。TLSへの対応やアクセス制御などの設定が必要な場合には、設定を変更します。

  • サイト管理用メーリングリストの作成

    サイト管理者用のメーリングリスト(通常はmailman)を作成します。管理用メーリングリストの名称をmailmanの設定ファイル(/etc/mailman/mm_cfg.py)に設定し、newlistコマンドを使って登録します。

  • サイト管理者のパスワード設定

    mmsitepassコマンドで、サイト管理者のパスワードを登録します。

  • mailmanサービスの起動

    CentOSやRedHat Enterprise Linuxでは、mailmanに必要なプロセスを管理するためのサービスが用意されています。mailman.serviceを起動します。また、必要に応じて、自動起動の設定を行ないます。


メーリングリストの管理

メーリングリストの管理のために、次のようなコマンドが用意されています。

----------------------------------------------------
コマンド名		役割
----------------------------------------------------
list_lists	メーリングリストの一覧を表示します。
newlist		メーリングリストの作成
rmlist		メーリングリストの削除
add_members	メーリングリストへのメンバーの登録
list_members	メーリングリストのメンバーの表示
remove_members	メーリングリストからのメンバーの削除
----------------------------------------------------

サイト管理者は、これらのコマンドを使ってメーリングリストを管理することもできます。また、同様の機能をWebからも利用することができます。

mailmanのサポート

mailmanは、RedHat Enterprise LinuxやCentOSなどに同梱され、パッケージで提供されています。ディストリビューションに付属したパッケージを利用することで、ディストリビュータのサポートを受けることが可能です。

デージーネットでは、mailmanを使ったメーリングリストサーバの構築サービスを提供しています。そして、デージーネットでサーバを構築した場合には、Open Smart Assistanceを利用することができます。Open Smart Assistanceでは、ソフトウェアの利用方法に関するQ&A、障害発生時の障害調査、セキュリティ情報の提供など、ソフトウェア単独ではなく、システム全体に対するサポートを受けることができます。

mailmanを使ったメーリングリストサーバの関連ページ

メールシステム構築の事例一覧

様々な事例を集めたモデルプラン(費用例付き)をお送りしています。

代表的な事例を集めた「モデルプラン」をお送りしています。費用の例も記載しておりますので、価格感も知って頂ける資料となっております。
ご希望の方は、下記よりお申し込みください。

モデルプランをご希望の方

各種費用についてのお問い合わせ

コンサルティング費用、設計費用、構築費用、運用費用、保守費用など、各種費用についてのお見積もりは以下のフォームよりお気軽にお問合せ下さい。

unboundやPowerDNSを使用したDNSサーバのモデルプランをご希望の方

mailmanを使ったメーリングリストサーバの先頭へ