トップ 最新

ただのにっき

2000-01-12(水) [長年日記]

Maildir

昨日判明したimapサーバのひどい仕様(?)がどうにも許せないので、メール管理方法を変えようと思い立った。Maildir形式ってヤツだ(昨日MHとか言ってたのは嘘)。この形式はメール1通を1ファイルに、1フォルダを1ディレクトリに対応させる直観的でわかりやすい形式で、メールのロスト等の問題が少ないとされている。ただ、以前WindowsでAL-Mailを使っていたときに似たような管理方式だったんだけど、ファイルの数がやたらと増えるのでディスクを食いまくるのと、ファイルのオープン/クローズはコストがかかるので、検索なんて処理をさせるとmbox形式を使っているメーラに比べて遅かった記憶がある。ただ、いずれメールはNamazuを使って検索対象にしようと思っているので、1メールが1ファイルになっているのは都合がいい。

qmail

となると、Maildir形式に対応したMTAを用意する必要がある。この形式の祖と言える(嘘かも)、qmailしかない。さっそくqmail関連のサイトを検索してお勉強。そうだ、IMAPもMaildir形式に対応しているものにしないといけないんだよ。大丈夫かなぁ。ちなみにいずれもKondara製のパッケージのない世界である。Maildirを推奨してるんなら、qmailくらい入れといてくださいよぅ、とほほるさん。しっかしなんか、ずんずん地雷原に足を踏み入れてるような気がするぞ……。まぁ、sendmail.cfの悪夢から逃れられるならそれだけの価値はあるかも?!(自分に言い聞かせている)

qmailはバイナリ配布を禁じているらしく、一発インストール可能なRPMは見つからない。どうにかqmail-1.03-102memphis.src.rpmというのを見つけた。ちなみに今日の教科書はここかな。rootになって、

# rpm --rebuild qmail-1.03-102memphis.src.rpm
# cd /usr/src/redhat/RPMS
# ls
qmail-1.03-102memphis.i386.rpm

てな感じで、src.rpmからi386.rpmが作れる。Kondara的にはi586で作るべきなのかな。まぁ、specファイルの書き方を勉強していずれ作ってみることにしよう。

続いて、同居はできないsendmailのパッケージを消す。

# rpm -e sendmail

続いてqmailをインストール。

# rpm -ivh qmail-1.03-102memphis.i386.rpm
qmail                       ##################################################
Your fully qualified host name is spc15.tada.
Putting spc15.tada into control/me...
Putting spc15.tada into control/defaultdomain...
Putting spc15.tada into control/plusdomain...
Putting spc15.tada into control/locals...
Putting spc15.tada into control/rcpthosts...
Now qmail will refuse to accept SMTP messages except to spc15.tada.
Make sure to change rcpthosts if you add hosts to locals or virtualdomains!

いいのかな? エラーらしきものはないけど。教科書には他にもいろいろ入れているけど、rpmファイルの中身を見たら必要そうには見えなかったので(うちはセキュリティ気にしなくていいから)、あえて入れずにこのまま進む。続いては、inetdqmail-smtpd(SMTPサーバ)が起動されるようにするのだ。/etc/inetd.confを開いて、昨日設定したsmtpの所を以下のように変更:

smtp    stream  tcp     nowait  qmaild  /usr/sbin/tcpd  /var/qmail/bin/qmail-smtpd

rootじゃなくてqmaildの権限で起動するのがqmailのqmailたる部分なのだろうな。たぶん。ためしにtelnetでSMTPにアクセスしてみる。

$ telnet spc15 smtp
Trying 192.168.0.3...
Connected to spc15.tada.
Escape character is '^]'.
220 spc15.tada ESMTP
quit
221 spc15.tada
Connection closed by foreign host.

おっけー。さて、さっきの教科書にはなんか他にもいろいろ入れてるんだけど、こんなに必要なのかなぁ。ためしにfetchmailしてみようか。

$ fetchmail
33 messages for ++++++++ at mizar.freemail.ne.jp (98182 octets).
reading message 1 of 33 (2336 octets) .fetchmail: can't even send to sho!
fetchmail: SMTP transaction error while fetching from mizar.freemail.ne.jp
fetchmail: Query status=10

ああっ、ダメだ(笑)。きっと一緒に協調して動くべきdaemonが他にいるんだな。うーん、今日はここまで。