2000-01-13(木) [長年日記]
■ qmail
勢いに任せた昨夜の行動を反省して(笑)、ちゃんとマニュアルを読んで作業をすることにしました。本家のページにはちゃんと邦訳されたインストールやセッティングの手引きがあるので、これを順序よく読んでいけばちゃんと動くようにできるはず。ただ、作者のポリシーからか、ソースからインストールする以外の手段がほとんど書かれていないので、rpmの呪縛に囚われちゃった人は昨日教科書にしたようなサイトを参考に入れるしかないのだよ。たしかにマニュアル読みながら一歩一歩進むのはいい勉強になりますが。それにしても、本家以外のサイトでは「qmailは簡単!」ってあおり文句がやたらと目に付くのに、本家の方ではメール管理をなめるなとばかりに脅し文句が羅列されていて、落差にビビること請け合い。まぁ、メール配送の仕組みやSMTP、メールヘッダの情報についてある程度前提知識がないとqmailの設定はできないと思う。それは確かだけど、sendmailも同じだわな。おれと同じような環境の人向けに、controlのファイルを数カ所直すだけで運用が始められるバイナリパッケージはあったら嬉しいんじゃないの、やっぱし。
さて、参考にするのは付属文書一覧にあるINSTALL
という文書である。おっとその前に、昨夜の教科書にあった残りのパッケージは全部入れてしまいましょう。このへんはもう、思考停止(笑)。これをやっておくと、daemonの起動は勝手に設定されるし、linuxconf
で見えるようになるし、/etc/inetd.conf
のsmtp
のところはちゃんとコメントにしてくれたりして、INSTALL
に書いてある設定作業のほとんどは完了した状態にしてくれることがわかる。ありがたや。でもドキュメントはひととおり目を通すこと。
しかしqmailの作者って、ちょっと変かも。キューをネットワークで共有させてはいけないからと言って、なんでもかんでも/var/qmail
に入れてしまう(実行ファイルどころかmanファイルまで!)というのはやりすぎではないのか。あたしゃ、どうやってmanを読めばいいのかわからんよ(笑)。キューだけ/var/qmail
に置けばいいのにね。
それはさておき、rpmのおかげでほとんど何も触らずに配送テストTEST.deliver
まで来ることができる。4つのdaemonもちゃんと動いていることを確認したら、おもむろにローカル配信のテスト。
$ echo to: sho | /var/qmail/bin/qmail-inject
■ とやってみて、自分の~/Maildir/new/
に新しいファイルができていることを確認できるはず。中身を見れば、純然たる自分宛のメールである。ちょっと感動。その他の外部やエラーになるアドレスの配送もテストして、うまくいくことを確認する。OK。
続いてはsendmailの置き換えのところだけど、これは昨日やっちゃったのでパス。qmailの提供するsendmailに置き換えてしまえば、/bin/mail
はそのままでいいだろう(たぶん)。ちなみにこの置き換えもrpmがやってくれてあります。お次はTEST.receive
で受信のテスト。ここではtelnetでqmail-smtpd
に接続して生SMTPを喋るという、なかなか楽しいテストである。送受信先として指定するアドレスは、いちおうcontrol/me
にspc15.tada
と書いたのでそれに準じてsho@spc15.tada
とした。ところがこれが失敗で(泣)。相手のSMTPサーバが「spc15.tadaなんてドメインは実在しねぇだろ、こら」なんて言ってはじいてしまう。あたりまえだ。SMTPを喋るときに、MAIL
やRCPT
で実在するドメイン付加するようにしてもわらねばならん。エンベロープの問題なので、メールヘッダのFromに書いても無駄だしね。
qmail-control
に、/var/qmail/control/
配下にある各種ファイルの設定方法が書いてあるので読んでみる。怪しいのはdefaultdomain
かdefaulthost
かな。qmailはユーザ名のsho
だけを使ってるだろう(つまりホスト名は補っていないだろう)と予測して、defaulthost
にspc.gr.jp
を指定した。自分のアカウントがあるドメイン名なんだから、騙ってることにはなるまい。もう一度チャレンジしてみたら、こんどは実験成功。ちゃんと~/Maildir/new/
に新しいファイルが加わっている。ああ、よかった。
■ fetchmail
これで設定は完了した「はず」なので、fetchmail
を使ってfreemail.ne.jpのアカウントからメールを持ってきてみる。何も考えずに実行したら、昨夜と違って順調に受信している模様。よしよし……と思ったら、メールは届いていない。あれれ? ログ(/var/log/qmail/
の下あたりにある。syslog
に出るって書いてあるんだけど、どうやって見るのかわかんねーっす)を見ると、sho@localhost
に送れないからダメとか言って、送信者にfailure notice
なんてSubjectのメールが返ってるじゃないの。あうあう。この場を借りてお詫びします。すんません。
さて。localhost
なんてドメインへの配送は認めていないってことだろうな、というのは容易に想像がつく。ユーザ名に@localhost
を付けた犯人はおそらくfetchmail
だろう。とすれば、qmailでlocalhost
への配送を許すか、fetchmail
が付けるドメイン名をspc15.tada
に変えるかのいずれかの対応をとればいい……と思う。qmailのマニュアルを読んでいて、「.(ドット)」を含まないアドレスへの配送はしないなんて文章を読んだ記憶があるので、fetchmail
側で対応するのが楽そう。fetchmail
のマニュアルを探すと、-D
オプションてのがある。これだな。オプション与えるのは面倒だから、設定ファイルに書いておく方法もあるはずだと探すと、smtpaddress
ってのがあった。これでしょう。いままで使っていた~/.fetchmailrc
を書き換えて、
defaults protocol pop3 smtpaddress spc15.tada user ++++++++ poll mizar.freemail.ne.jp pass ********
■ とする。テストのために自分に1通出してから(これはqmail-inject
が使える♪)、ふたたびfetchmail
を起動する。
$ fetchmail 1 message for ++++++++ at mizar.freemail.ne.jp (1090 octets). reading message 1 of 1 (1090 octets) . flushed
■ こんどは成功♪ やったね。これでメール配送のインフラは完了かな。次はクライアントのためにIMAPをなんとかせねばいけない。また明日。