前回の mailman + Postfix + Apache でメーリングリストを使ってみる(パッケージインストール編) では、パッケージを使って mailman のインストールを行いました。
今回は、最新のソースコードからインストールをおこなってみます。
mailman + Postfix + Apache でメーリングリストを使ってみる(パッケージインストール編) でも指摘しているように
CentOS/Scientific Linux では、バージョンが 2.1.12 と現在の最新バージョンが 2.1.17 であることからすれば、かなり古いものになっています。
また、Debian/Ubuntu では、日本語化が今一つのバージョンとなっている模様で、ウェブページ、自動送信されるメールに関して 日本語と英語が混ざっているような状況(インストールの仕方が悪かった?のか)で、
通常、利用するには耐えられない程度のものだったです。
そこで、今回は、最新バージョンを 公式サイト (http://www.list.org) からダウンロードし、それをインストールしてみます。
先に結果を報告すると、「やっぱり、これが一番間違いない」という感じです。
では、早速、mailman の最新版のインストールから、簡単に解説してみたいと思います。
- 目次
- 履歴
2014年2月28日 初版
mailman + Postfix + Apache でメーリングリストを使ってみる
mailman + Postfix + Apache でメーリングリストを使ってみたいと思います。
以降に、簡単に解説してみます。
mailman をインストールする
- mailman をソースコードからインストールするための必要最小限のパッケージをインストールする
mailman をソースコードからインストールするためには、以下のものが必要となります。
- 開発用python
- make
- gcc
これらをまずは、インストールします。
# CentOS/Scientific Linuxの場合 $ yum install make gcc python-devel ... # CentOS/Scientific Linuxの場合 $ aptitude install make gcc python-dev ...
- mailman で使用するユーザ、グループを作成する
mailman で使用するユーザ、グループを作成します。
ここでは、以下のようにします。
- ユーザ名 : mailman
- グループ名 : mailman
# グループを作成する $ groupadd mailman # ユーザを作成する $ useradd -c'GNU Mailman' -s /no/shell -d /no/home -g mailman mailman
- mailman のインストール先ディレクトリを作成する
mailman のインストール先ディレクトリを作成します。
ここでは、ソースコードからのインストールなのでディレクトリを指定することができます。
- mailmanのインストールディレクトリ : /usr/lib/mailman
- mailmanのデータディレクトリ : /var/lib/mailman
# インストールディレクトリ、データディレクトリを作成する。 $ mkdir /var/lib/mailman $ mkdir /usr/lib/mailman # インストールディレクトリ、データディレクトリのグループを mailman にする。 $ chgrp mailman /var/lib/mailman $ chgrp mailman /usr/lib/mailman # インストールディレクトリ、データディレクトリの読み込みと実行をすべてのユーザに許可、グループ mailman には、書き込み権限を与える。 $ chmod a+rx,g+ws /var/lib/mailman $ chmod a+rx,g+ws /usr/lib/mailman
- mailman の最新版をダウンロード、インストールする
mailman の最新版は、 http://ftp.gnu.org/gnu/mailman/ からダウンロードすることができます。
現在(2014.2)の最新バージョンは、2.1.17 のようです。このバージョンの mailman をダウンロードします。# 最新バージョン 2.1.17 の mailman をダウンロードする。 $ wget http://ftp.gnu.org/gnu/mailman/mailman-2.1.17.tgz ... # ダウンロードした mailman を解凍する。 $ tar xfz mailman-2.1.17.tgz # これで、ダウンロードしたディレクトリに mailman-2.1.17 というディレクトリが作成され、そこに解凍されたはずです。 $ cd mailman-2.1.17 # mailman 環境設定を行う。 # --prefix に mailman のインストールディレクトリを指定します。 # --with-var-prefix に mailman のデータディレクトリを指定します。 [mailman-2.1.17]$ ./configure --prefix=/usr/lib/mailman --with-var-prefix=/var/lib/mailman fix=/var/lib/mailman ... # mailman をインストールする。 [mailman-2.1.17]$ make install ...
make install実行時に
mailman は、基本的に日本語が euc-jp となっていて、utf8 をデフォルトの文字コードとして使用されている場合は、最後あたりで文字化けするかもしれません。
その際、euc-jp へ出力を切り替えて実施しても良いですが、mailman以外の各コマンドが出力する文字コードは、先のOSのデフォルトの文字コードに従うので 単純に切り替えてしまうと、今度は別の出力情報が文字化けになることがあります。
ここでは、そのまま make install が良いと思います。
インストールの後に、check_perms を動かして、正しくインストールできているか確認すると良いと思います。
「問題ありません」と出力されればOKのはずです。# 出力の文字コードを euc-jp に切り替えて、以下のコマンドを実行します。 $ /usr/lib/mailman/bin/check_perms ... # エラーが出力されるかもしれません。その際は、-f オプションを付加して、再度、以下のコマンドを実行します。 $ /usr/lib/mailman/bin/check_perms -f ... # 再度、エラー確認をしてみます。 $ /usr/lib/mailman/bin/check_perms ... 問題ありません
mailman を設定する
- mailman の環境設定を行う
mailman の設定は、/usr/lib/mailman/Mailman/mm_cfg.py で行います。
以下に、必要最小限の設定内容を解説します。
ここでは、以下のように設定しています。
- Postfixが動作しているサーバー : mail.example.com
- Apacheでmailmanを使った討論を情報公開するサーバー : www.example.com
- mailmanで利用するドメイン : mail.example.com, example.com
... # デフォルトのウェブサーバーを指定します。 DEFAULT_URL_HOST = 'www.example.com' # デフォルトのメールサーバーを指定します。 DEFAULT_EMAIL_HOST = 'mail.example.com' # 最終行に以降を追加します。 # ロゴ画像のパスを指定します。# <span class="red">ウェブサーバーの設定に合わせる</span> IMAGE_LOGOS = '/images/mailman/' # URLのアドレスパターンを指定します。%s = ウェブサーバー名になります。# <span class="red">ウェブサーバーの設定に合わせる</span> DEFAULT_URL_PATTERN = 'http://%s/mailman/' # MTA に Postfix を指定指定します。 MTA = 'Postfix' # サーバーの言語を日本語に指定します。 DEFAULT_SERVER_LANGUAGE = 'ja' # 仮想ウェブサーバーを追加します。 add_virtualhost('www.example.com','example.com') # Postfixの仮想ドメインを設定します。 POSTFIX_STYLE_VIRTUAL_DOMAINS = ['example.com']
上記では、解説のために日本語を使っていますが、mailman 関連のファイルには、日本語を含めない方が良いです。
mailman の日本語対応は、euc-jp で行っており、Linux系では、通常のファイル書き込みに UTF-8 を使いますから、 UTF-8で書かれた日本語は、エラーになることがあります。
- mailman で使用するファイルを作成する
続けて、必要となるファイルの作成を作成します。
# mailman用エイリアスファイル、仮想アドレスファイルを作成します。 $ touch /var/lib/mailman/data/aliases $ touch /var/lib/mailman/data/virtual-mailman # ファイルの所有者、グループをmailmanが使用するユーザ、グループに変更します。 $ chown mailman:mailman /var/lib/mailman/data/aliases $ chown mailman:mailman /var/lib/mailman/data/virtual-mailman # 各ファイルをpostfixで読めるようにバイナリ変換します。 $ postmap /var/lib/mailman/data/aliases $ postmap /var/lib/mailman/data/virtual-mailman
aliases, virtual-mailman のファイル名およびパスは、/usr/lib/mailman/Mailman/MTA/Postfix.py で設定してあります。
# --- mm_cfg.DATA_DIR は、DATA_DIR = os.path.join(VAR_PREFIX, 'data') のこと。 # --- VAR_PREFIX = '/var/lib/mailman' なので、'/var/lib/mailman/data') のこと。 LOCKFILE = os.path.join(mm_cfg.LOCK_DIR, 'creator') ALIASFILE = os.path.join(mm_cfg.DATA_DIR, 'aliases') VIRTFILE = os.path.join(mm_cfg.DATA_DIR, 'virtual-mailman')
- mailman の環境チェックを行う
mailman には、動作環境が正しいか否かチェックしてくれるツール check_perms があります。
このチェックツールによって、最低限 mailman が動作するための環境に誤りがないか確認することができます。
# check_permsにてmailmanの環境チェックを行います。 $ /usr/lib/mailman/bin/check_perms ... 問題ありません ← このように出力されればOKです。
もし、問題があれば、-f オプションを追加して、再度、check_perms を起動すれば、自動的に問題を解消してくれます。
出力情報は、日本語の場合は、euc-jp で出力されるので注意が必要です。(Linuxでは、ほとんどの場合utf8が使われているので切替が必要かもしれません。)
Postfix を設定する
smtpd_recipient_restrictionsは、/etc/postfix/main.cf で設定します。
|
Apache を設定する
ここでは、mailmanで必要な基本的な設定に関して解説しておきます。
通常、Apache の設定は、
CentOS/Scientific Linux では、/etc/httpd/conf/httpd.conf 、
Debian/Ubuntu では、apt-getでは、/etc/apache2/apache2.conf で基本的な設定を行います。
ここでは、必要な箇所にいつでも Include できるように mailmanに必要な設定内容を /var/lib/mailman/data/apache.conf に設定します。
|
mailmanの初期化をする
- mailmanのクーロンを設定する
# 以下のようにクーロン用ファイルをコピーします。 $ cp /usr/lib/mailman/cron/crontab.in /etc/cron.d/mailman
- mailmanのエイリアスを初期化する
ここから先は、mailman のコマンドを使用します。
Debian/Ubuntu では、
mailman のコマンドの出力情報は、euc-jp で出力されるので、ターミナルの出力を euc-jp へ切り替えておいた方が良いでしょう。
$ /usr/lib/mailman/bin/genaliases
- mailmanのサイト管理パスワードを設定する
# ********* は、パスワードを入力します。 $ /usr/lib/mailman/bin/mmsitepass ********* パスワードを変更しました.
- mailmanの管理用メーリングリスト(mailman)を作成する
$ /usr/lib/mailman/bin/newlist mailman # 管理者メールアドレスを入力します。 リスト管理者のメールアドレスを入力してください: root@example.com # 管理者のパスワードを入力します。(何も表示されません) mailman の初期パスワード: # Enter のみ Enter を押して mailman の管理者にメール通知する...
- mailmanメーリングリスト初期設定を行う
$ /usr/lib/mailman/bin/config_list -i /var/lib/mailman/data/sitelist.cfg mailman 標準でない値を修復: personalize
- mailmanを起動する
Mailman は全てのメール配送に qrunner と呼ばれるプロセスを使っています。その qrunner をデーモンプロセスとして動かすためのスクリプトをコピーし、起動します。
# qrunner プロセス起動スクリプトをコピーします。 $ cp /usr/lib/mailman/scripts/mailman /etc/init.d/mailman # qrunner プロセスを起動します。 $ /etc/init.d/mailman start ...
- mailmanを自動起動設定する
# CentOS/Scientific Linuxの場合 $ chkconfig mailman on # Debian/Ubuntuの場合 # -- sysv-rc-conf インストールされている場合は、以下のような感じです。 $ sysv-rc-conf mailman on
Postfix, Apache を再読み込み or 再起動する
|
mailmanを使ってみる
- メーリングリストを作成する
http://www.example.com/mailman/create へアクセスすると、以下のようなメーリングリストを作成ページが表示されます。
必要事項を入力し、リストを作成をクリックします。
- リストの名前: 作成するメーリングリスト名を入力します。
- リスト管理者アドレスの初期設定: 作成するメーリングリストの管理者メールアドレスを入力します。
- 初期パスワードを自動生成しますか? ここでは、手動にてパスワードを設定したいので「いいえ」を選択します。
- 初期リストパスワード: 作成するメーリングリストの管理者パスワードを入力します。
- 初期パスワードの確認: 先に入力した管理者パスワードを再入力します。
- 無承認での投稿を許可するまで新会員を隔離しますか? このメーリングリストへの投稿を新しい会員については、承認するようにするかどうかを指定します。 ここでは、テスト用なので「いいえ」にします。(限られた人だけが投稿する場合は「いいえ」でも良いと思います。誰でも会員になれる場合は、「はい」が無難でしょう。)
- 使用する言語…: ここでは「日本語」を選択します。
- 「リスト作成完了」をメールで管理者に知らせますか? テストなので、管理者へメール通知が来るか確認したいので、ここでは「はい」を選択します。
- リスト作成者の認証パスワード: mailmanのサイト管理パスワードを入力します。
上記内容の入力を終えたら、「リストを作成する」ボタンをクリックし、メーリングリストを作成します。
無事作成完了すると、上記のようなページが表示されます。
- メーリングリストへ会員登録する
http://www.example.com/mailman/listinfo へアクセスすると、上記のようなメーリングリストの一覧ページが表示されます。
先に作成したメーリングリストの Test をクリックします。
- メールアドレス: メーリングリストへ登録するメールアドレスを入力します。
- 名前 (省略可): 名前を入力します。
- パスワードを入力してください: 登録するメールアドレスの管理者パスワードを入力します。
- 確認のため同じパスワードを再入力: 先に入力した管理者パスワードを再入力します。
- 表示に使う言語を選んでください: ここでは「日本語」を選択します。
- リストのメールを毎日1本にまとめて送りますか? ここでは「いいえ」を選択します。
上記内容の入力を終えたら、「入会を申し込む」ボタンをクリックし、メーリングリストへの登録申請を行います。
confirm xxxxxxxxxxxxxxxxxxxxxxxxxxx というタイトルの以下のようなメールが、先に登録したメールアドレス宛に送られてきます。
Test メーリングリストへの入会に関する確認。 test@exmaple.com メーリングリストに <hoge@exmaple.com> の入会 を要求するメールを 192.168.1.100 から 受け取りました。 メーリングリストへの入会を確認するために、このメールにそのまま返信して ください。その場合、Subject:(件名)の文字列を変更しないでください。 以下のWebページにアクセスして入会を確認することもできます。 http://www.example.com/mailman/confirm/test/xxxxxxxxxxxxxxxxxxxxxxxxxxx メールの本文に次のコマンドを記入して、test-request@example.com 宛に送信して入会 を確認することもできます。 confirm xxxxxxxxxxxxxxxxxxxxxxxxxxx ほとんどの場合、単にこのメールに返信するだけで入会の確認ができるはずで す。(Subject:には Re: が入ってもかまいません.) このメーリングリストに入会しない場合は、このメールに返信せず、単に削除 してください。 もし誰かのいたずらでメーリングリストへの入会要求が送られた可能性がある 場合、あるいは何か質問等があれば、 test-owner@rise43.com 宛のメールでご連絡ください。
ここで指定してある URLへアクセスすると、以下のようなページが表示されます。
「Testリストに入会」をクリックすると、以下のようなページが表示され、同時に以下のようなメールが着て、登録完了となります。
Test@exmaple.com メーリングリストへようこそ! このメーリングリストへの投稿は、以下のアドレスにメールを送信してください。 test@exmaple.com このメーリングリストの総合案内は、以下のページへ。 http://wwww.exmaple.com/mailman/listinfo/test 退会やオプションの変更(たとえば、まとめ読み設定の変更や、自分のパス ワードの変更など)は、自分の会員オプションページで行うことができます。 http://wwww.exmaple.com/mailman/options/test/hoge%40exmaple.com また、次のメールアドレスにメールを送信することで、これらのオプションを 変更することができます。 Test-request@exmaple.com このメールアドレスに件名(Subject)または本文に help と書いたメールを 送ると、操作方法が書かれたメールが送られてきます。 退会やオプションの変更には、以下のパスワードを使ってください。 yyyyyyyy exmaple.comメーリングリストから、毎月パスワードと 退会方法、オプションの変更方法などが書かれた備忘通知が届きます。 不要なら、この備忘通知の送信を停止することができます。 なお、パスワードがわからなくなった場合は、各自のオプションページには パスワードをメールで送信するためのボタンもあります。
メールクライアントツールやmailコマンドで、メーリングリストのアドレス (ここでは、test@exmaple.com)へ適当なメールを投稿してみます。
投稿したメールがアーカイブに表示されたことを確認してみます。
http://www.example.com/mailman/listinfo へアクセスすると、上記のようなメーリングリストの一覧ページが表示されます。
先に作成したメーリングリストの Test をクリックします。
赤枠 の Test保管書庫 をクリックすると、以下のようなページが表示されます。
続けて、赤枠 の スレッド をクリックすると、以下のようなページが表示されます。
これが、先のページ日付に投稿された記事の一覧になります。
ここでは、赤枠 の [Test]テストです。 というヘッダの記事をクリックすると、以下のようなページが表示されます。
このように投稿された記事の内容が表示されます。
mailman + Postfix + Apache でメーリングリストを使ってみる(パッケージインストール編) からしても、それほどの作業量でもないです。
なんだかんだで問題の多いパッケージを使うより、むしろ作業効率は良いかもです。
急がば回れ?でしたっけ、それですね。
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
コメントを投稿 :