メールサーバのMySQLとの連動

QmailとVpopmailをTcpServerで動作させるのに、MySQL等のデータベースを利用することもできる。今回はVpopmailをMySQL対応で動作させる方法を紹介する。  なおこの方法を使うと、QmailAdminというツールを利用すればメールサーバの設定がWebブラウザ上で簡単に行うことができる。ただしQmailAdminはCGIプログラムを利用しており、特にSuExecを使わないCGIで動作するために、ApacheにSuExecが組み込まれていると動作しない。QmailAdminでできることは当然コマンドラインでもできるため、QmailAdminは特に必要ないならインストールする必要はない。どうしてもインストールしたいのであればSuExecなしでApacheを再インストールするか、Apacheをポートを変えてもう1つ立ち上げる必要がある。マシンスペックに余裕があれば後者のほうを推奨する。

MySQLとの連動

1)MySQLと連動させるには、MySQL、Qmail、Tcpservをインストールしておく必要がある。その上で、VpopmailをMySQL対応にコンパイルする。前のページでVpopmailをインストールしてある場合は、作成したユーザやドメインを削除しなくてはいけない。その後110番ポートを停止し、安全のために、「/home/vpopmail」以下をアンインストール(削除)したほうがよい。

# /home/vpopmail/bin/vdeluser user@mydomain.ne.jp
# /home/vpopmail/bin/vdeldomain mydomain.ne.jp
# kill (プロセス番号)
# rm -rf /home/vpopmail

(注:ドメインを削除すれば、そのドメインに属するユーザはすべて削除されるので、実際はvdeluserを行う必要はない。なおvdeldomainやvdeluserコマンドを使うと、中にメールが残っている場合それらはすべて削除されてしまうので、充分確認してから上のコマンドを打つこと。)

2)VpopmailをMySQL対応にするには、MySQLの管理者パスワード等をヘッダファイルに記述した上でコンパイルを行うため、ソースファイルを変更する必要がある。

# cd /usr/local/src/vpopmail-5.2.1/
# vi vmysql.h
   #define MYSQL_UPDATE_SERVER "localhost"
   #define MYSQL_UPDATE_USER "root"
   #define MYSQL_UPDATE_PASSWD "password"
   #define MYSQL_READ_SERVER "localhost"
   #define MYSQL_READ_USER "root"
   #define MYSQL_READ_PASSWD "password"
# chmod 600 vmysql.h

(上の例では、ユーザ名root、パスワードはpasswordの場合の設定方法。)

3)コンパイルを行う。

# make clean
# env LIBS="-lz" ./configure --enable-mysql=y \
--enable-incdir=/usr/local/mysql/include/mysql \
--enable-sqlincdir=/usr/local/mysql/include/mysql \
--enable-libdir=/usr/local/mysql/lib/mysql \
--enable-sqllibdir=/usr/local/mysql/lib/mysql \
--enable-defaultquota=10485760 \
--enable-roaming-users=y \
--enable-default-domain=mail.mydomain.ne.jp \
--enable-relay-clear-minutes=30
# make
# make install

(※上記はメールサーバが「mail.mydomain.ne.jp」の場合。なお、デフォルトではメールアカウントの平文パスワードが「pw_clear_passwd」というフィールドに設定される。phpMyAdminなどで生のパスワードを他人に見られる可能性があるため、これを利用したくない場合は「--enable-clear-passwd=n」というオプションをつけることで回避できる。)

4)qmHandleをインストールする。インストール後は実行ファイルにパスを通しておく。

# mkdir /var/qmail/qmHandle
# cd /var/qmail/qmHandle/
# tar zxvf qmHandle-0.5.1.tar.gz
# ln -s /var/qmail/qmHandle/qmHandle /usr/local/bin/qmHandle

5)MySQLのライブラリディレクトリを参照させるため、設定ファイルを変更する。または環境変数LD_LIBRARY_PATHに追加してもよい。POPポートを起動させる。その後MySQLが起動していなければ起動し、以下のコマンドで起動させる。起動コマンドはMySQL非対応のときと同じで、遅い場合はオプション「-RH」をつけるとよい。

# vi /etc/ld.so.conf
   /usr/local/mysql/lib/mysql
# ldconfig
# tcpserver 0 110 /var/qmail/bin/qmail-popup mail.mydomain.ne.jp \
/home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &

6)ドメインとユーザを作成する。その後MySQLを実行し、データベースが正しくできていることを確認する。

# /home/vpopmail/bin/vadddomain mydomain.ne.jp
# /home/vpopmail/bin/vadduser user@mydomain.ne.jp
# mysql -u root -p
> USE vpopmail
> SHOW tables;
> select * from vpopmail;
> exit;

7)メールの送受信テストを行う。正常に受信できていれば完了。

# echo to:user@mydomain.ne.jp | /var/qmail/bin/qmail-inject
# telnet localhost 110
   USER user%mydomain.ne.jp
   PASS pass
   STAT
   LIST
   RETR 1
   DELE 1
   QUIT

QmailAdmin

1)Ezmlmをインストールする。

# cd /usr/local/src/
# tar zxvf ezmlm-0.53.tar.gz
# cd ezmlm-0.53/
# make
# make man
# make setup

2)AutoRespomderをインストールする。

# cd ../
# tar zxvf autorespond-2.0.2.tar.gz
# cd autorespond-2.0.2/
# make
# make install;

3)AutoResponderとEzmlmが正常にインストールできたら、QmailAdminのアーカイブを解凍する。

# cd ../
# tar zxvf qmailadmin-1.0.2.tar.gz
# cd qmailadmin-1.0.2/

4)QmailAdminをインストールする前に、Apacheの設定を行う。ここではQmailAdminを「http://localhost/~vpopmail/」でアクセスさせるようにしている。Apacheの設定ファイルで、public_html下のcgi-binディレクトリ内でCGIを利用可能にさせる設定を追加しておく。その後Vpopmailのホームディレクトリ内にWeb公開用のディレクトリを作成。

vi /usr/local/apache/conf/httpd.conf
   <Directory "/home/*/public_html/cgi-bin">
      Options +ExecCGI
      AllowOverride None
      Order allow,deny
      Allow from all
   </Directory>
      AddHandler cgi-script .cgi .pl
# mkdir /home/vpopmail/public_html
# mkdir /home/vpopmail/public_html/cgi-bin

5)QmailAdminをインストールする。

# ./configure --enable-htmldir=/home/vpopmail/public_html \
--enable-cgibindir=/home/vpopmail/public_html/cgi-bin \
--enable-cgipath=/cgi-bin/qmailadmin/
# make
# make install-strip

6)以下のURLにアクセスし、正常に機能していることを確認する。

http://localhost/~vpopmail/cgi-bin/qmailadmin/
TOP OF PAGE