Home Top Up


qmail manual

導入

(installation)

[概要] [展開] [準備] [テスト] [inetd] [tcpserver]


[概要]

qmail の導入では、 ディレクトリの作成や、ファイルのコピーやリンクなどが必要です。 次の手順で、順番に行ってください。 また、トラブルを防ぐために、 日本語サイトにあるドキュメントも参照してください。

▲ Top


[展開]

適当なディレクトリで、ファイルを展開します。

この例では、 /usr/tmp にダウンロードしたパッケージを、 /usr/local/src で展開しています。

操作例
# cd /usr/local/src
# cp /usr/tmp/qmail-1.03.tar.gz .
# tar zxvf qmail-1.03.tar.gz

展開したディレクトリに移動すると、 導入方法を説明した INSTALL ファイルがあります。

操作例
# cd qmail-1.03
# less INSTALL

以降は、この文書の手順に従って導入を進めます。

▲ Top


[準備]

プログラムをコンパイルする前に、 の2つを行う必要があります。

まず、qmail のホーム・ディレクトリを作成します。 デフォルトでは、/var/qmail を作成します。

操作例
# mkdir /var/qmail

次に、グループとユーザーを登録します。 登録の方法は、INSTALL.ids ファイルに記述されています。

操作例
# groupadd -g 110 nofiles
# useradd -g nofiles -u 111 -d /var/qmail/alias alias
# useradd -g nofiles -u 112 -d /var/qmail qmaild
# useradd -g nofiles -u 113 -d /var/qmail qmaill
# useradd -g nofiles -u 114 -d /var/qmail qmailp
# groupadd -g 120 qmail
# useradd -g qmail -u 121 -d /var/qmail qmailq
# useradd -g qmail -u 122 -d /var/qmail qmailr
# useradd -g qmail -u 123 -d /var/qmail qmails

この例では、グループIDやユーザーIDを指定していますが、 これらは、指定を省略して、適当なもので登録してもかまいません。

▲ Top


[コンパイル]

プログラムをコンパイルし、 qmail ディレクトリ・ツリーを生成します。

操作例
# make setup check

マニュアル・ページは /var/qmail/man に、 各種のドキュメントは /var/qmail/doc に置かれます。

各種の設定を行います。 詳細は、INSTALL.ctl や FAQ に記述されています。 必らず行うことは、次の通りです。

操作例
# ./config

次に、メール・エイリアス用のファイルを作成します。 詳細は、INSTALL.alias に記述されています。 必らず行うことは、次の通りです。

操作例
# cd ~alias
# touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
# chmod 644 ~alias/.qmail*

qmail では、メール・ボックスが /var/spool/mail/user ではなく、 ホーム・ディレクトリの ~user/Mailbox に配送されます。 このための手順が、INSTALL.mbox に記述されています。 また、/var/spool/mail/user に配送されるようにする方法は、 INSTALL.vsm に記述されています。

INSTALL.maildir には、 mbox 形式から新しい形式の maildir 形式に移行する方法が記述されています。

次に、/var/qmail/boot/home を /var/qmail/rc にコピーします。 procmail を使用する場合は、proc です。

操作例
# cp /var/qmail/boot/home /var/qmail/rc

▲ Top


[テスト]

qmail での配送をテストします。 この段階では、sendmail が動いていても構いません。

まず、qmail に渡されたメッセージの配送を開始させます。

操作例
# csh -cf '/var/qmail/rc &'

syslog の確認を行います。

操作例
# grep status /var/log/maillog

Jan 25 15:03:10 mail qmail: 948780190.996839 status: local 0/10 remote 0/20

プロセスの確認を行います。

操作例
# ps aux|grep qmail-

qmails   13678  0.0  0.5  1108  368 pts/1    S    15:03   0:00 qmail-send
root     13680  0.0  0.5  1068  320 pts/1    S    15:03   0:00 qmail-lspawn ./Ma
qmailr   13681  0.0  0.5  1068  316 pts/1    S    15:03   0:00 qmail-rspawn
qmailq   13682  0.0  0.5  1060  328 pts/1    S    15:03   0:00 qmail-clean
root     13904  0.0  0.7  1596  472 pts/1    R    15:48   0:00 grep qmail-

自分のユーザーになり、メールを送信してみます。 メッセージは、~/Mailbox に保存されます。

操作例
$ echo to: foo | /var/qmail/bin/qmail-inject

存在しないユーザーや、他のサーバーのユーザーへ、 メールを送信してみます。 ログは、/var/log/maillog に記録されます。

▲ Top


[inetd]

sendmail からの置き換えの場合は、/var/qmail/doc/SENDMAIL に説明があります。 Slackware など、多くの配布パッケージでは、 すでに sendmail がインストールされているので、 起動スクリプトから、sendmail の起動個所を削除します。 削除方法は REMOVE.sendmail で説明されています。

LASER 5 など、Red Hat Linux 系の配布パッケージでは、 setup コマンドで起動スクリプトから削除することができます。

次に、起動スクリプトに、qmail の項目を追加します。 例えば、/etc/rc.d/rc.local ファイルに次のような記述を追加します。 デーモンで起動するために、最後の & が必要です。

記述例
# qmail
/bin/csh -cf '/var/qmail/rc &'

次に、qmailの sendmail wrapper を MUA から使えるようにします。 次の操作で、qmail の sendmail プログラムが使用されることになります。 もし、sendmail.mx ファイルがある場合は、chmod 0 を行います。

操作例
# mv /usr/sbin/sendmail /usr/sbin/sendmail.back
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

最後に、/etc/inetd.conf に次の1行を追加します。 ここでは、表示の都合で、2行になっていますが、実際には1行で記述します。

記述例
smtp stream tcp nowait qmaild
   /var/qmail/bin/tcp-env tcp-env /var/qmail/bin/qmail-smtpd

以上で、設定は終わりました。 システムを再起動し、プロセスなどを確認してください。

▲ Top


[tcpserver]

qmail を tcpserver から起動する場合は、 次のような記述を、ブート・スクリプト /etc/rc.d/rc.local に追加します。

記述例
/bin/csh -cf '/var/qmail/rc &'
/usr/local/bin/tcpserver -u 7770 -g 2108 0 smtp \
    /var/qmail/bin/qmail-smtpd &

ここで、7770 は qmaild のユーザーIDに、 2108 は nofiles のグループIDに置き換えるます。 最後の'&'は、デーモンとして起動するために、必ず付けます。

なお、tcpserver を使用する場合、inet.conf での smtp の設定はコメントにします。 また、tcpserver を利用するには、別途、 ucspi-tcp パッケージをインストールしておく必要があります。

tcpserverは、デフォルトで、同時に40までの qmail-smtpd を扱えます。 この制限を変更するには、tcpserver -c 400 のようにします。

誰がどのくらい接続していたか記録するには、次のように記述します。

記述例
/bin/csh -cf '/var/qmail/rc &'
/usr/local/bin/tcpserver -v -u 7770 -g 2108 0 smtp \
    /var/qmail/bin/qmail-smtpd 2>&1 | \
    /var/qmail/bin/splogger smtpd 3 &

▲ Top


(2003/01/25)