ソースの入手
以下のURLからソースを入手してください。
http://sourceforge.net/projects/qmailadmin/
今回はvpopmail5.4.0.tar.gzをダウンロードしました。
http://ovh.dl.sourceforge.net/sourceforge/vpopmail/vpopmail-5.4.0.tar.gz
インストール
ここではvpopmail5.4.0.tar.gzをダウンロードしたものとして説明します。
ここでは、POP Before SMTP,APOP対応をしたインストール方法を解説しています。
(1) vpopmailを操作する専用ユーザの作成
グループ名 vchkpw , ユーザ名 vpopmail で作成します。FreeBSDの場合はvpopmailのユーザIDは89が予約されているようなので89があいていれば89を利用しましょう。
# groupadd -g 89 vchkpw
# useradd -u 89 -g 89 -d /home/vpopmail -m -s/bin/bash vpopmail
(2) リレー許可DBの作成
Ver 5.2.1のときはリレーのDBの作成が無くてもインストールができましたが5.4.0ではインストール時、怒られてしまうので必要なディレクトリ、ファイルを作成します。
# chmod 755 /home/vpopmail/
# mkdir /home/vpopmail/etc
# cd /home/vpopmail/etc
# echo '127.:allow,RELAYCLIENT=""' > tcp.smtp <-リレー許可として127.を追加
# tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp <-cdbの作成
# chown -R 89:89 /home/vpopmail/etc
(3) コンパイル・インストール
では、コンパイル・インストールを始めましょう。
$ tar xvfz vpopmail-5.4.0.tar.gz
$ cd vpopmail-5.4.0
$ su
# ./configure --enable-roaming-users=y \
--enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp \
--enable-relay-clear-minutes=30 --enable-qmail-ext=n
# make
# make install-strip
コンパイルオプション
--enable-roaming-users=(y|n) | POP Before SMTPを有効にするかの指定 |
--enable-tcpserver-file=PATH | POP Before SMTPを有効にするときに追加するcdbファイルの指定 |
--enable-relay-clear-minutes=minutes | POP Before SMTPを有効にする際に許可する時間(分)の指定 |
--enable-qmail-ext=(y|n) | 拡張アドレスの利用の有無。追加するユーザに-ハイフンがある場合は指定は無効(n)にすることをおすすめします
|
(4) デフォルトドメインの指定
バーチャルドメインを利用する為に、メインとして利用するドメインを入力します。ここで指定したドメインはPOPするアカウントがメールアドレスの@前のものになります。それ以外のドメインはメールアドレス形式でのPOPとなります。
/home/vpopmail/etc/defaultdomain ファイルにデフォルトドメインを記入します。
# echo 'example.com' > /home/vpopmail/etc/defaultdomain
vpopmailの起動
バーチャルドメインを認識させるために現在動作しているqmailのPOP,SMTPの起動方法の変更が必要です。
(1) POPサーバ
変更箇所はPOPプログラムを /home/vpopmail/bin/vchkpw に変更します。
# /usr/local/bin/tcpserver -v -R -H 0 pop3 \
/var/qmail/bin/qmail-popup hoge.example.com \
/home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1 \
| /var/qmail/bin/splogger pop3d 3 &
(2) SMTPサーバ
変更箇所はtcpserverが参照するcdbファイル(POP before SMTP有効の際に指定したもの)が変更箇所となります。
# /usr/local/bin/tcpserver -v -x /home/vpopmail/etc/tcp.smtp.cdb \
-R -H -u 71 -g 70 0 smtp /var/qmail/bin/qmail-smtpd 2>&1
| /var/qmail/bin/splogger smtp 3 &
また、POP before SMTPを有効にした場合、定期的にデータベース削除のスクリプトを起動する必要があります。cronなどで設定したPOP before SMTPの時間以内の時間で起動するように設定しましょう。
*/15 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null
起動スクリプトの作成
(1) daemontoolsで起動
daemontoolsで利用するスクリプトです。daemontoolsの利用方法は daemontoolsからサービス起動方法 を参照ください。
POPサーバ
#!/bin/sh
exec env - PATH="/var/qmail/bin:/usr/local/bin:/bin:/usr/bin" \
envdir /etc/relay-ctrl relay-ctrl-chdir \
tcpserver -v -R -H 0 pop3 qmail-popup \
`/bin/cat /var/qmail/control/me` /home/vpopmail/bin/vchkpw \
relay-ctrl-allow qmail-pop3d Maildir 2>&1
SMTPサーバ
#!/bin/sh
exec env - PATH="/var/qmail/bin:/usr/local/bin:/bin:/usr/bin" \
envdir /etc/relay-ctrl relay-ctrl-chdir \
tcpserver -v -x /home/vpopmail/etc/tcp.smtp.cdb -R -H \
-u `/usr/bin/id -u qmaild` -g `/usr/bin/id -g qmaild` \
0 smtp qmail-smtpd 2>&1
(2) init.d制御
通常よく利用される /etc/rc.d/init.d/qmail も用意しました。よかったら利用してください。
#!/bin/sh
# chkconfig: 345 85 15
# description: Dynamic Relay Authorization Control
# processname: qmail
#
# qmail: /var/qmail
PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin
[ -f /var/qmail/rc ] || exit 0
case "$1" in
start)
# Start daemons.
echo "Starting qmail."
# qmail
csh -cf '/var/qmail/rc &'
# POP3 by vpopmail
envdir /etc/relay-ctrl relay-ctrl-chdir \
tcpserver -v -R -H 0 pop3 qmail-popup \
`/bin/cat /var/qmail/control/me` /home/vpopmail/bin/vchkpw \
relay-ctrl-allow qmail-pop3d Maildir 2>&1 \
| splogger pop3d 3 &
# SMTP
envdir /etc/relay-ctrl relay-ctrl-chdir \
tcpserver -v -x /home/vpopmail/etc/tcp.smtp.cdb -R -H \
-u `/usr/bin/id -u qmaild` -g `/usr/bin/id -g qmaild` \
0 smtp qmail-smtpd 2>&1 \
| splogger smtp 3 &
echo
touch /var/lock/subsys/qmail
;;
stop)
# Stop daemons.
echo "Shutting down qmail."
kill $(/sbin/pidof tcpserver)
kill $(/sbin/pidof qmail-send)
echo
rm -f /var/lock/subsys/qmail
;;
*)
echo "Usage: S99qmail {start|stop}"
exit 1
esac
exit 0
メールアドレスの設定・運用
(1) ドメインの追加
ドメイン追加は、付属のツールで追加をします。管理者であるpostmasterが作成されます。
【書式】
# vadddomain 追加したいドメイン
# cd /home/vpopmail/bin/
# vadddomain example.com
Please enter password for example.com: <-postmasterのパスワード
enter password again: <-postmasterのパスワード再入力
作成が完了すると/home/vpopmail/domains/以下にドメインのディレクトリが生成されます。
その中にユーザを管理することになります。
(2)アドレスの追加
こちらも付属の追加ツールを利用します。セキュリティのため、vpopmailユーザにスイッチして実行することが推奨されています。
【書式】
# vadduser 追加したいメールアドレス
# cd /home/vpopmail/bin/
# su vpopmail
# ./vadduser hoge@example.com
Please enter password for hoge@example.com: <-POPパスワード
enter password again: <-パスワード再入力
/home/vpopmail/domains/ドメイン名/以下に作成したユーザのディレクトリとMaildirのディレクトリが作成されています。ここにメールが配送されるようになります。
これでメールアドレスの作成は完了です。
POPアカウントはバーチャルドメイン使用にしましたのでメールアドレス形式でPOPする必要があります。
メールアドレス | hoge@example.com |
POPアカウント | hoge@example.com |
/home/vpopmail/etc/defaultdomainに指定したドメインであれば hoge のみでPOPできます。このデフォルトドメインはもちろん1ドメインでの利用しかできませんので慎重にきめましょう。
また、これだけの設定ですでにPOP before SMTP も APOP も対応しているんです。
今までの設定がvpopmailを使うようにすると本当に楽になりますね。