tomo.gif (1144 ツバツイツト)line.gif (927 ツバツイツト)To previous pageTo home pageMailing to me

qmail(SMTPサーバー)を導入してみる

Modified: 23 June 2002

このページでは基本的な設定が書いてありますが、さまざまな設定をするには、「qmailの小技」をご覧ください。

 参考資料

@ 秀和システム 「qmailで作る快適メールサーバー」

A 「UNIX USER 2002年7月」では、daemontoolsを使う方法が紹介されています。
B アットマークIT: 「http://www.atmarkit.co.jp/flinux/rensai/qmail01/qmail01a.html


qmail導入の準備
qmailのコンパイルからインストール
qmailの基本設定と動作テスト
qmailを正式起動するための設定

qmail-smtpの起動と確認

daemonで起動させる


 qmail導入の準備

tcpserverのインストールと設定

smtpをtcpserverで起動するために、「tcpserverのダウンロードからインストール」を参照し、tcpserverのインストールを行います。


qmailのディレクトリを作成する

# mkdir /var/qmail


DNSサーバーにMXレコードを追加する


qmail用のUID/GIDを登録する

GIDを2つ登録します

# /usr/sbin/groupadd qmail
# /usr/sbin/groupadd nofiles

UIDを7つ登録します

# /usr/sbin/useradd -g nofiles -d /var/qmail/alias -s /bin/true alias
# /usr/sbin/useradd -g nofiles -d /var/qmail -s /bin/true qmaild
# /usr/sbin/useradd -g nofiles -d /var/qmail -s /bin/true qmaill
# /usr/sbin/useradd -g nofiles -d /var/qmail -s /bin/true qmailp
# /usr/sbin/useradd -g qmail -d /var/qmail -s /bin/true qmailq
# /usr/sbin/useradd -g qmail -d /var/qmail -s /bin/true qmailr
# /usr/sbin/useradd -g qmail -d /var/qmail -s /bin/true qmails

 qmailのコンパイルからインストール

qmailを ダウンロードする

以下からダウンロードできます。

http://cr.yp.to/qmail.html

2002年6月17日に、”qmail-1.03.tar.gz”がダウンロードできました。

 このソフトは、1997年以降、更新が行われていないそうです。メンテナンスしていないということではなく、最初から必要機能は備わっているし、バグもないので、更新されていないのだそうです。そのこともこのソフトの信頼性が高いということのようです。


解凍からインストールまで

# tar zxvf qmail-1.03.tar.gz
# cd qmail-1.03
# make setup check
     :
#

 qmailの基本設定と動作テスト

設定ファイルを作成する

./config
Your hostname is rh73-93-mail.
hard error
Sorry, I couldn't find your host's canonical name in DNS.
You will have to set up control/me yourself.

通常、上記のようにエラーがでるので、以下のように、"config-fast"に、ホスト名を付加して実行します。

# ./config-fast rh73-93-mail.tomo.lint.ne.jp
Your fully qualified host name is rh73-93-mail.tomo.lint.ne.jp.
Putting rh73-93-mail.tomo.lint.ne.jp into control/me...
Putting tomo.lint.ne.jp into control/defaultdomain...
Putting ne.jp into control/plusdomain...
Putting rh73-93-mail.tomo.lint.ne.jp into control/locals...
Putting rh73-93-mail.tomo.lint.ne.jp into control/rcpthosts...
Now qmail will refuse to accept SMTP messages except to rh73-93-mail.tomo.lint.ne.jp.
Make sure to change rcpthosts if you add hosts to locals or virtualdomains!
#

実行の結果、"/var/qmail/control"の下に、"me","locals"など、5つの設定ファイルが作られます。

設定ファイルを変更します

以下の5つのファイルを編集します。

"me"の作成

内容は、メールサーバーのホスト名を、1行だけ記述します。

rh73-93-mail.tomo.lint.ne.jp

"locals"の作成

ローカル配送するドメイン名を列挙します。

