★まずはqmailインストール用のディレクトリィを作成。
#mkdir /var/qmail
★qmail用のユーザ作成
#pw groupadd nofiles
#pw useradd alias -g nofiles -d /var/qmail/alias -s /nonexistent
#pw useradd qmaild -g nofiles -d /var/qmail -s /nonexistent
#pw useradd qmaill -g nofiles -d /var/qmail -s /nonexistent
#pw useradd qmailp -g nofiles -d /var/qmail -s /nonexistent
#pw groupadd qmail
#pw useradd qmailq -g qmail -d /var/qmail -s /nonexistent
#pw useradd qmailr -g qmail -d /var/qmail -s /nonexistent
#pw useradd qmails -g qmail -d /var/qmail -s /nonexistent
★qmail本体の解凍を行います。
#cd /usr/local/src
#tar zxvf qmail-1.03.tar.gz
★qmailのパッチ当て
qmailのソースのあるディレクトリに移動します。私の場合は(/usr/local/src)で、ソースを展開します。
次に展開したディレクトリにおりて、パッチを当てます。
この際、パッチファイルも(/usr/local/src)に置かれている事を前提とします。
#cd qmail-1.03
#patch -p1 < ../qmail-date-localtime.patch (localtime表示にするpatch)
#patch < ../qmail-smtpd-relay-reject (不正な中継をさせないpatch)
★次にコンパイルとインストールの実行です。
下記のコマンドでエラーが発生しない事を確認しましょう。
#make setup check
#./config
もし、ここでconfig実行時にエラーがでる場合は、ローカルでしか解決できない
hostnameなどを使用している可能性があります。
この場合は以下の方法でconfigして下さい。
#./config-fast ×××.×××.com
この作業で/var/qmail/control/の下のファイルが作成されます。
★エイリアスの設定
#cd /var/qmail/alias
#touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
#chmod 644 .qmail*
★実稼働の為に・・・
/etc/rc.conf (FreeBSD3.2なら /etc/defaults/rc.conf)
の中の下記の行を変更します。
sendmail_enable="YES"
↓
sendmail_enable="NO"
次に現在動作しているsendmailをkillします。
#killall -kill sendmail
★起動スクリプトの準備
通常/var/qmail/boot/home が起動スクリプトの雛型になっていますので、
これをディレクトリ/var/qmailにファイルrcとしてコピーします。
#cp /var/qmail/boot/home /var/qmail/rc
★動作確認
#/var/qmail/rc &
#/var/qmail/bin/qmail-inject
To: user
Subject: Test
Test desuyo.
[CTRL]+D
#cd /home/user
その中にMaildirというフォルダが作成されていると
思いますので、そこをcatかmoreで覗いてみる。
--------------------------------------------------------
kurihara# ls -l
total 20
-rw-r--r-- 1 okamura okamura 771 Jun 13 09:46 .cshrc
-rw------- 1 okamura okamura 294 Jun 26 19:22 .history
-rw-r--r-- 1 okamura okamura 255 Jun 13 09:46 .login
-rw-r--r-- 1 okamura okamura 165 Jun 13 09:46 .login_conf
-rw------- 1 okamura okamura 371 Jun 13 09:46 .mail_aliases
-rw-r--r-- 1 okamura okamura 331 Jun 13 09:46 .mailrc
-rw-r--r-- 1 okamura okamura 789 Jun 13 09:46 .profile
-rw------- 1 okamura okamura 276 Jun 13 09:46 .rhosts
-rw-r--r-- 1 okamura okamura 852 Jun 13 09:46 .shrc
-rw------- 1 okamura okamura 370 Jun 28 11:27 Mailbox
kurihara# more Mailbox
From kurihara@kurihara.ne.jp Fri Jun 28 02:27:01 2002
Return-Path:
Delivered-To: okamura@kurihara.ne.jp
Received: (qmail 9026 invoked by uid 0); 28 Jun 2002 11:26:56 +0900
Date: 28 Jun 2002 11:26:38 +0900
Message-ID: <20020628022638.9017.qmail@kurihara.ne.jp>
From: kurihara@kurihara.ne.jp
To: okamura@kurihara.ne.jp
Subject: Test
Test dayo.
--------------------------------------------------------
★qmail自動起動とsendmailのリンク張替え
#ln -s /var/qmail/rc /usr/local/etc/rc.d/qmail.sh
とリンクを張っておきます。qmail.shが起動時に実行。(実体は/var/qmail/rcを実行)
/usr/sbin/sendmail -q で停止。
setuidビットを削ってqmailのsendmailモドキにリンクを張っておきます。
こうしておけばperlのスクリプトでsendmailが呼ばれたときもあたかもsendmailを使っているかのようにqmailが振る舞います。
#cd /usr/sbin
#chmod 0 /usr/sbin/sendmail
#mv sendmail sendmail.org
#ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
★inetdから起動するなら
/etc/inetd.confを書き換えておきます。(tcpserverからの起動なら記述必要無し)
smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env tcp-env /var/qmail/bin/qmail-smtpd
(多分既に#でコメントアウトされている記述が有るはず)
inetdのプロセス番号を調べて再起動
cat /var/run/inetd.pid
又は ps ax | grep inetd
kill -HUP プロセス番号