トップ «前日 最新 翌日» 編集
RSS feed

ただのにっき


2000-01-13(木) [長年日記]

qmail

勢いに任せた昨夜の行動を反省して(笑)、ちゃんとマニュアルを読んで作業をすることにしました。本家のページにはちゃんと邦訳されたインストールやセッティングの手引きがあるので、これを順序よく読んでいけばちゃんと動くようにできるはず。ただ、作者のポリシーからか、ソースからインストールする以外の手段がほとんど書かれていないので、rpmの呪縛に囚われちゃった人は昨日教科書にしたようなサイトを参考に入れるしかないのだよ。たしかにマニュアル読みながら一歩一歩進むのはいい勉強になりますが。それにしても、本家以外のサイトでは「qmailは簡単!」ってあおり文句がやたらと目に付くのに、本家の方ではメール管理をなめるなとばかりに脅し文句が羅列されていて、落差にビビること請け合い。まぁ、メール配送の仕組みやSMTP、メールヘッダの情報についてある程度前提知識がないとqmailの設定はできないと思う。それは確かだけど、sendmailも同じだわな。おれと同じような環境の人向けに、controlのファイルを数カ所直すだけで運用が始められるバイナリパッケージはあったら嬉しいんじゃないの、やっぱし。

さて、参考にするのは付属文書一覧にあるINSTALLという文書である。おっとその前に、昨夜の教科書にあった残りのパッケージは全部入れてしまいましょう。このへんはもう、思考停止(笑)。これをやっておくと、daemonの起動は勝手に設定されるし、linuxconfで見えるようになるし、/etc/inetd.confsmtpのところはちゃんとコメントにしてくれたりして、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/mespc15.tadaと書いたのでそれに準じてsho@spc15.tadaとした。ところがこれが失敗で(泣)。相手のSMTPサーバが「spc15.tadaなんてドメインは実在しねぇだろ、こら」なんて言ってはじいてしまう。あたりまえだ。SMTPを喋るときに、MAILRCPTで実在するドメイン付加するようにしてもわらねばならん。エンベロープの問題なので、メールヘッダのFromに書いても無駄だしね。

qmail-controlに、/var/qmail/control/配下にある各種ファイルの設定方法が書いてあるので読んでみる。怪しいのはdefaultdomaindefaulthostかな。qmailはユーザ名のshoだけを使ってるだろう(つまりホスト名は補っていないだろう)と予測して、defaulthostspc.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をなんとかせねばいけない。また明日。


トップ «前日 最新 翌日» 編集
RSS feed