Postfix
ここでは、postfixのブラウザユーザー管理ツールPostfixadminを利用する構成であるPostfix,MySQLの連動の構築方法を記載いたします。
ユーザーの作成
postfixをインストールする際には必ずpostfixユーザーとpostdropグループが必要になります。
postfixはpostdropと同じグループにしてはいけません。
その為、postfixとpostdropというグループを作成し、postfixユーザーをpostfixグループに所属させるとよいでしょう。
groupadd -g 500 postfix
groupadd -g 501 postdrop
useradd -u 500 -g 500 postfix
インストール
tar xvfz postfix-2.4.5.tar.gz
cd postfix-2.4.5
make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql/' \
'AUXLIBS=-L/usr/local/mysql/lib/mysql/ -lmysqlclient -lz -lm'
make
make install
途中で問い合わせがいくつか出てきますが、すべてEnterで進んでください。
PostfixのMySQL対応確認
Postfixが正しくMySQL対応になっているかを確認します。
postconf -m
上記コマンドで mysql があれば対応しています。
各種設定
/etc/postfix/main.cf の編集
myhostname = mail.qurataro.com
mydomain = qurataro.com
myorigin = $myhostname
inet_interfaces = all
mydestination =
local_transport = virtual
virtual_transport = virtual
virtual_mailbox_base = /home/vmail
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_alias_domains = $virtual_alias_maps
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 10000
virtual_uid_maps = static:10000
virtual_gid_maps = static:10000
mailbox_size_limit = 51200000
message_size_limit = 10240000
virtual_mailbox_limit = 51200000
virtual_mailbox_limit_maps = hash:/etc/postfix/vquota
virtual_mailbox_limit_override = yes
virtual_overquota_bounce = yes
virtual_mailbox_limit_inbox = yes
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
home_mailbox = Maildir/
mydestination を空にしておく意味はバーチャル設定に引き継がせるためです。
/etc/postfix/mysql_virtual_alias_maps.cf の作成
user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s'
/etc/postfix/mysql_virtual_domains_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT description FROM domain WHERE domain='%s'
/etc/postfix/mysql_virtual_mailbox_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username='%s'
IMAPのインストール
デフォルトの configure では MySQL の対応になりません。その為、以下のオプションをつけまたインストールした MySQL のライブラリを参照する。
tar xvfz courier-imap-3.0.8
cd courier-imap-3.0.8
./configure --prefix=/usr/local/imap \
--with-authmysql \
--with-mysql-libs=/usr/local/mysql/lib/mysql \
--with-mysql-includes=/usr/local/mysql/include/mysql/ \
--with-redhat \
--disable-root-check
make WITH_MYSQL=yes
make install
make install-configure
/usr/local/imap/etc/authmysqlrcの編集
MYSQL_SERVER localhost
MYSQL_USERNAME postfix
MYSQL_PASSWORD postfix
MYSQL_SOCKET /var/lib/mysql/mysql.sock
MYSQL_DATABASE postfix
MYSQL_USER_TABLE mailbox
MYSQL_CRYPT_PWFIELD password
MYSQL_UID_FIELD '10000'
MYSQL_GID_FIELD '10000'
MYSQL_HOME_FIELD '/home/vmail'
MYSQL_MAILDIR_FIELD maildir
シングルクオートで囲まないとデータが正しく参照できない不具合があります。
|