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インストール
[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設定
[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に対応させます。
[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で受信しているのでこの設定にしたいと思います。
[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配下へ移行します。
[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配下のメインドメインへ移行する。
※パスワードをもっているシステムアカウントのみvpopmail配下に移行される
[root@ns ~]# /home/vpopmail/bin/vuserinfo -n -D `hostname -d` ← 移行されたユーザの確認
user1
・
・
・
userx
[/html]
8.メールデータ移行
システムアカウントのメールデータ(~/Maildir/,~/.forward,~/.qmail)をvpopmail配下のメインドメイン内該当ユーザのホームディレクトリへ移行する
[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