そういうわけで、Hyper Estraier での検索にかなり満足してるワタクシですが、その前に、xyzzy の KaMailV3 に本格移行しようかなと思ってた期間があって、そのときに、最初、Gnus でのメールの取得に使ってた fetchmail と procmail をそのまま xyzzy でも使おうと思って、いろいろと書き換えたりしてたんですよね。結局、V3 でそのまま使うと、MIMEヘッダがビュー画面ではデコード表示されない(サマリー画面ではOK)という問題があるのがわかって、POPFile + SSL(gmail取得用) + avast! に切り替えたんですが、その間の「弄り」でなにかやっちゃったらしくて、結局、Gnus が一番と思って帰ってきたときには、今度は、Gnus でのメールの取得に問題が生じていたと。どんな問題かというと、procmail によって配送されたメールが、たとえ、複数のメールであっても、一通と認識されちゃって、一つのメールに複数の内容がダダダーッと繋がって書かれたものが取り込まれちゃうんですね(涙)。こんなとき、ハサミでメールとメールの間をチョキチョキ切れたらどんなに楽か(涙)。で、原因なんですが、procmail がデフォルトのディレクトリに配送した mbox形式のファイルの中の夫々のメールの区切であるはずのところの Unix From(「From (From:じゃないよ)」参照) がないんですよ! ということは、それを、目印にして、分割して取り込む Gnus の機能も当然出番はないわけで、つまりは、実際は、10通あろうが20通あろうが、1通としてしか認識しない。そういえば、Unix From を変換した Gnus 独自のヘッダ(X-From-Line:)が、それらには、入ってなかったもんね。
それじゃ、なぜ、Unix From が入ってないのかというと、これはもう、procmail が入れてないというその事実があるのみなわけで。そこから、さらに原因を探求していく過程で、woman procmail して、procmail のオプション、 -f の項目に注目。
-f fromwhom fromwhom を送信者(sender)にして、先頭の `From ' 行を再作 成する(-f の代わりに、今では使われなくなっているが -r が 使用できる)。fromwhom が `-' 1個だけの場合、procmail は `From ' 行のタイムスタンプの更新のみ行う(これはタイムス タンプが存在する場合である。なければ新たに作成する)。
これ使えば、なんとか Unix From を復活できるかも。ということで、procmail のオプションに -f (自分のアドレス) を付けてみたら、ちゃんと From が入って、メールの分割配送もできました。でも、本当は、例え、捨てヘッダでも、送信者はメールの実際の送信者にしておきたいし、ということで、そのあたりの変数についての情報を、さらに探してたら、[linux-users:98424] fetchmailrc の'%F'についてというのを発見。これだ、ドンピシャ。しかも、fetchmailrc の中で procmail を呼び出す場合、fetchmailrc 自動作成スクリプトの fetchmailconf では、デフォルトで '-f %F' をつけてるとか(私はサンプルを見ながら手書きで作成してた)。これを書いた人は、そんなのなくても、From はちゃんと入ってくるし、なぜ、オプションを書く必要があるのか疑問と書かれてたんだけど、私の場合は、まさに、今まで、書かなくても入ってたものが、突然、入らなくなっちゃったわけで(笑)。ということで、呼び出してる fetchmailrc の中の procmailコマンドの行に '-f %F' をつけたら全て解決。cygwin の fetchmailrcconf で作り直してみて、以下に貼ったような形になりました(mdaの行)。弄りの最中に、何やったかなァ、自分。
# Configuration created Fri Apr 27 06:18:48 2007 by fetchmailconf 1.52 $Revision: 4740 $ set logfile "/var/log/fetchmail.log" set postmaster "hal" set nobouncemail set no spambounce set properties "" poll mail.sample.com with proto POP3 user 'watakushi_no_user_name' there with password 'watakushi_no_password' is 'hal' here options flush fetchall no rewrite stripcr mda '/usr/bin/procmail -p -f %F "$HOME/.procmailrc"' poll pop.gmail.com with proto POP3 service 995 user 'google_user_name' there with password 'google_password' is 'hal' here options flush fetchall no rewrite stripcr ssl sslproto 'tls1' sslcertck sslcertpath '/usr/local/halCA/certs' mda '/usr/bin/procmail -p -f %F "$HOME/.procmailrc"'