SMTPの設定

 ”メールサーバーの仕組みについて”でも説明しましたが、SMTPサーバー の機能は”qmail”が行います。 このページでは、その”qmail”のインストールと設定について説明します。

≪ 項目 ≫
1.qmailに必要なもの
2.qmailのインストール
3.qmailの設定
4.DNSの設定

 1.qmailに必要なもの

 注意する点は、メールサーバーは単体では動作しません。DNSサーバーの設定が必要になります。(ドメインも取得した後にメールサーバーの構築をします。) DNSサーバーをレンタルしている場合は、DNSのゾーンデータベースの MXレコードの設定が必要なので、各自で設定の変更が可能か確認をしてください。 またはDDNSを使用している場合は、MXレコードに対応しているか確認すると良いでしょう。
 qmail を使ってメールサーバーを構築した際に、使用したプログラムを以下に掲載します。

プログラム名
(ファイル名)
説明 ダウンロード先
qmail-1.03.tar.gz qmail本体です。 http://djb.qmail.jp/package.html
qmail-date-localtime.patch qmailを日本時間にする為のパッチです。
(ソースが表示させるので、ソースをコピーして”qmail-date-localtime.patch”というファイル名で保存しましょう。)
http://ftp.nlc.net.au/pub/unix/mail/qmail/
qmail-date-localtime.patch
checkpassword-0.90.tar.gz POP認証で使用します。 http://cr.yp.to/checkpwd/install.html
ucspi-tcp-0.88.tar.gz tcpserver という qmail が推奨するアクセス制限プログラムです。(xinetdの代わり) http://cr.yp.to/ucspi-tcp/install.html
cdb-0.75.tar.gz 上のアクセス制限プログラムサポートするプログラム http://cr.yp.to/cdb/install.html
relay-ctrl-3.1.1.tar.gz POP before SMTPで使用します。 http://untroubled.org/relay-ctrl/
daemontools-0.76.tar.gz 上のプログラムを動作させるのに必要 http://cr.yp.to/daemontools/install.html
courier-imap-1.5.3.tar.gz 認証用プログラム(POP、IMAP) http://www.courier-mta.org/download.php#imap

以上が使用したプログラムです。
あとコンパイル用に”gcc”、”make”、”patch”と3つRPMSが必要なので、あらかじめインストールしておいてください。

 2.qmailのインストール

 ◆ 解凍

qmail のアーカイブを解凍する前に、まずはqmail用のディレクトリィを作成します。

[root@localhost /]# mkdir /var/qmail

ディレクトリィを作成したら、qmail の本体である”qmail-1.03.tar.gz”をコピーして解凍します。

[root@localhost /]# cp 〜 qmail本体のコピー元 〜/qmail-1.03.tar.gz /var/qmail
[root@localhost /]# cd /var/qmail
[root@localhost /var/qmail]# tar zxvf qmail-1.03.tar.gz

解凍が完了したら、”/var/qmail/qmail-1.03”というディレクトリィが作成されています。

 ◆ ユーザーの作成

qmail専用のユーザーとグループを作成します。qmail は、この専用のユーザーを使用して複数のプロセスを起動するため、ユーザー名は指定された名前で作成してください。
作成するユーザーとグループは以下の通りです。

グループ名ユーザー名ユーザーのホームディレクトリィ
nofilesalias/var/qmail/alias
qmaild/var/qmail
qmaill/var/qmail
qmailp/var/qmail
qmailqmailq/var/qmail
qmailr/var/qmail
qmails/var/qmail

tcpserver がユーザーIDを使用してプログラムを起動するので、あらかじめユーザーIDを指定して作成しておいた方が良いでしょう。他のユーザーと重複しなければOKです。 またこの qmail のユーザーは、実際にログインをして何らかの作業を行う事は無いので、仮想ユーザーにしておきます。以下の様にコマンド実行してユーザーを作成します。

[root@localhost /]# groupadd -g 800 nofiles
[root@localhost /]# useradd -M -u 800 -g nofiles -s /bin/false -d /var/qmail/alias alias
[root@localhost /]# useradd -M -u 801 -g nofiles -s /bin/false -d /var/qmail qmaild
[root@localhost /]# useradd -M -u 802 -g nofiles -s /bin/false -d /var/qmail qmaill
[root@localhost /]# useradd -M -u 803 -g nofiles -s /bin/false -d /var/qmail qmailp
[root@localhost /]# groupadd -g 801 qmail
[root@localhost /]# useradd -M -u 804 -g qmail -s /bin/false -d /var/qmail qmailq
[root@localhost /]# useradd -M -u 805 -g qmail -s /bin/false -d /var/qmail qmailr
[root@localhost /]# useradd -M -u 806 -g qmail -s /bin/false -d /var/qmail qmails

 ユーザーID、グループIDは”id”コマンドで確認できます。また”/etc/passwd”でも参照できますので、IDが重複しないようにユーザーを作成してください。

 ◆ パッチを当てる

 日付・時間の情報をローカルタイムに合わせるため、パッチを当てます。
 まずは、”/var/qmail/”の直下に”qmail-date-localtime.patch”をコピーしておきます。
その後に”/var/qmail/qmail-1.03”にカレントを移動して以下のコマンドを実行してください。

[root@localhost /var/qmail/qmail-1.03]# patch -p1 < ../qmail-date-localtime.patch

 ◆ qmailのコンパイルとインストール

 パッチを当てたら次はコンパイルとインストールを行います。以下のコマンドを実行してます。

