メール環境 over SSL (その 3: メーリングリストのアーカイブ)
前回,Mew + stunnel でメールを送受信する方法を書いたが [2006-04-07],よく考えたらこの方法だと procmail や bsfilter が使えないということに気がついた.せっかく育てた procmail のレシピや befilter のスパムデータベースを捨てるには忍びないので,結局送信にのみ stunnel を使い,受信には fetchmail [2006-04-06] を使うことにした.
さて,少し話が変わってメーリングリスト (ML) のアーカイブを MHonArc で作成する話について.これまではローカルサーバの majordomo で ML を運営していたため,/etc/aliases 内で mhonarc を呼んで自動的にアーカイブを作成していた.ところが,今度から ML が外部サーバに移行し,しかも満足にアーカイブも作ってくれない.そこで「fetchmail で配信メールをローカルサーバに取って来て,procmail から mhonarc を呼び出す」ということをやってみることにした.
まず,ローカルサーバに専用のユーザアカウントを作る.ここでは mlarc というアカウント名としておく.
次に,mlarc の .fetchmailrc を前回書いた方法 [2006-04-06] で設定する.fetchmail は cron で 1 分毎に動かすようにする.
* * * * * /usr/local/bin/fetchmail > /dev/null 2>&1
そして,.forward に
"|IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #mlarc"
と書いておいてメールが来たら procmail を実行させるようにする.
更に .procmailrc は
MAILDIR=$HOME/Mail/ LOGFILE=$MAILDIR/procmail.log PATH=$HOME/bin:/usr/bin:/bin:/usr/local/bin :0 * ^(To|Cc): *mailing_list@example.jp { :0 c mailing_list/. :0 | /usr/local/bin/mhonarc -quiet -add -rcfile /path/to/html/jnamazu.rc -outdir /path/to/html/mailing_list -- }
などとしておく.mailing_list@example.jp というのは ML の投稿アドレスである.複数の ML についてそれぞれ別のアーカイブを作りたい場合は,「:0」以下のレシピを各 ML について書く.ML の種類は今回は投稿アドレスで判断してるが,Subject の文字列で判断するのでもよい.
最後に,ML のメンバに mlarc を加えておけば,メッセージが投稿されるたびに mlarc に届き,あとは mlarc が勝手にアーカイブを作ってくれる.はず.