localhost
localhost.tomo.lint.ne.jp
tomo.lint.ne.jp
.tomo.lint.ne.jp

"rcpthost"の作成

セキュリティ上、メールの受信を受理するドメインを列挙します。

localhostを除いて、"locals"の内容はすべてここに書くのが普通です。

tomo.lint.ne.jp
.tomo.lint.ne.jp

"defaultdomain"の作成

送信者名のドメイン部に、"."がないとき、自動的に付加されるドメイン名を記述します。

tomo.lint.ne.jp

"plusdomain"の作成

あて先のドメインが、"+"で終わっているとき付加するドメイン名を記述します。

tomo.lint.ne.jp


起動テストする

起動用スクリプトをコピーする

# cp /var/qmail/boot/home /var/qmail/rc

psコマンドで確認する

# ps ax
   :
9292 pts/0 S 0:00 qmail-send
9293 pts/0 S 0:00 splogger qmail
9294 pts/0 S 0:00 qmail-lspawn ./Mailbox
9295 pts/0 S 0:00 qmail-rspawn
9296 pts/0 S 0:00 qmail-clean
   :
#

上記5つのプロセスができておればOKです。


qmailの仮起動

# /var/qmail/rc &


メール送信テスト

以下のコマンドで、メールクライアントソフトを起動します。

# /var/qmail/bin/qmail-inject

起動すると、入力待ちになるので、以下を打ち込みます。
"tomo"は、ユーザー名。

To: tomo
Subject: test

test

入力が終わると、<Ctrl>+"d" で、終了&送信を実行します。

受信の確認

ユーザー名、"tomo"のホームディレクトリに、"Mailbox"というファイル名ができていています。
"Mailbox"の内容がメールのないようです。

ログの確認

メール送信の実行の様子は、"/var/log/maillog" に記録されています。

別の端末で、以下のコマンドを実行すると、メール処理の様子を確認できます。

# tail -f /var/log/maillog
Jun 22 10:53:35 rh73-93-mail qmail: 1024710815.487335 new msg 852957
Jun 22 10:53:35 rh73-93-mail qmail: 1024710815.488931 info msg 852957: bytes 271 from <tomo@rh73-93-mail.tomo.lint.ne.jp> qp 9401 uid 0
Jun 22 10:53:35 rh73-93-mail qmail: 1024710815.520320 starting delivery 2: msg 8 52957 to local tomo@rh73-93-mail.tomo.lint.ne.jp
Jun 22 10:53:35 rh73-93-mail qmail: 1024710815.520565 status: local 1/10 remote 0/20
Jun 22 10:53:35 rh73-93-mail qmail: 1024710815.582827 delivery 2: success: did_1+0+0/
Jun 22 10:53:35 rh73-93-mail qmail: 1024710815.583097 status: local 0/10 remote 0/20
Jun 22 10:53:35 rh73-93-mail qmail: 1024710815.583140 end msg 852957


qmailの停止

# kill 9292

"9292"は、qmailのプロセスIDです。


 qmailを正式起動するための設定

semdmailコマンドを入れ替えます

以下の手順で入れ替えます。

# cd /usr/sbin
# mv sendmail sendmail.org
# ln -s /var/qmail/bin/datemail sendmail


アドレス アイリアス を定義します

# cd /var/qmail/alias
# echo root@tomo.lint.ne.jp > .qmail-postmaster
# echo root@tomo.lint.ne.jp > .qmail-mailer-daemon
# echo root@tomo.lint.ne.jp > .qmail-root
# chmod 644 .qmail*

"root@tomo.lint.ne.jp"は、システム関連のエラーメールを受け取る人(管理者)のメールアドレスを書きます。


 qmail-smtpの起動と確認

smtpをテスト起動する

# /usr/local/bin/tcpserver -HR -u 501 -g 502 0 smtp /var/qmail/bin/qmail-smtpd &


smtpの接続をテストする

別のWindowsPCから、telnet(smtpのポート指定)をして応答があればOKです。

