vpopmailのインストール

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

1.vpopmailインストール準備

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

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

1[root@ns ~]# yum -y remove postfix ← Postfix削除
2 
3[root@ns ~]# userdel postfix ← postfixユーザ削除
4 
5[root@ns ~]# groupadd -g 89 vchkpw ← vchkpwグループ作成
6 
7[root@ns ~]# useradd -g vchkpw -u 89 vpopmail -s /sbin/nologin -m -k /dev/null ← vpopmailユーザ作成

2.vpopmailインストール

01[root@ns ~]# wget http://sourceforge.net/projects/vpopmail/files/vpopmail-devel/5.4.33/vpopmail-5.4.33.tar.gz ← vpopmailダウンロード
02 
03[root@ns ~]# tar zxvf vpopmail33-5.4..tar.gz ← vpopmail展開
04 
05[root@ns ~]# cd vpopmail33-5.4. ← vpopmail展開先ディレクトリへ移動
06 
07[root@ns vpopmail33-5.4.]# ./configure --disable-clear-passwd ← configure
08※メールユーザパスワードを平文で保存しないようにする設定を追加
09 
10[root@ns vpopmail33-5.4.]# make && make install-strip ← vpopmailインストール
11 
12[root@ns vpopmail33-5.4.]# cd ← vpopmail展開先ディレクトリを抜ける
13 
14[root@ns ~]# rm -rf vpopmail33-5.4. ← vpopmail展開先ディレクトリ削除
15 
16[root@ns ~]# rm -f vpopmail33-5.4..tar.gz ← ダウンロードしたvpopmail削除

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

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

3.vpopmail設定

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

4.qmailのvpopmail対応

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

01[root@ns ~]# vi /etc/rc.d/init.d/qmail ← qmail起動スクリプト編集
02start() {
03    # Start daemons.
04    if [ -z $(/sbin/pidof qmail-send) ] ;  then
05        echo -n "Starting qmail"
06 
07        # qmail
08        csh -cf '/var/qmail/rc &' 2>&1 > /dev/null
09 
10        # SMTP
11        tcpserver -qv -l0 -HR -u `id -u qmaild` -g `id -g qmaild` \
12        -x /etc/tcp.smtp.cdb 0 smtp \
13        qmail-smtpd `hostname` /bin/checkpassword /bin/true 2>&1|\
14        splogger smtp &
15        ↓変更
16        # SMTP
17        tcpserver -qv -l0 -HR -u `id -u vpopmail` -g `id -g vpopmail` \
18        -x /home/vpopmail/etc/tcp.smtp.cdb 0 smtp \
19        qmail-smtpd `hostname` /home/vpopmail/bin/vchkpw /bin/true 2>&1|\
20        splogger smtp &
21 
22        RETVAL=$?
23        echo
24        [ $RETVAL = 0 ] && touch /var/lock/subsys/qmail
25        return $RETVAL
26    else
27        echo "qmail is already started"
28    fi
29}
30 
31[root@ns ~]# /etc/init.d/qmail restart ← qmail再起動
32Shutting down qmail
33Starting qmail

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

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

01[root@ns ~]# vi /etc/rc.d/init.d/qmail ← qmail起動スクリプト編集
02start() {
03    # Start daemons.
04    if [ -z $(/sbin/pidof qmail-send) ] ;  then
05        echo -n "Starting qmail"
06 
07        # qmail
08        csh -cf '/var/qmail/rc &' 2>&1 > /dev/null
09 
10        # SMTP
11        tcpserver -qv -l0 -HR -u `id -u vpopmail` -g `id -g vpopmail` \
12        -x /home/vpopmail/etc/tcp.smtp.cdb 0 smtp \
13        qmail-smtpd `hostname` /home/vpopmail/bin/vchkpw /bin/true 2>&1|\
14        splogger smtp &
15 
16        # POP3
17        tcpserver -qvRH -u `id -u qmaild` -g `id -g qmaild` \
18        0 pop3 qmail-popup `hostname` /bin/checkpassword \
19        qmail-pop3d Maildir 2>&1 | splogger pop3 &
20        ↓変更
21        # POP3
22        tcpserver -qvRH -u `id -u vpopmail` -g `id -g vpopmail` \
23        0 pop3 qmail-popup `hostname` /home/vpopmail/bin/vchkpw \
24        qmail-pop3d Maildir 2>&1 | splogger pop3 &
25 
26        RETVAL=$?
27        echo
28        [ $RETVAL = 0 ] && touch /var/lock/subsys/qmail
29        return $RETVAL
30    else
31        echo "qmail is already started"
32    fi
33}
34 
35[root@ns ~]# /etc/rc.d/init.d/qmail restart ← qmail再起動
36Shutting down qmail
37Starting qmail

6.メインドメイン移行

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

01[root@ns ~]# /home/vpopmail/bin/vadddomain `hostname -d` ← メインドメイン追加
02Please enter password for postmaster:  ← postmaster@ドメイン名のパスワード応答※パスワードは表示されない
03enter password again:  ← postmaster@wドメイン名のパスワード応答(確認)※パスワードは表示されない
04NOTICE: Out of order entries found in /var/qmail/control/rcpthosts
05   Sorting...
06 
07[root@ns ~]# vi /home/vpopmail/domains/`hostname -d`/.qmail-default ← メインドメインの.qmail-default編集
08#| /home/vpopmail/bin/vdelivermail '' bounce-no-mailbox
09| /var/qmail/bin/fastforward -p -d /etc/aliases.cdb ← 追加(/etc/aliasesを有効にする)
10| /var/qmail/bin/dot-forward `/home/vpopmail/bin/vuserinfo -d $EXT@$HOST`/.forward ← 追加(.forwardを有効にする)
11| /home/vpopmail/bin/vdelivermail '' delete ← 変更(宛先不明メールは送信元へ通知せずに捨てる)※

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

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

1※パスワードをもっているシステムアカウントのみvpopmail配下に移行される
2 
3[root@ns ~]# /home/vpopmail/bin/vuserinfo -n -D `hostname -d` ← 移行されたユーザの確認
4user1
5
6
7
8userx

8.メールデータ移行

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

01[root@ns ~]# vi migrate-maildir ← メールデータ移行スクリプト作成
02#!/bin/bash
03 
04DOMAIN=`hostname -d`
05 
06migrate()
07{
08    user=$1
09    if [ $user = "root" ]; then
10        home="/root"
11    else
12        home="/home/$user"
13    fi
14 
15    if [ -d $home/Maildir ] && [ -d /home/vpopmail/domains/$DOMAIN/$user/Maildir ]; then
16        /bin/cp -r $home/Maildir \
17        /home/vpopmail/domains/$DOMAIN/$user
18        [ -f $home/.forward ] && /bin/cp -r $home/.forward \
19        /home/vpopmail/domains/$DOMAIN/$user
20        [ -f $home/.qmail ] && /bin/cp -r $home/.qmail \
21        /home/vpopmail/domains/$DOMAIN/$user
22        chown -R vpopmail. /home/vpopmail/domains/$DOMAIN/$user
23        echo $user
24    fi
25}
26 
27# メールデータ移行(一般ユーザ)
28for user in `ls /home/`;
29do
30    migrate $user
31done
32 
33# メールデータ移行(rootユーザ)
34migrate root
35 
36[root@ns ~]# sh migrate-maildir ← メールデータ移行スクリプト実行
37user1
38
39
40
41userx
42 
43[root@ns ~]# rm -f migrate-maildir ← メールデータ移行スクリプト削除

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

個人支援・寄付について

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

  • ビットコイン:3LHnADwZwUbic2L45EnVJEykiG6KfbqrwS