メール環境 over SSL (その 3: メーリングリストのアーカイブ)

前回,Mew + stunnel でメールを送受信する方法を書いたが [2006-04-07],よく考えたらこの方法だと procmailbsfilter が使えないということに気がついた.せっかく育てた 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 が勝手にアーカイブを作ってくれる.はず.