C:\Documents and Settings\tomo.AXP1900> telnet 192.168.0.93 smtp

220 rh73-93-mail.tomo.lint.ne.jp ESMTP
QUIT
221 rh73-93-mail.tomo.lint.ne.jp


ホストとの接続が切断されました。

C:\Documents and Settings\tomo.AXP1900>

smtpがうまく起動していない場合は、以下のようになります。

C:\Documents and Settings\tomo.AXP1900> telnet 192.168.0.93 smtp
接続中: 192.168.0.93...ホストへ接続できませんでした。 ポート番号 25.
対象のコンピュータによって拒否されたため、接続できませんでした。


C:\Documents and Settings\tomo.AXP1900>


smtpを停止する

# kill 10023

"10023"は、smtpのプロセスIDです。


tcpserverでリレーの設定をする

"/etc/tcp.smtp"を作成します。

利用を許可するアドレスを書きます。

192.168.0.:allow,RELAYCLIENT=""
127.:allow,RELAYCLIENT=""

以下のコマンドで、"/etc/tcp.smtp.cdb" を作成します。

# /usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp


smtpを起動する

以下のコマンドで正式起動します

# nohup /usr/local/bin/tcpserver -vHR -x /etc/tcp.smtp.cdb -u 501 -g 502 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd &

 daemonで起動させる

daemontoolsのインストール

daemontoolsで起動させるために、「daemontoolsを起動する」を参照してインストールしてください。


管理ディレクトリを作成する

以下のコマンドで、管理ディレクトリを作成します。

# mkdir -p /var/qmail/svc/qmail-send/log 


qmail-sendの起動用スクリプトを作成する

# cd /var/qmail/svc/qmail-send

以下のスクリプトファイルを作成し、"run"のファイル名で保存します。

#!/bin/sh
exec /var/qmail/bin/qmail-start ./Maildir/

終了保存後、実行権を付加します。

# chmod +x run


qmail-sendのログ取得用スクリプトを作成する

# cd /var/qmail/svc/qmail-send/log

以下のスクリプトファイルを作成し、"run"のファイル名で保存します。

#!/bin/sh
exec /usr/local/bin/setuidgid qmaill \
/usr/local/bin/multilog t s1000000 /var/log/qmail-send

終了保存後、実行権を付加します。

# chmod +x run

qmail- smtpの起動用スクリプトを作成する

以下のコマンドで、管理ディレクトリを作成します。

# mkdir -p /var/qmail/svc/qmail-smtp
# cd /var/qmail/svc/qmail-smtp

以下のスクリプトファイルを作成し、"run"のファイル名で保存します。

#!/bin/sh
exec /usr/local/bin/tcpserver -v -x /etc/tcp.smtp.cdb -u 502 -g 502 0 smtp \
/var/qmail/bin/qmail-smtpd

終了保存後、実行権を付加します。

# chmod +x run


qmail- smtpのログ取得用スクリプトを作成する

以下のコマンドで、ログディレクトリを作成します。

# mkdir -p /var/log/qmail-smtp
# chown qmaill:nofiles /var/log/qmail-smtp
# chmod 700 /var/log/qmail-smtp 

 

# mkdir -p /var/qmail/svc/qmail-smtp/log
# cd /var/qmail/svc/qmail-smtp/log

以下のスクリプトファイルを作成し、"run"のファイル名で保存します。

#!/bin/sh
exec /usr/local/bin/setuidgid qmaill \
/usr/local/bin/multilog t s1000000 /var/log/qmail-smtp

終了保存後、実行権を付加します。

# chmod +x run

自動起動させる

daemontoolsでは、"/service"に、"run"スクリプトがあるディレクトリに、ロジカルリンクを張れば、自動的に"run"を実行します。

# ln -s /var/qmail/svc/qmail-send /service
# ln -s /var/qmail/svc/qmail-smtp /service

To previous pageTo home pageMailing to meJump to Top of pagetomo.gif (1144 ツバツイツト)