qmail における xbiff と from

xbiff は新しいメールが到着したら教えてくれるプログラムです。 from は、誰からのメールかを知らせてくれるコマンドです。 これらは mbox (/var/mail/$USER) を監視しているので、 qmail の maildir 形式ではひと工夫いります。

用意するもの


xbiff

xbiff のオプション

後に使う xbiff のオプションは次の通りです。 詳しくは man xbiff してください。
% xbiff -xrm "*checkCommand:シェルコマンド"

checkCommand により新しいメールをチェックするために 実行するシェルコマンドを指定できます。 メールボックスの状態の判断は、そのシェルコマンドの 戻り値で行います。

    戻り値 0 : 新しいメールが待っている
    戻り値 1 : メールボックスの中身に変更なし
    戻り値 2 : メールが消去された   
つまり、メールボックスの状態と戻り値を対応させる シェルコマンドを作成すればOKです。

シェルコマンド1(checkmail)

Daniel (?)氏作成の sh 系シェルコマンドが checkmail です。 以前は 作者のページに行けたんですが、今はなぜか「Not Found」です。

シェルコマンド2(checkmail2)

checkmail だと、メールを読んだ後も xbiff では 「未読」の状態が続きます。 これを解除するには、いちいち X のメールお知らせ画面を クリックしないといけないので、修正しました。 著者は tcsh 使いなので csh を使って checkmail2 を書きました。 まあ、checkmail からたいそうな変更はしていません。

xbiff の起動

ここでは、checkmail2 を使うとして、どのように設定するかを 述べます。checkmail2 はパスの通った所(例えば ~/bin)に置いて 実行許可を出しておきます。
% mv /somewhere/checkmail2 ~/bin
% chmod +x ~/bin/checkmail

コマンドラインから

% xbiff -xrm "*checkCommand:~/bin/checkmail2"

Afterstep の Wharf で

Afterstep の「箱」Wharf で起動させるには、 ~/.steprc で xbiff を起動させている所に -xrm "*checkCommand:~/bin/checkmail2" のオプションを 追加しておきます。 ついでに、背景の色などをまわりの色と合わせておきます。 下記の記述を、適切な場所に一行で書きます。

~/.steprc
*Wharf xbiff nil Swallow "xbiff" xbiff -update 5 -bg "#8e8a9e" -fg "#00003f" -xrm "*checkCommand:~/bin/checkmail2" -geometry 45x45-1-1 &
(実際には1行で書きます)

オプションの update は更新頻度を秒単位で指定します。 つまり、上の例だと 5秒ごとにメールボックスをチェックしに行き ます。デフォルトは 30秒です。

さらに、メールボックスが空の時と空でないときの絵柄 (それぞれ /somewhere/empty.xbm と /somewhere/full.xbm とします) を自由に設定するには次のようにします。
~/.steprc
*Wharf xbiff nil Swallow "xbiff" xbiff -update 5 -bg "#8e8a9e" -fg "#00003f" -xrm "*checkCommand:~/bin/checkmail2" -xrm "*emptyPixmap:/somewhere/empty.xbm" -xrm "*fullPixmap:/somewhere/full.xbm" -geometry 45x45-1-1 &
(実際には1行で書きます)

from

Maildir 対応の from コマンドとして、 csh スクリプトファイルを作成しました。 適当な名前(例えば qfrom)をつけて、パスが通っている適当な場所 (例えば、$HOME/bin)に置いて実行許可を出しておきます。

これを今まで通り from というコマンドにしたければ、 mbox用 の /usr/bin/from と間違えないように、alias をしておきます。

% chmod +x $HOME/bin/from
% alias from $HOME/bin/from
alias は .cshrc に書いておくとよいでしょう。


FreeBSD の部屋


Jun 1, 2000