[root@localhost /var/qmail/qmail-1.03]# make setup
[root@localhost /var/qmail/qmail-1.03]# make check


 3.qmailの設定

 ◆ 設定ファイル

 qmail のインストールが完了したら、”/var/qmail/control/”というディレクトリィが作成されています。その中にいくつか設定ファイルがあるので編集します。

 ● ”/var/qmail/control/locals”
 qmail-sendが利用します。受信するホスト名(FQDNも)とドメイン名を記述します。

localhost  <<--(1)
mail-server.lab-kage.plala.jp  <<--(2)
lab-kage.plala.jp  <<--(3)

 (1)、(2)でメールサーバーのホスト名を記述します。(3) で自ドメインのドメイン部分を記述します。

 ● ”/var/qmail/control/rcpthosts”
 qmail-smtpdが利用します。受信するホスト名(FQDNも)とドメイン名を記述します。

localhost
mail-server.lab-kage.plala.jp
lab-kage.plala.jp

 ● ”/var/qmail/control/defaultdomain”
toヘッダなどにドメイン名が省略された場合、補完されるドメイン名を指定します。

lab-kage.plala.jp

 ● ”/var/qmail/control/plusdomain”
ドメイン部が”+”で終わっている場合に付加されるドメインを指定します。

lab-kage.plala.jp

 ● ”/var/qmail/control/me”
自サーバーのFQDNを記述します。

mail-server.lab-kage.plala.jp


 ◆ エイリアスの設定

 postmaster、MAILER-DAEMON、root宛て(内容が障害や宛先不明などのメールです。)のメールを特定のメールアドレスで受信できるようにエイリアスの設定をします。
 まずは管理者用のメールユーザーを決定します。qmail ではLinuxのユーザーが、そのままメールユーザーになるので”useradd”でユーザーを作成します。(メールユーザーでしか使用しないのであれば、仮想ユーザーにしておきます。)
 ここでは管理者用のメールユーザーを”info”とします。

[root@localhost /]# useradd -s /bin/false info

 次に作成した管理者用のメールユーザーに対して、postmaster、MAILER-DAEMON、root宛てのメールが”info”に行くように、エイリアスを設定します。
”/var/qmail/alias”の直下で作業を行います。

[root@localhost /var/qmail/alias]# echo "info@lab-kage.plala.jp" > .qmail-postmaster
[root@localhost /var/qmail/alias]# echo "info@lab-kage.plala.jp" > .qmail-mailer-daemon
[root@localhost /var/qmail/alias]# echo "info@lab-kage.plala.jp" > .qmail-root
[root@localhost /var/qmail/alias]# chmod 644 .qmail-postmaster .qmail-mailer-daemon .qmail-root


 ◆ qmail起動スクリプトの設定

qmail の起動スクリプトは”/var/qmail/boot/home”というスクリプトですが、qmail は Maildir形式(各ユーザーのホームディレクトリに1つのメッセージを1ファイルとして保存する方法)を推奨しているため、そのまま使用しません。 まず、このスクリプトを”/var/qmail”の直下にコピーして修正をします。

[root@localhost /]# cp /var/qmail/boot/home /var/qmail/rc

 上記の例では”rc”としていますが、ファイル名は何でも構いません。

次にコピーしたスクリプトを以下の様に修正を加えます。

#!/bin/sh

〜 コメントのため省略 〜

exec env - PATH="/var/qnail/bin:$PATH" \
qmail-start ./Mailbox splogger qmail
         ↓
       ./Maildir/

  ”\”はLinuxではバックスラッシュになっています。

上の様に”./Mailbox”の部分を”./Maildir/”に修正します。最後の”/”は忘れずに付けてください。

 ◆ メールユーザーを Maildir形式にする。

 起動スクリプトでMaildir形式の設定が終わったら、各メールユーザーをMaildir形式に設定します。メールは各ユーザーのホームディレクトリィに配信されるので、Maildir形式にしておかないとメールが受け取れなくなるからです。
 既に作成してあるユーザーに対しては、以下のコマンドを実行してます。

 # su - << ユーザー >>
 # /var/qmail/bin/maildirmake ~/Maildir

 ”su”コマンドでユーザーを切り替えて各ユーザー毎行う必要があります。

 またユーザーを作成すると自動的ににMaildir形式を作成したい場合は以下の様にします。

[root@localhost /]# cd /etc/skel
[root@localhost /etc/skel]# /var/qmail/bin/maildirmake ./Maildir/


 ◆ メール配送の動作確認

 ここまで設定ができたら、qmailの動作確認をします。  メール配送スクリプトとして”qmail-inject”がありますので、それを実行して確認します。

[root@localhost /]# /var/qmail/bin/qmail-inject
to: info <<--(1)
Test Mail <<--(2)

(1)で送り先のユーザーを指定します。動作確認なので管理者用の”info”に送る例です。ここで注意する点は、ドメイン部は不要なので付けないでください。
(2)でメールの内容を記述します。内容が書き終えたら、[ Ctrl + D ]を押します。するとメールを送信してスクリプトが終了します。
実際に送られているかどうかの確認は、送り先のユーザーのMaildirの中にファイルが作成されているか確認します。


 4.DNSの設定

 最初にも記述しましたが、メールサーバーは単体では動作しません。DNSの設定が必要です。
 DNSの正引きゾーンデータベースに以下の様に追加します。(詳しくは”DNSの設定”を参照してください。)

 ; NSレコードとMXレコード部
  IN MX 10 mail-server.lab-kagekawa.plala.jp.<<--(MXレコードを追加)

 ; Aレコード部
  mail    IN A 222.150.153.aaa<<--(ホスト名とIPアドレスの確認)

以上の部分が追加または修正が終わったら、BINDを再起動してください。




先頭に戻る メールサーバーの設定に戻る TOPページに戻る