fetchmail and procmailを使う


今までMewを使っていましたが、ノートパソコンを研究室に持ってきたので、 常時接続状態になりました。ということで、何となく移行してみました。

それぞれの説明

これくらいの認識でこの二つを使っています。 たぶん、もっと能力を秘めているでしょうが、 今の僕には関係がありません。


fetchmailを設定する

設定用のコマンド、「fetchmailconf」があったので、使ってみたのですが、 「test fetchmail」をしてもエラーが出てしまいました。

このコマンドで生成される「.fetcmailrc」の、username,passwordの部分に 問題がありました。 ただ、このままでは、procmailを連携させる方法が今一つ分からなかったので、 webで紹介された通りに設定ファイルを書き直してみました。 ただ、メールサーバがどのタイプのプロトコルに対応しているのか、 チェックする分には使えそうです。
~/.fetchmailrc

set daemon 300
defaults
        protocol pop3
        uidl
        no rewrite
        mda "/usr/bin/procmail"
#       keep

poll    SO-NET
        username uso800
        password ******
poll    FREE-ACCOUNT
        username uso800
        password ******
プライバシー保護のために、一部書き直させてもらっています。
最初は、設定が失敗していても大丈夫なように、 keepの部分は、コメントアウトされています。 これで、メールサーバにメールが保存され、 従来使っていたメーラーで読み込むことができます。 また、ちゃんと設定できたら定期的に取ってくるように、 「deamon」の設定もしてみました。300秒間隔でサーバにアクセスします。


procmailの設定

上のmda(mail delivery agent)でprocmailを設定したので、 これを使えるように設定ファイルを作ります。

~/.procmailrc

全体的な設定
#VERBOSE=on
PATH=/usr/bin:/bin:/usr/local/bin:.

# ディレクトリの設定
MAILDIR=$HOME/Mail/      # You'd better make sure it exists
DEFAULT=$MAILDIR
LOGFILE=$MAILDIR/from-log
LOCKFILE=$HOME/.lockmail

# ここらへんは行数を正しく表示させるためのおまじないみたい(^^;) 
:0
* ! ^Lines:
{
  # Count number of lines
  :0B
  * 1^1 ^.*$
  { }
  LINES = $=
          
  # Add Lines: header
  :0 fhw
  | formail -a "Lines: $LINES"
}

# mag2のメールマガジンを分離。
:0
* ^From:/*mag2 ID 0000006897
Magazine/info/tsumami/.

# 特にフォルダをつくっていないメールマガジンは、
# とりあえず持ってくる。
:0
* ^[Ff]rom: mag2from@tegami.com
Magazine/.

# それ以外のメールは、すべてinboxに持ってくる。
:0:
inbox/.
		     

「DEFAULT」これ以降、絶対パスが指定されていなかったら、 このディレクトリ以下に保存するという意味(なんじゃないかな?)

「LOGFILE」に、procmailの動作が記録される。 これがないとどこで間違いが起きたか分からないので、 指定しておいた方がいいでしょう。

「LOCKFILE」とりあえずロックファイル。何を防ぐんでしょう? 二重に起動されるのを防ぐのかな?

実は、十分に書式を知らず、見よう見まねで設定しています。 不完全なところがあるでしょう。 間違っていたりしたら、教えていただけるとありがたいです。

この時の設定の肝は、

:0
* ^[Ff]rom:.*mag2from@tegami.com
Magazine/.

の部分です。 赤い字の部分は正規表現なので、 「.*」を忘れるとマッチしなくなったりするみたいです。

また、「Magazine/.」の最後のピリオドがないとMH形式で保存してくれないらしい ので、忘れないようにしましょう。


Wanderlust

メーラーにWanderlust を利用することにしました。 理由は、何となくかっこいいから。 機能もたくさんついていそうだし。

そして、Prom-WLを使います。 設定は、ダウンロードしてきたtar.gzの中にあるので、その通りにすれば設定でき ます。


biff

自動的に取り込まれる設定(deamon)は便利なのですが、 普通のものはもちろん、pop3に対応したbiffでも対応できません。

ただ、procmailは分類したときにログファイルを残し、 prom-WLは、起動する度にそのログファイルを消去します。 つまり、ログファイルには新着のメールについて書かれてい るわけです。 知りたいのは、「いつprom-WLを起動すればよいか」だけですので、 そのログファイルをチェックするだけでよいのです。

今使っているbiffは、「gkrellm」についているものを利用しています。 これは、外部プログラムの出力を観察して、メールの有無を判断しています。 ということで、「何通届いているか」を出力するスクリプトを書けば良いことにな ります。

ということで、適当にログファイルの書式を観察した結果、 このようなスクリプトになりました。行数を数えているだけです。 もっとうまい書き方もあるかも。 知っている方はぜひ教えてください。 mailcheck.pl


参考にしたページ