vpopmailのインストール

前回のqmailのインストールから初期設定の続きになります。qmailがすでにインストールされていることが条件となります。

1.vpopmailインストール準備

※Postfixからの乗り換えの場合、vpopmailで使用するid89をpostfixユーザに割当てられているため、Postfix削除及び、postfixユーザ削除を先に行って下さい。

postfixもsedmailもインストールされていない場合はpostfixやsendmailの削除、ユーザーの削除も不要です。

[html]
[root@ns ~]# yum -y remove postfix ← Postfix削除

[root@ns ~]# userdel postfix ← postfixユーザ削除

[root@ns ~]# groupadd -g 89 vchkpw ← vchkpwグループ作成

[root@ns ~]# useradd -g vchkpw -u 89 vpopmail -s /sbin/nologin -m -k /dev/null ← vpopmailユーザ作成
[/html]

2.vpopmailインストール

[html]
[root@ns ~]# wget http://sourceforge.net/projects/vpopmail/files/vpopmail-devel/5.4.33/vpopmail-5.4.33.tar.gz ← vpopmailダウンロード

[root@ns ~]# tar zxvf vpopmail33-5.4..tar.gz ← vpopmail展開

[root@ns ~]# cd vpopmail33-5.4. ← vpopmail展開先ディレクトリへ移動

[root@ns vpopmail33-5.4.]# ./configure --disable-clear-passwd ← configure
※メールユーザパスワードを平文で保存しないようにする設定を追加

[root@ns vpopmail33-5.4.]# make && make install-strip ← vpopmailインストール

[root@ns vpopmail33-5.4.]# cd ← vpopmail展開先ディレクトリを抜ける

[root@ns ~]# rm -rf vpopmail33-5.4. ← vpopmail展開先ディレクトリ削除

[root@ns ~]# rm -f vpopmail33-5.4..tar.gz ← ダウンロードしたvpopmail削除

[/html]

※メールサーバーでウィルス&スパムチェック導入している場合のみ、以下の設定をしてください。

[html]
[root@ns vpopmail33-5.4.]# vi vpopmail.c ← vpopmail.c編集(ユーザ追加時に自動でスパムメール用メールボックスが作成されるようにする)
※メールサーバーでウィルス&スパムチェック導入している場合のみ
const char *dirnames[] = {"Maildir", "Maildir/new", "Maildir/cur",
"Maildir/tmp"};
↓変更
const char *dirnames[] = {"Maildir", "Maildir/new", "Maildir/cur", "Maildir/tmp",
"Maildir/.Spam", "Maildir/.Spam/new", "Maildir/.Spam/cur", "Maildir/.Spam/tmp"};
[/html]

3.vpopmail設定

[html]
[root@ns ~]# cp /etc/tcp.smtp* /home/vpopmail/etc ← /etc/tcp.smtpと/etc/tcp.smtp.cdbをvpopmail環境へ移行

[root@ns ~]# vi /home/vpopmail/etc/vlimits.default ← デフォルト制限設定ファイル編集
# default quota for newly created users (in bytes)
# example shows a user with a 10MB quota and a limit of 1000 messages
#default_quota 10485760
#default_maxmsgcount 1000
default_quota ←コメントを外す。デフォルトのメールボックスの容量は10MBになります。
※上記を指定しない場合は無制限となる
[/html]

4.qmailのvpopmail対応

起動スクリプトをvpopmailに対応させます。

[html]
[root@ns ~]# vi /etc/rc.d/init.d/qmail ← qmail起動スクリプト編集
start() {
# Start daemons.
if [ -z $(/sbin/pidof qmail-send) ] ; then
echo -n "Starting qmail"

# qmail
csh -cf '/var/qmail/rc &' 2>&1 > /dev/null

# SMTP
tcpserver -qv -l0 -HR -u `id -u qmaild` -g `id -g qmaild` \
-x /etc/tcp.smtp.cdb 0 smtp \
qmail-smtpd `hostname` /bin/checkpassword /bin/true 2>&1|\
splogger smtp &
↓変更
# SMTP
tcpserver -qv -l0 -HR -u `id -u vpopmail` -g `id -g vpopmail` \
-x /home/vpopmail/etc/tcp.smtp.cdb 0 smtp \
qmail-smtpd `hostname` /home/vpopmail/bin/vchkpw /bin/true 2>&1|\
splogger smtp &

RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/qmail
return $RETVAL
else
echo "qmail is already started"
fi
}

[root@ns ~]# /etc/init.d/qmail restart ← qmail再起動
Shutting down qmail
Starting qmail
[/html]

5.qmail-pop3dのvpopmail対応(受信メールサーバーをPOPにする場合)

僕はpop3で受信しているのでこの設定にしたいと思います。

