Time-stamp: "1999-10-31 02:58:45 yasuhide"

qmail を導入する

  1. ダウンロード
  2. インストール
  3. 初期設定
  4. 試しに使ってみる
  5. 今回の失敗

ダウンロード

インストール

  + chown -R root:root /tmp/qmail
  
なんていう処理をしていましたので、qmail-1.03-6.src.rpm の rebuild には root の権限が必要でした。 依存関係で悩みたくなければ、
  1. qmail
  2. fetchmail
  3. procmail
の順で入れていくといいと思いますが…。
  # rpm -ivh --force --nodeps qmail-1.03-6.i386.rpm 
  
なんていうムチャはなるべく避けましょう。

初期設定

http://www.jp.qmail.org/q103/jinstall/ の記述を参考に、インストール後の設定を行いました。

# /usr/bin/qmail/config-fast alfonz.kaz.or.jp
Your fully qualified host name is alfonz.kaz.or.jp.
Putting alfonz.kaz.or.jp into control/me...
Putting kaz.or.jp into control/defaultdomain...
Putting or.jp into control/plusdomain...
Putting alfonz.kaz.or.jp into control/locals...
Putting alfonz.kaz.or.jp into control/rcpthosts...
Now qmail will refuse to accept SMTP messages except to alfonz.kaz.or.jp.
Make sure to change rcpthosts if you add hosts to locals or virtualdomains!
http://home.sprintmail.com/~kikutani/mutt-tips.html の記述を参考に、
$ /usr/bin/qmail/maildirmake ~/Maildir
$ echo ./Maildir/ > ~/.qmail
http://www.jp.qmail.org/q103/jinstall/install.alias.html の記述を参考に、
# touch ~alias/.qmail-postmaster
# chmod 644 ~alias/.qmail-postmaster
# touch ~alias/.qmail-mailer-daemon
# chmod 644 ~alias/.qmail-mailer-daemon
ここで、/var/qmail/rc の内容を見てみると、/etc/rc.d/init.d/qmail に 起動用のスクリプトが入っているようなので、見てみる。
$ cat /etc/qmail/dot-qmail
としてみると
| dot-forward .forward
./Mailbox
となっている。dot-forward を使う気はないので、
# mv /etc/qmail/dot-qmail /etc/qmail/dot-qmail.orig
# echo ./Maildir/ > /etc/qmail/dot-qmail
とする。どうやらこの srpm は、sendmail を replace 出来るように作成されたものらしい。 まあ、その方が一般的なのかな?
# echo ./Maildir/ > /etc/skel/.qmail
として、(あまり考えられないけど)誰かがこのマシンを使うときにも Maildir 形式でメールボックスを使うように設定。ただ、これだけでは Maildir が形成できないので困ります。

そこで、試しに、

/etc/skel/Maildir
/etc/skel/Maildir/cur/
/etc/skel/Maildir/new/
/etc/skel/Maildir/tmp/
を、permission 700 で作成。
# adduser dasen
でテストしてみたところ、
~dasen/Maildir
~dasen/Maildir/cur/
~dasen/Maildir/new/
~dasen/Maildir/tmp/
が permission 700 で作成されていました。これで大丈夫でしょう。

$ /usr/bin/qmail/qmail-showctl 2>&1 |tee ~/qmail-showctl
で、コントロールファイルの効果を見ておくと、
qmail home directory: /var/qmail.
user-ext delimiter: -.
paternalism (in decimal): 2.
silent concurrency limit: 120.
subdirectory split: 23.
user ids: 504, 501, 502, 0, 503, 505, 506, 507.
group ids: 501, 502.

badmailfrom: (Default.) Any MAIL FROM is allowed.

bouncefrom: (Default.) Bounce user name is MAILER-DAEMON.

bouncehost: (Default.) Bounce host name is alfonz.kaz.or.jp.

concurrencylocal: (Default.) Local concurrency is 10.

concurrencyremote: (Default.) Remote concurrency is 20.

databytes: (Default.) SMTP DATA limit is 0 bytes.

defaultdomain: Default domain name is kaz.or.jp.

defaulthost: (Default.) Default host name is alfonz.kaz.or.jp.

doublebouncehost: (Default.) 2B recipient host: alfonz.kaz.or.jp.

doublebounceto: (Default.) 2B recipient user: postmaster.

envnoathost: (Default.) Presumed domain name is alfonz.kaz.or.jp.

helohost: (Default.) SMTP client HELO host name is alfonz.kaz.or.jp.

idhost: (Default.) Message-ID host name is alfonz.kaz.or.jp.

localiphost: (Default.) Local IP address becomes alfonz.kaz.or.jp.

locals: 
Messages for alfonz.kaz.or.jp are delivered locally.

me: My name is alfonz.kaz.or.jp.

percenthack: (Default.) The percent hack is not allowed.

plusdomain: Plus domain name is or.jp.

qmqpservers: (Default.) No QMQP servers.

queuelifetime: (Default.) Message lifetime in the queue is 604800 seconds.

rcpthosts: 
SMTP clients may send messages to recipients at alfonz.kaz.or.jp.

morercpthosts: (Default.) No effect.

morercpthosts.cdb: (Default.) No effect.

smtpgreeting: (Default.) SMTP greeting: 220 alfonz.kaz.or.jp.

smtproutes: (Default.) No artificial SMTP routes.

timeoutconnect: (Default.) SMTP client connection timeout is 60 seconds.

timeoutremote: (Default.) SMTP client data timeout is 1200 seconds.

timeoutsmtpd: (Default.) SMTP server data timeout is 1200 seconds.

virtualdomains: (Default.) No virtual domains.
という具合。 envnoathost: (Default.) Presumed domain name is alfonz.kaz.or.jp. いうのはこのままでいいのだろうか…?

http://www.kusm.kyoto-u.ac.jp/~yositomi/computer/qmail/qmail_setup.html の記述を参考に

http://www.jp.qmail.org/q103/jinstall/remove.binmail.html # chmod 0 /bin/mail /etc/profile に、
MAIL="/var/spool/mail/$USER"
とあるのを、
MAIL=$HOME/Maildir

試しに使ってみる

# /etc/rc.d/init.d/qmail start

/var/log/maillog

May 18 20:23:35 alfonz qmail: 927026615.164996 status: local 0/10 remote 0/20

$ pid qmail
qmaill    7650  0.0  0.2   764   364   p0  S    20:23   0:00 splogger qmail 
qmailq    7653  0.0  0.2   752   308   p0  S    20:23   0:00 qmail-clean 
qmailr    7652  0.0  0.2   752   296   p0  S    20:23   0:00 qmail-rspawn 
qmails    7648  0.0  0.2   792   348   p0  S    20:23   0:00 qmail-send 
root      7651  0.0  0.2   752   296   p0  S    20:23   0:00 qmail-lspawn ./Mai
yasuhide  7689  0.0  0.2   856   340   p0  S    20:28   0:00 grep qmail 
pid というコマンドは、自作のシェルスクリプトで、 $HOME/bin に ps aux |grep $1 という内容のものを作ってあります。 例外処理すらも書いていませんが、結構重宝してます。 引数なしで起動すると grep がエラーメッセージを吐きます。
$ echo to:yasuhide | /var/qmail/bin/qmail-inject
とすると、Maildir/new/927027239.7701.alfonz に到着しました。
/var/log/maillog を見ると、

今回の失敗

メールは
dasen@typhoon.co.jp まで。