 


last update 2002.10.14
作者が利点ばかり強調するのはあまりよいとは思えませんが、ここではqmailの利点と欠点を探してみましょう。
必要な基礎知識
というわけで、メール配信サービスなどにはよいものかもしれません。
qmailをインストールしてみました。 
とりあえず気づいた疑問をメモしてみましょうね。 
どういう構成にしようかな 
基本インストール 
受信 
バーチャルドメイン化 
メーリングリスト設定 
転送(バックアップサーバにする) 
SPAM拒否 
送信 
応用編 
できないことはどんなこと 
のようなメニューになりますが、どれから説明するのが良いやら。 
送信は、はやめにしたいでしょ?
必要なものは?
qmail 1.03 
  uscpi-tcp 0.88
この2つです。uscpi-tcpはなくてもかまいませんが、SPAM拒否等で必須のものと思っておいてもいいでしょう。
普通のインストールは、http://www.qmail.jp/qmail.html
を参照してみてください。 
付属文書 -> インストール -> インストール手順の 
http://man.qmail.jp/jinstall/install1.html
こういうところに詳しく手順が書かれています。 
基本的にインストール作業は root で行います。
一般ユーザからは、su - なんてしておきましょう。
# mkdir /var/qmail
        # groupadd nofiles
        # useradd -g nofiles -d /var/qmail/alias alias
        # useradd -g nofiles -d /var/qmail qmaild
        # useradd -g nofiles -d /var/qmail qmaill
        # useradd -g nofiles -d /var/qmail qmailp
        # groupadd qmail
        # useradd -g qmail -d /var/qmail qmailq
        # useradd -g qmail -d /var/qmail qmailr
        # useradd -g qmail -d /var/qmail qmails
# tar zxvf qmail-1.03.tar.gz
# cd qmail-1.03
# make setup check
# ./config
されていない場合は# ./config-fast your.full.host.name
で、簡単な設定ができます。# touch ~alias/.qmail-postmastr
何も書かなければ、 alias ユーザの Mailbox 宛に送信されます。
    # chmod 644 ~alias/qmail-postmaster
    # touch ~alias/.qmail-mailer-daemon
    # chmod ~alias/.qmail-mailer-daemon
    # touch ~alias/.qmail-root
    # chmod 644 ~aliase/.qmail-root
配送順(rootなどは3から)
# cp /var/qmail/boot/home /var/qmail/rc
これは、後程qmailを起動するために使われます。
    # tar zxvf ucspi-tcp-0.88.tar.gz
    # cd ucspi-tcp-0.88
    # make
  # make setup check
        #! /bin/sh
#
# chkconfig 345 80 20
# description: qmail mail server
# 
# qmail: /var/qmail
        
        [ -f /var/qmail/rc ] || exit 0
        
        start(){
    echo "Starting qmail."
    csh -cf '/var/qmail/rc &'
   
    /usr/local/bin/tcpserver -v -u 50x -g 50x -x
/etc/tcp.smtp.cdb 0 smtp /usr/local/bin/rblsmtpd -r income.siisise.net -r relays.ordb.org
/var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 &
    echo
    touch /var/lock/subsys/qmail
        }
        stop(){
        echo 'Shutting down qmail.'
        PID=`/bin/pg -aefw | grep qmail | awk '{print $2}'`
        if (! -z "$PID" ] ; then
        /bin/kill ${PID} 1> /dev/null 2>&1
        fi
        echo
        rm -f /var/lock/subsys/qmail
        ;;
        
        }
        restart(){
  stop
  start
}
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    restart
    ;;
  *)
    echo "Usage: $0 {start|stop}"
    exit 1
esac
exit 0
(工事中)
赤字の部分はqmailのユーザID、グループIDにしてください。
    このファイルは、起動/終了のときに使われます。後程改良予定。    
    
# vi /etc/rc.d/init.d/qmail
        # chmod 755 /etc/rc.d/init.d/qmail
        # chkconfig qmail on
で起動設定が完了です。
    127.:allow,RELAYCLIENT=""
    192.168.0.:allow,RELAYCLIENT=""
