メールアーカイブの作成

Solaris9への移行に伴い、このページ更新はされなくなりました。
インストールメモ等はこちらに移行します。


やっぱsolarisでしょ
solaris8の入手
ハードの準備
solaris8インストール
システムの起動と停止
ユーザーの作成
ネットワークの設定
基本ツールのインストール
ネームサーバーの設定
BIND Version 9
メールサーバーの設定
qmail-1.03
メールアーカイブの作成
インストールメモ
Solaris Tips
PostgreSQL+PHP4
solarisでブロードバンドルーター作成
Nagiosでネットワーク監視システム構築
vpopmail

File last modified 2002/11/10 01:30

メーリングリスト・アーカイブの作成と全文検索

qmailの拡張アドレスを利用すると、UNIXアカウントを追加せずに複数のメールアドレスを利用できるようになります。
そこで、ニュースのメールマガジンや技術系メーリングリストを自サーバーに蓄積し、webブラウザから参照できるようにし、さらに全文検索システムにより検索ができるようにします。

ここで紹介している方法は、必ずしもすべての環境で使える保証はありません。くれぐれもメーリングリストに迷惑がかからぬよう十分なテストを行ってください。

私的メールをブラウザから参照させるときはセキュリティに十分ご注意ください。

必要な(インストールする)もの

・Perl
・nkf
・namazu
・kakasi
 ・Text-kakasi
・procmail
・MHonArc

Perlとnkfのインストールについてはここ等を参照してください。

perlとnkfが導入済みならまず、kakasiからインストールします。

・kakasiインストール

入手先
ftp://ftp.namazu.org/kakasi/stable/ より
kakasi-2.3.4.tar.gz

http://www.daionet.gr.jp/~knok/kakasi/ より
Text-Kakasi-1.05.tar.gz


$ tar xvzf kakasi-2.3.4.tar.gz
$ cd kakasi-2.3.4
$ ./configure
$ make
$ make check
$ su
# make install
# exit
$ cd ..
$ tar xvzf Text-Kakasi-1.05.tar.gz
$ cd Text-Kakasi-1.05
$ perl Makefile.PL
$ make
$ su
# make install


・namazuインストール

入手先
ftp://kakasi.namazu.org/namazu/stable/ より
namazu-2.0.7.tar.gz

$ tar xvzf namazu-2.0.7.tar.gz
$ cd namazu-2.0.7/File-MMagic
$ perl Makefile.PL
$ make
$ su
# make install
# exit
$ cd ..
$ ./configure --with-included-gettext
$ make
$ make check
$ su
# make install


・procmailインストール

本家
http://www.procmail.org/
入手先ミラーサイト
http://www.ring.gr.jp/archives/net/mail/procmail/
procmail-3.22.tar.gz

$ tar xvzf procmail-3.22.tar.gz
$ cd procmail-3.22
$ make all

途中で以下のメッセージが出たらそのままリターン。

I will temporarily use a testdirectory named _locktest
in the following directories:

/tmp .

If you would like to add any, please specify them below,
press return to continue:

$ su
# make install-suid


・MHonArcインストール

入手先
http://www.mhonarc.org/tar/
MHonArc2.4.9.tar.gz

$ tar xvzf MHonArc2.4.9.tar.gz
$ cd MHonArc2.4.9
$ perl Makefile.PL
rootでmakeする
$ su
# make
# make install


・ML用アカウント作成

この例ではuserというアカウントにて、user-news@b-dash.net というニュースのメールマガジン用別アカウントを作り、
public_html/newsというディレクトリにメールアーカイブを蓄積していきます。

userのホームディレクトリは/export/home/user

.qmail-news作成(Maildir形式の場合)
$ /var/qmail/bin/maildirmake news
$ echo ./news/ > .qmail-news

冒頭にも書きましたが、ここでuser-news@ba-dash.net宛にメールが届くか十分に確認してください。
メール受信に問題がないことを確認したら、.qmail-newsを編集し、届いたメールをprocmailに渡す記述を追加します。

$ vi .qmail-news

./news/
| preline /usr/bin/procmail ←追加

運用後、Maildirのファイルを残さなくてもよければ一行目は消しておきます。

・procmailrc作成

次にprocmailの制御ファイルの作成例です。
この例ではメールヘッダにより保存先を分岐していますので、
あらかじめ保存先ディレクトリを作成しておきます。

メールをmhonarcに渡す前にnkfによるエンコード処理を入れます。

$ vi .procmailrc

PATH=/usr/bin:/usr/ucb:/bin:/usr/local/bin
MAILDIR=$HOME/news
LOCKFILE=$MAILDIR/.lock
LOGFILE=$MAILDIR/procmail.log

# :0で始まるブロックがレシピの始まり
:0
	# Subject: [ZDNetにマッチする場合はZDnetに切り分け
* ^Subject:..ZDNet
| nkf -em | mhonarc -umask 022 -add -outdir $HOME/public_html/news/ZDNet

# impress.co.jpドメインからのメールはimpressに
# さらにuser@hoge.comに転送
:0
* ^From*impress.co.jp
{
:0 c
! user@hoge.com
:0
| nkf -em | mhonarc -umask 022 -add -outdir $HOME/public_html/news/impress
}

# 上記以外のメールはothers/200109のように月別のディレクトリに保存
# 月別のディレクトリを作成しておくこと
:0
| nkf -em | mhonarc -umask 022 -add -outdir $HOME/public_html/news/others/`date +%Y%m`


ここまで、完成するとuser-news@b-dash.net宛に届いたメールが
procmailにて切り分け、mhonarcにてHTML化され、
各ディレクトリに以下のファイルが作成される。

maillist.html 時系列順一覧
threads.html スレッド順一覧
msg00000.html HTML化メール
msg00001.html

・namazuの設定

メール検索用のインデックスを作成します。

$ cd $HOME
$ mkdir namazu
$ mkdir namazu/docs
$ cp /usr/local/share/namazu/template/* namazu/docs
$ su
# cd /usr/local/libexec
# install -c <apacheのCGIディレクトリ> -u nobody -g nobody -m 755 namazu.cgi


「.namazurc」の作成

namazu.cgiと同じディレクトリに.namazurcというファイルを以下の内容で作成します。

Index /export/home/user/namazu/docs
Template /export/home/user/namazu
Replace /export/home/user/public_html/ http://<ホームページのURL>/~user/
Lang ja

インデックスファイル作成

mknmzコマンドにてインデックスを作成します
$ mknmz -O /export/home/user/namazu/docs /export/home/user/public_html/news

毎日2時にインデックスが更新されるようcrontabで設定します。
あわせて毎週月曜日の3時にインデックスのゴミ掃除をします

$ crontab -e

0 2 * * * /usr/local/bin/mknmz -O /export/home/user/namazu/docs /export/home/user/public_html/news 0 3 * * 1 /usr/local/bin/gcnmz /export/home/user/namazu/docs


検索フォームの作成


検索用フォームを適当なHTMLに埋めこみます。

<from method="get" action="<cgi-binの相対path>/namazu.cgi">
<string>検索:</string>
<input type="text" name="query" size="20" value="">
<input type="submit" name="submit" value="Search!">
<input type="hidden" name="whence" value="0">
<input type="hidden" name="lang" value="ja">
<input type="hidden" name="idxname" value="">
</form>


namazu.cgiのサンプル
整理してないので、中身は?です。