[html]
[root@ns ~]# vi /etc/rc.d/init.d/qmail ← qmail起動スクリプト編集
start() {
# Start daemons.
if [ -z $(/sbin/pidof qmail-send) ] ; then
echo -n "Starting qmail"

# qmail
csh -cf '/var/qmail/rc &' 2>&1 > /dev/null

# SMTP
tcpserver -qv -l0 -HR -u `id -u vpopmail` -g `id -g vpopmail` \
-x /home/vpopmail/etc/tcp.smtp.cdb 0 smtp \
qmail-smtpd `hostname` /home/vpopmail/bin/vchkpw /bin/true 2>&1|\
splogger smtp &

# POP3
tcpserver -qvRH -u `id -u qmaild` -g `id -g qmaild` \
0 pop3 qmail-popup `hostname` /bin/checkpassword \
qmail-pop3d Maildir 2>&1 | splogger pop3 &
↓変更
# POP3
tcpserver -qvRH -u `id -u vpopmail` -g `id -g vpopmail` \
0 pop3 qmail-popup `hostname` /home/vpopmail/bin/vchkpw \
qmail-pop3d Maildir 2>&1 | splogger pop3 &

RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/qmail
return $RETVAL
else
echo "qmail is already started"
fi
}

[root@ns ~]# /etc/rc.d/init.d/qmail restart ← qmail再起動
Shutting down qmail
Starting qmail
[/html]

6.メインドメイン移行

メインドメイン環境をvpopmail配下へ移行します。

[html]
[root@ns ~]# /home/vpopmail/bin/vadddomain `hostname -d` ← メインドメイン追加
Please enter password for postmaster: ← postmaster@ドメイン名のパスワード応答※パスワードは表示されない
enter password again: ← postmaster@wドメイン名のパスワード応答(確認)※パスワードは表示されない
NOTICE: Out of order entries found in /var/qmail/control/rcpthosts
Sorting...

[root@ns ~]# vi /home/vpopmail/domains/`hostname -d`/.qmail-default ← メインドメインの.qmail-default編集
#| /home/vpopmail/bin/vdelivermail '' bounce-no-mailbox
| /var/qmail/bin/fastforward -p -d /etc/aliases.cdb ← 追加(/etc/aliasesを有効にする)
| /var/qmail/bin/dot-forward `/home/vpopmail/bin/vuserinfo -d $EXT@$HOST`/.forward ← 追加(.forwardを有効にする)
| /home/vpopmail/bin/vdelivermail '' delete ← 変更(宛先不明メールは送信元へ通知せずに捨てる)※
[/html]

7.システムアカウント移行

システムアカウントをvpopmail配下のメインドメインへ移行する。

[html]
※パスワードをもっているシステムアカウントのみvpopmail配下に移行される

[root@ns ~]# /home/vpopmail/bin/vuserinfo -n -D `hostname -d` ← 移行されたユーザの確認
user1



userx
[/html]

8.メールデータ移行

システムアカウントのメールデータ(~/Maildir/,~/.forward,~/.qmail)をvpopmail配下のメインドメイン内該当ユーザのホームディレクトリへ移行する

[html]
[root@ns ~]# vi migrate-maildir ← メールデータ移行スクリプト作成
#!/bin/bash

DOMAIN=`hostname -d`

migrate()
{
user=$1
if [ $user = "root" ]; then
home="/root"
else
home="/home/$user"
fi

if [ -d $home/Maildir ] && [ -d /home/vpopmail/domains/$DOMAIN/$user/Maildir ]; then
/bin/cp -r $home/Maildir \
/home/vpopmail/domains/$DOMAIN/$user
[ -f $home/.forward ] && /bin/cp -r $home/.forward \
/home/vpopmail/domains/$DOMAIN/$user
[ -f $home/.qmail ] && /bin/cp -r $home/.qmail \
/home/vpopmail/domains/$DOMAIN/$user
chown -R vpopmail. /home/vpopmail/domains/$DOMAIN/$user
echo $user
fi
}

# メールデータ移行(一般ユーザ)
for user in `ls /home/`;
do
migrate $user
done

# メールデータ移行(rootユーザ)
migrate root

[root@ns ~]# sh migrate-maildir ← メールデータ移行スクリプト実行
user1



userx

[root@ns ~]# rm -f migrate-maildir ← メールデータ移行スクリプト削除
[/html]

バーチャルドメインの追加はここでは触れておりません。

この記事に関する技術サポート・ご相談

「手順通りにいかない」「自社環境への構築を代行してほしい」など、
インフラ・サーバー周りでハマった際はお気軽にご相談ください。

相談・問い合わせフォームを開く

※ Googleフォームへ移動します(初回相談無料)

個人支援・寄付について

サイトラボでは個人支援・寄付を受けております。ご協力いただける方はお願いいたします。当サイトではビットコインで受け付けております。

  • ビットコイン:3LHnADwZwUbic2L45EnVJEykiG6KfbqrwS