めも
まず、qmailだけをインストールすると、受信のみで使うようにしか設定できません。POP3の設定もしますか。
私はまだしてません。Vine Linuxについてたのをそのまま使ってます。POPを使う人だけリンクして使ってます。
参考
www.jp.qmail.org
実用qmailサーバ運用・管理術(@IT:Linux Square) あんまりよくない・・・
| 処理順? | 設定ファイル名 | 初期値 | 参照コマンド | 効能 | 
|  | me |  |  |  | 
| 1 | badmailfrom | なし | qmail-smtpd | 拒否する送信者アドレス、ドメイン | 
| 2 | localiphost | me | qmail-smtpd | [IPアドレス]型のメールを受け取ったときにここで指定したドメイン名に変換してから受け取ります | 
| 3 | rcpthosts | なし | qmail-smtpd | このドメイン宛のメールだけ受け取ります。[IPアドレス]宛のメールはlocaliphost
で変換後rcpthosts を参照します。 その他のサーバ宛のメールをローカルから受け取った場合は、RELAYCLIENT環境変数があれば受信します。 | 
| 4 | locals | me | qmail-send | このドメイン宛のメールは、直接ユーザに送られます。 | 
| 5 | virtualdomains | qmail- | locals にないドメインの場合、こちらを参照します。 domain:localuser-ext という記述方法で指定されたドメイン宛のuser@domainのメールはlocaluser-ext-user@local 宛に配送され、~localuser/.qmail-ext-user の拡張アドレスで処理されます。 | |
| 6 | smtproutes | DNS値 | qmail-remote | 特定ドメインの宛て先サーバを指定します。 CNAMEレコードなサーバ名は指定できません。 Aレコードのサーバ名か、IPアドレスが書けます。 ここで指定すると、DNSのMXレコードより優先され、MXレコードは無視されます。 | 
rcpthosts は、locals と virtualdomains、smtproutes に加え、中継対象のホストを記述できますね。
参考バーチャルドメインで、多種多様なドメインを一手に引き受けることができます。
このサーバでも数種類のドメインのメールを受け付け、mozilla.gr.jp のパックアップメールサーバとしても稼働しています。普通に受信するには
control/me にサーバ名を設定します。
locals にも設定します。(しなくてもいいです)
rcpthostsに加えます。特定のサーバから転送して受け取る場合には環境変数 RELAYCLIENT=""で指定してもかまいません。バックアップメールサーバ
rcpthosts または環境変数 RELAYCLIENT=""
localsには加えません
smtproutesというファイルに受信するドメインと、転送する宛て先サーバを書きます。バーチャルドメイン
rcpthosts または環境変数 RELAYCLIENT=""
locals には加えない。
virtualdomain にドメイン名とユーザ名の対応を加える。~alias/.qmail~の実行ユーザ は、やっぱりaliasさんなんでしょうね。
初期の設定だけだと、中継が禁止されているので他のサーバ宛のメールを送信するときのSMTPサーバとして使えません。
SMTPで自分のメールも送りたいですねぇ。
送信もできるようにするには、違うソフトを1つインストールします。(私はおすすめしときます)
そして、中継してもよいクライアントのアドレスを指定します。余分なドメインやIPアドレスは登録しないようにしましょう。
SMTPの認証送信は、パッチが出ていますがqmail自体は対応してないようです。残念です。どこからでもメールを送るというのはあきらめましょう。
その場その場にあるSMTPメールサーバを使ってみてください。
で、ローカルのマシン名が見えてしまいます。まぁ、後で直しましょう。
SMTP認証(別の差分が必要)
POP before SMTP (できるんですけど別のソフトが必要)
APOP(POPソフトはついてるらしいですけどAPOPには対応してるのかどうか、入れ換えればできますけど)
qmailとfmlの組み合わせはちょっと難しいかもでした。
設定方法は2種類ほどありまして、fmlのインストールをユーザで行う方法がひとつ。もうひとつは、手間をかけて設定する方法です。
普通にインストールするという場合は、qmailではalias ユーザでメーリングリストを処理するということになります。
fmlは、fmlのユーザで処理されることを想定しているようですので、qmail/users/assign という qmailのwebサイトにちょっと載ってなさそうなファイルを使って実行ユーザを書き換えます。
このファイルを書き換えるのは、qmailのバーチャルドメインを使っていない場合に限った方が良いでしょう。
tcpserver と一緒にucspi-tcp-0.88に 入っている rblsmtpd というソフトを使います。
qmail 起動スクリプト 
[変更前] 
tcpserver -u [ユーザID] -g [グループID] 0 smtp /var/qmail/bin/qmail-smtpd
& 
[中継許可アドレスを設定] 
tcpserver -x /etc/tcp.smtp.cdb -u [ユーザID] -g [グループID] 0 smtp
/var/qmail/bin/qmail-smtpd & 
[拒否リストORDBとsiisise.netを追加] 
tcpserver -x /etc/tcp.smtp.cdb -u [ユーザID] -g [グループID] 0 smtp
/usr/local/bin/rblsmtpd -r income.siisise.net -r relays.ordb.org
/var/qmail/bin/qmail-smtpd & 
参考