[CentOS6] Postfixによるメールサーバ構築 その4 (Dovecotの設定)

Dovecotのインストールと設定を行います。

yum install dovecot dovecot-mysql
yum install cyrus-sasl-plain cyrus-sasl-md5
cd /etc/dovecot/
vi dovecot.conf
----------------------------------------------------
dict {
#quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
#expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext
quotadict = mysql:/etc/dovecot/dovecot-dict-sql.conf
}
mail_plugins = quota
----------------------------------------------------
vi dovecot-dict-sql.conf
----------------------------------------------------
connect = dbname=postfix user=postfix host=/var/lib/mysql/mysql.sock password=skpMrLvw9fiX
map {
pattern = priv/quota/storage
table = quota2
username_field = username
value_field = bytes
}
map {
pattern = priv/quota/messages
table = quota2
username_field = username
value_field = messages
}
----------------------------------------------------
cd /etc/dovecot/conf.d
vi 20-imap.conf
----------------------------------------------------
mail_plugins = $mail_plugins imap_quota
----------------------------------------------------
vi 90-quota.conf
----------------------------------------------------
plugin {
#quota_rule = *:storage=1G
#quota_rule2 = Trash:storage=+100M
quota = dict:user::proxy::quotadict
quota_rule = *:storage=10M:messages=1000
quota_rule2 = Trash:storage=+100M
}
plugin {
quota_warning = storage=95%% quota-warning 95 %u
quota_warning2 = storage=80%% quota-warning 80 %u
}
----------------------------------------------------
vi 10-auth.conf
----------------------------------
#disable_plaintext_auth = yes
disable_plaintext_auth = no
#auth_mechanisms = plain
auth_mechanisms = plain login cram-md5
#!include auth-system.conf.ext
!include auth-sql.conf.ext
----------------------------------
vi 10-logging.conf
--------------------------------------------
#auth_verbose = no
auth_verbose = yes
--------------------------------------------
vi 10-mail.conf
--------------------------------------------
#mail_location =
mail_location = maildir:/mail/%d/%u
#first_valid_gid = 1
#last_valid_gid = 0
first_valid_uid = 10000
first_valid_gid = 10000
--------------------------------------------
vi 10-master.conf
--------------------------------------------
service lmtp {
unix_listener lmtp {
#mode = 0666
}
unix_listener /var/spool/postfix/private/dovecot-lmtp {
group = postfix
mode = 0600
user = postfix
}
}
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
}
unix_listener dict {
#mode = 0600
#user =
#group =
mode = 0600
user = vuser
group = vuser
}
--------------------------------------------
vi /etc/dovecot/dovecot-sql.conf.ext
--------------------------------------------
driver = mysql
default_pass_scheme = CRAM-MD5
connect = dbname=postfix user=postfix host=/var/lib/mysql/mysql.sock password=skpMrLvw9fiX
password_query = SELECT password, 10000 AS userdb_uid, 10000 AS userdb_gid, CONCAT('*:bytes=', CAST(mailbox.quota AS CHAR)) AS userdb_quota_rule FROM mailbox, domain WHERE username = '%u' AND mailbox.domain = domain.domain AND mailbox.active = '1' AND domain.active = '1'
user_query = SELECT concat('/mail/', maildir) AS home, 10000 AS uid, 10000 AS gid, CONCAT('*:bytes=', CAST(mailbox.quota AS CHAR)) AS quota_rule FROM mailbox, domain WHERE username = '%u' AND mailbox.domain = domain.domain AND mailbox.active = '1' AND domain.active = '1'
iterate_query = SELECT username FROM mailbox
--------------------------------------------

[CentOS6] Postfixによるメールサーバ構築 その3 (Postfixの設定)

バーチャルドメインで受けたメールを処理するユーザの設定と、Postfixの設定を行います。
MySQLの認証IDパスワードはpostfixskpMrLvw9fiXとしています。適宜変更してください。

準備

Postfixのバーチャルドメインの運用に使用するユーザvuserおよびグループcodeを設定し。メールの保存ディレクトリ/mailを作成します。

groupadd -g 10000 vuser
useradd -g vuser -u 10000 vuser
mkdir /mail
chown vuser:vuser /mail
chmod 771 /mail

MySQL関連設定ファイルの作成

PostfixのMySQLによるユーザ情報を使用する設定ファイルを作成します。

cd /etc/postfix/
cat <<EOF > mysql_virtual_alias_maps.cf
user = postfix
password = skpMrLvw9fiX
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address
EOF
cat <<EOF > mysql_virtual_domains_maps.cf
user = postfix
password = skpMrLvw9fiX
hosts = localhost
dbname = postfix
table = domain
select_field = domain
where_field = domain
additional_conditions = and active = '1'
EOF
cat <<EOF > mysql_virtual_mailbox_maps.cf
user = postfix
password = skpMrLvw9fiX
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
EOF
cat <<EOF > mysql_virtual_mailbox_limit_maps.cf
user = postfix
password = skpMrLvw9fiX
hosts = localhost
dbname = postfix
table = mailbox
select_field = quota
where_field = username
EOF
chmod 640 mysql_virtual_*

Postfixの基本設定

Postfixの基本設定をmain.cfで行います。

cd /etc/postfix/
vi main.cf
--------------------------------------------
#myorigin = $mydomain
myorigin = $myhostname
#inet_interfaces = localhost
inet_interfaces = all
mydestination = $myorigin
#home_mailbox = Maildir/
home_mailbox = Maildir/
#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
smtpd_banner = $myhostname ESMTP unknown
local_transport = local
virtual_transport = virtual
virtual_mailbox_base = /mail
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
maximal_backoff_time = 800s
minimal_backoff_time = 100s
bounce_queue_lifetime = 60m
maximal_queue_lifetime = 60m
mailbox_size_limit = 1024000000
message_size_limit = 20480000
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_overquota_bounce = yes
virtual_mailbox_limit_inbox = no
virtual_trash_count = no
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_local_domain = $myhostname
smtpd_client_restrictions = reject_rbl_client bl.spamcop.net
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
--------------------------------------------

サブミッションポートの設定

サブミッションポート587番ポートを開く設定をmaster.cfに記述します。
submissionの行のコメントを外すだけでOKです。

vi /etc/postfix/master.cf
-------------------------------------------------------------------------------
smtp      inet  n       -       n       -       -       smtpd
submission inet n       -       n       -       -       smtpd
-------------------------------------------------------------------------------

[CentOS6] Postfixによるメールサーバ構築 その2 (MySQLの設定とpostfixadminのインストール)

  • URL: http:/www.example.com/postfixadmin/
  • パスワード保存形式: dovecot CRAM-MD5形式

準備

パスワードの保存にdovecotのCRAM-MD5形式を採用しているため、postfixadminでのパスワード登録や認証にdoveadmコマンドが必要となります。そのため事前にdovecotをインストールしておきます。

yum install dovecot

MySQLの設定

Postfix、Dovecotで使用するドメイン情報、ユーザ情報、認証情報を保存するデータベースをMySQLで設定します。

事前にMySQLをインストールしておく必要があります。記事「MySQL phpMyAdmin インストール」を参考にしてインストールしてください。

  • ユーザ名: postfix
  • データベース名: postfix
  • パスワード: skpMrLvw9fiX
mysql -u root -p
----------------------------------------------------
SELECT host,user,password FROM mysql.user;
DELETE FROM mysql.user WHERE user="";
SELECT host,user,password FROM mysql.user;
CREATE DATABASE postfix;
CREATE USER 'postfix'@'localhost' IDENTIFIED BY 'skpMrLvw9fiX';
GRANT ALL PRIVILEGES ON `postfix` . * TO 'postfix'@'localhost';
exit
----------------------------------------------------

postfixadminのインストール

postfixadmin 2.3.6をダウンロードして/vaw/wwwへ設置します。

cd /usr/local/src/
wget http://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-2.3.6/postfixadmin-2.3.6.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fpostfixadmin%2F&ts=1372249044&use_mirror=jaist
tar zxvf postfixadmin-2.3.6.tar.gz
mv postfixadmin-2.3.6/ /var/www/postfixadmin

config.inc.phpを編集してpostfixadminの初期設定を行います。

cd /var/www/postfixadmin
vi config.inc.php
----------------------------------------------------
//$CONF['configured'] = false;
$CONF['configured'] = true;
//$CONF['postfix_admin_url'] = '';
$CONF['postfix_admin_url'] = '/postfixadmin/';
//$CONF['default_language'] = 'en';
$CONF['default_language'] = 'ja';
//$CONF['database_type'] = 'mysql';
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfix';
//$CONF['database_password'] = 'postfixadmin';
$CONF['database_password'] = 'skpMrLvw9fiX';
$CONF['database_name'] = 'postfix';
//$CONF['encrypt'] = 'md5crypt';
$CONF['encrypt'] = 'dovecot:CRAM-MD5';
//$CONF['dovecotpw'] = "/usr/sbin/dovecotpw";
$CONF['dovecotpw'] = "/usr/bin/doveadm pw";
//$CONF['page_size'] = '10';
$CONF['page_size'] = '50';
//$CONF['domain_path'] = 'NO';
$CONF['domain_path'] = 'YES';
// Specify your default values below. Quota in MB.
$CONF['aliases'] = '10';
$CONF['mailboxes'] = '10';
//$CONF['maxquota'] = '10';
$CONF['maxquota'] = '200';
//$CONF['quota'] = 'NO';
$CONF['quota'] = 'YES';
//$CONF['vacation_control'] ='YES';
$CONF['vacation_control'] ='NO';
//$CONF['vacation_control_admin'] = 'YES';
$CONF['vacation_control_admin'] = 'NO';
//$CONF['alias_control'] = 'NO';
$CONF['alias_control'] = 'YES';
//$CONF['alias_control_admin'] = 'NO';
$CONF['alias_control_admin'] = 'YES';
//$CONF['alias_domain'] = 'YES';
$CONF['alias_domain'] = 'NO';
//$CONF['backup'] = 'YES';
$CONF['backup'] = 'NO';
//$CONF['sendmail'] = 'YES';
$CONF['sendmail'] = 'NO';
//$CONF['fetchmail'] = 'YES';
$CONF['fetchmail'] = 'NO';
//$CONF['user_footer_link'] = "http://change-this-to-your.domain.tld/main";
$CONF['user_footer_link'] = "/postfixadmin/";
//$CONF['show_footer_text'] = 'YES';
$CONF['show_footer_text'] = 'NO';
//$CONF['emailcheck_resolve_domain']='YES';
$CONF['emailcheck_resolve_domain']='NO';
//$CONF['used_quotas'] = 'NO';
$CONF['used_quotas'] = 'YES';
//$CONF['new_quota_table'] = 'NO';
$CONF['new_quota_table'] = 'YES';
----------------------------------------------------

Apacheの設定を行いpostfixadminへアクセスできるようにします。

vi /etc/httpd/conf.d/postfixadmin.conf
----------------------------------------------------
Alias /postfixadmin "/var/www/postfixadmin"
<Directory "/var/www/postfixadmin">
Order allow,deny
Allow from all
</Directory>
----------------------------------------------------
apachectl -t
apachectl restart

セットアップパスワードの登録

phpmyadmin セットアップ

データベース等の情報が正しく設定されていれば、http:/www.example.com/postfixadmin/setup.phpへアクセスするとデータベースのセットアップが始まります。

postfixadmin セットアップパスワード

セットアップパスワードを入力しボタンを押すことでパスワードハッシュが生成されます。表示されたパスワードハッシュをconfig.inc.phpへコピー&ペーストで追記します。以降、setup.phpを使用するにはセットアップパスワードが必要となります。

vi config.inc.php
----------------------------------------------------
//$CONF['setup_password'] = 'changeme';
$CONF['setup_password'] = '367b10879c33b7555216f.....略...6df5e61357ae13fe0f8f4e133ec';
----------------------------------------------------

管理者の登録

postfixadmin 管理者登録

再度、http:/www.example.com/postfixadmin/setup.phpへアクセスし、今度は管理者の登録を行います。登録の際には先ほど設定したセットアップパスワードも入力する必要があります。

管理者でのログイン確認

postfixadmin 管理者ログイン

登録した管理者でログイン画面(http:/www.example.com/postfixadmin/)へアクセスし、管理者正しくログインできるか確認します。この管理者でドメインやメールアカウントの登録ができるようになります。

ちなみに、一般ユーザはhttp:/www.example.com/postfixadmin/postfixadmin/users/からログインできます。

[CentOS6] Postfixによるメールサーバ構築 その1 (PostfixをSRPMからリビルド)

PostfixにVDAパッチを適用するためSRPMをダウンロードしてリビルドを行う。VDAパッチによりPostfixが容量制限(quota)を利用できるようになる。

Postfix VDA

リビルドに必要なパッケージをyumでインストールする。

yum -y install gcc rpm-build db4-devel pkgconfig zlib-devel openldap-devel cyrus-sasl-devel pcre-devel mysql-devel openssl-devel

SRPMをインストールしVDAパッチを適用する。ここではrootで作業していることを想定している。SRPMをインストールすると$HOME/rpmbuid/以下にファイルが展開される。CentOS6.3で採用されているPostfix 2.6.6に対応するVDAパッチがないが、Postfix 2.6.5用のVDAパッチで対応できる。

wget http://vault.centos.org/6.3/os/Source/SPackages/postfix-2.6.6-2.2.el6_1.src.rpm
rpm -ihv postfix-2.6.6-2.2.el6_1.src.rpm
cd /root/rpmbuild/SOURCES/
wget http://vda.sourceforge.net/VDA/postfix-2.6.5-vda-ng.patch.gz
wget http://vda.sourceforge.net/VDA/postfix-2.6.5-vda-ng-bigquota.patch.gz
gunzip postfix-2.6.5-vda-ng.patch.gz
gunzip postfix-2.6.5-vda-ng-bigquota.patch.gz
cd ../SPECS/
cp postfix.spec postfix.spec.org
vi postfix.spec
-----------------
Release: 2.2_VDA%{?dist}
Epoch: 3
Patch11: postfix-2.6.6-CVE-2011-1720.patch
Patch12: postfix-2.6.5-vda-ng.patch
Patch13: postfix-2.6.5-vda-ng-bigquota.patch
%patch12 -p1 -b .vda-ng
%patch13 -p1 -b .vda-ng-bigquota
-----------------

SRPMをリビルドしてRPMファイルを生成する。rpmコマンドでVDAパッチが適用されたPostfixをインストールする。

rpmbuild -ba postfix.spec
rpm -Uhv ../RPMS/x86_64/postfix-2.6.6-2.2.el6.x86_64.rpm

サーバ起動時にPostfixが起動するようにchkconfigで設定する

chkconfig postfix on
chkconfig --list postfix
----------------------------------------------------
postfix        	0:off	1:off	2:on	3:on	4:on	5:on	6:off
----------------------------------------------------

yumでPostfixが自動にアップグレードされないようにyum.confに記述しておく。

vi /etc/yum.conf
----------------------------------------------------
exclude=postfix*
----------------------------------------------------

参考記事: postfix with VDA patch [がらくたネット]

Postfixによるメールサーバ構築 その4 (Dovecotのインストールと設定)

Postfixによるメールサーバ構築 (Postfix+MySQL+Dovecot+postfixadmin)

Dovecotのインストール

yum -y install dovecot
chkconfig dovecot on
chkconfig --list dovecot

Dovecotの設定

cp /etc/dovecot.conf /etc/dovecot.conf.org
vi /etc/dovecot.conf
-------------------------------------------------------------------------------
#protocols = imap imaps pop3 pop3s
protocols = pop3 imap
mail_location = maildir:/mail/%d/%u
first_valid_uid = 10000
first_valid_gid = 10000
#passdb pam {
#}
passdb sql {
args = /etc/dovecot-mysql.conf
}
#userdb passwd {
#}
userdb sql {
args = /etc/dovecot-mysql.conf
}
#mechanisms = plain
mechanisms = plain login digest-md5 cram-md5
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
}
socket listen {
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
-------------------------------------------------------------------------------
x86_64の場合は下記を設定しないと動作しませんので、上記の設定に追加してください。i386の場合は大丈夫です。
-------------------------------------------------------------------------------
login_process_size = 64
-------------------------------------------------------------------------------
cat < /etc/dovecot-mysql.conf
driver = mysql
default_pass_scheme = PLAIN
connect = dbname=postfix user=postfix host=/var/lib/mysql/mysql.sock password=Lr9WNUJK
password_query = SELECT password FROM mailbox WHERE username = '%u' AND active = '1'
user_query = SELECT concat('/mail/', maildir) as home, 10000 as uid, 10000 as gid FROM mailbox WHERE username = '%u' AND active = '1'
EOF

認証のライブラリをインストール

yum -y install cyrus-sasl-plain cyrus-sasl-md5

saslauthdは利用しないので念のため停止しておきます。停止時にFAILEDなどがでても大丈夫です。

/etc/rc.d/init.d/saslauthd stop
chkconfig saslauthd off

Postfix Dovecotの起動

PostfixとDovecotの起動を行って設定完了です。/var/log/maillogにエラーなどがでていないか確認してください。

/etc/init.d/dovecot start
/etc/init.d/postfix start

Postfixによるメールサーバ構築 (Postfix+MySQL+Dovecot+postfixadmin) 【最初の記事】

Postfixによるメールサーバ構築 その3 (Postfixの設定)

Postfixによるメールサーバ構築 (Postfix+MySQL+Dovecot+postfixadmin)

バーチャルドメインで受けたメールを処理するユーザの設定と、Postfixの設定を行います。
MySQLの認証IDパスワードはpostfixLr9WNUJKとしています。適宜変更してください。

groupadd -g 10000 vuser
useradd -g vuser -u 10000 vuser
mkdir /mail
chown vuser:vuser /mail
chmod 771 /mail
cd /etc/postfix/
cat <<EOF > mysql_virtual_alias_maps.cf
user = postfix
password = Lr9WNUJK
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address
EOF
cat <<EOF > mysql_virtual_domains_maps.cf
user = postfix
password = Lr9WNUJK
hosts = localhost
dbname = postfix
table = domain
select_field = domain
where_field = domain
additional_conditions = and active = '1'
EOF
cat <<EOF > mysql_virtual_mailbox_maps.cf
user = postfix
password = Lr9WNUJK
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
EOF
cat <<EOF > mysql_virtual_mailbox_limit_maps.cf
user = postfix
password = Lr9WNUJK
hosts = localhost
dbname = postfix
table = mailbox
select_field = quota
where_field = username
EOF
chown root:postfix mysql_virtual_*
chmod 640 mysql_virtual_*

Postfixの設定

main.cfを編集してPostfixの設定を行います。Spam CopのRBLを利用していますが、必要ない場合はsmtpd_client_restrictionsの行を削除するかコメントアウトしてください。

cp /etc/postfix/main.cf /etc/postfix/main.cf.org
vi /etc/postfix/main.cf
-------------------------------------------------------------------------------
myhostname = mail.example.com
mydomain = example.com
#myorigin = $mydomain
myorigin = $myhostname
#inet_interfaces = localhost
inet_interfaces = all
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydestination = $myorigin
#relay_domains = $mydestination
relay_domains = $mydestination
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP unknown
local_transport = local
virtual_transport = virtual
virtual_mailbox_base = /mail
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
maximal_backoff_time = 800s
minimal_backoff_time = 100s
bounce_queue_lifetime = 60m
maximal_queue_lifetime = 60m
#mailbox_size_limit = 1024000000
message_size_limit = 20480000
#virtual_mailbox_limit = 51200000
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_overquota_bounce = yes
virtual_mailbox_limit_inbox = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_local_domain = $myhostname
smtpd_client_restrictions = reject_rbl_client bl.spamcop.net
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
-------------------------------------------------------------------------------

SpamCopのRBLによるスパム対策をsmtpd_client_restrictionsで設定しています。

サブミッションポート587番ポートを開く設定をmaster.cfに記述します。
submissionの行のコメントを外すだけでOKです。

vi /etc/postfix/master.cf
-------------------------------------------------------------------------------
smtp      inet  n       -       n       -       -       smtpd
submission inet n       -       n       -       -       smtpd
-------------------------------------------------------------------------------

Postfixによるメールサーバ構築 (Postfix+MySQL+Dovecot+postfixadmin) 【最初の記事】

Postfixによるメールサーバ構築 その2 (MySQLの設定とpostfixadminのインストール)

Postfixによるメールサーバ構築 (Postfix+MySQL+Dovecot+postfixadmin)

ここではMySQLのユーザ認証のユーザ、パスワードをpostfixとLr9WNUJKにしていますが、適宜変えてください。

MySQLの設定

事前にMySQLをインストールしておく必要があります。記事「MySQL phpMyAdmin インストール」を参考にしてインストールしてください。

mysql -u root -p
----------------------------------------------------
SELECT host,user,password FROM mysql.user;
DELETE FROM mysql.user WHERE user="";
SELECT host,user,password FROM mysql.user;
CREATE DATABASE postfix;
CREATE USER 'postfix'@'localhost' IDENTIFIED BY 'Lr9WNUJK';
GRANT ALL PRIVILEGES ON `postfix` . * TO 'postfix'@'localhost';
exit
----------------------------------------------------

postfixadminのインストール

事前にApache、PHPをインストールしている必要があります。
また、ostfixadminの最新版はこちらからダウンロードしてください。
http://sourceforge.net/projects/postfixadmin/

cd /usr/local/src
wget http://nchc.dl.sourceforge.net/sourceforge/postfixadmin/postfixadmin-2.2.1.1.tar.gz
tar zxvf postfixadmin-2.2.1.1.tar.gz
mv postfixadmin-2.2.1.1/ /var/www/postfixadmin
cd /var/www/postfixadmin
vi config.inc.php
----------------------------------------------------
//$CONF['configured'] = false;
$CONF['configured'] = true;
//$CONF['default_language'] = 'en';
$CONF['default_language'] = 'ja';
$CONF['database_type'] = 'mysql';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'Lr9WNUJK';
$CONF['database_name'] = 'postfix';
$CONF['database_prefix'] = '';
//$CONF['encrypt'] = 'md5crypt';
$CONF['encrypt'] = 'cleartext';
$CONF['page_size'] = '100';
//$CONF['domain_path'] = 'NO';
$CONF['domain_path'] = 'YES';
// Default Domain Values
// Specify your default values below. Quota in MB.
$CONF['aliases'] = '100';
$CONF['mailboxes'] = '100';
$CONF['maxquota'] = '300';
// Quota
// When you want to enforce quota for your mailbox users set this to 'YES'.
$CONF['quota'] = 'NO';
$CONF['backup'] = 'NO';
$CONF['sendmail'] = 'NO';
$CONF['fetchmail'] = 'NO';
$CONF['footer_text'] = 'Postfix Admin Top';
$CONF['footer_link'] = 'http://www.example.com/postfixadmin/';
$CONF['emailcheck_resolve_domain']='NO';
----------------------------------------------------

Apacheの設定

必要であればIP制限、Basic認証などを行ってください。

vi /etc/httpd/conf.d/postfixadmin.conf
----------------------------------------------------
Alias /postfixadmin "/var/www/postfixadmin"
<Directory "/var/www/postfixadmin">
Order allow,deny
Allow from all
</Directory>
----------------------------------------------------
apachectl -t
apachectl restart

動作確認と管理者の登録

http://www.example.com/postfixadmin/setup.phpにアクセスして動作チェックの確認と管理者のメールアドレス、パスワード登録を行ってください。
登録後はセットアップ関連のファイルを削除します。

rm -f /var/www/postfixadmin/setup.php
rm -f /var/www/postfixadmin/motd*

実際にpostfixadminの管理画面http://www.example.com/postfixadmin/にアクセスしてログインできるか確かめてください。
ドメイン一覧->新しいドメイン を選択し、メールを受け取るドメインを設定します。

Postfixによるメールサーバ構築 (Postfix+MySQL+Dovecot+postfixadmin) 【最初の記事】

Postfixによるメールサーバ構築 その1 (PostfixをSRPMからリビルド)

Postfixによるメールサーバ構築 (Postfix+MySQL+Dovecot+postfixadmin)

PostfixをSRPMからリビルドしてMySQLに対応させる

PostfixのSRPMとVDAパッチをダウンロードします。

cd /usr/local/src/
wget http://ftp.riken.jp/Linux/centos/5.2/os/SRPMS/postfix-2.3.3-2.src.rpm
mkdir -p /usr/src/redhat/SOURCES
rpm -ihv postfix-2.3.3-2.src.rpm
cd /usr/src/redhat/SOURCES
wget http://vda.sourceforge.net/VDA/postfix-2.3.3-vda.patch.gz
gunzip postfix-2.3.3-vda.patch.gz

PostfixのSRPMのspecファイルにMySQLを有効にする設定とパッチの追加設定を行います

cd /usr/src/redhat/SPECS/
cp postfix.spec postfix.spec.org
vi postfix.spec
【変更】
----------------------------------------------------
%define MYSQL 0
----------------------------------------------------
%define MYSQL 1
----------------------------------------------------
【追加】
----------------------------------------------------
Patch9: postfix-2.2.5-cyrus.patch
----------------------------------------------------
Patch9: postfix-2.2.5-cyrus.patch
Patch10: postfix-2.3.3-vda.patch
----------------------------------------------------
【追加】
----------------------------------------------------
%patch9 -p1 -b .cyrus
----------------------------------------------------
%patch9 -p1 -b .cyrus
%patch10 -p1 -b .vda
----------------------------------------------------

リビルドに必要なパッケージをインストールしてPostfixをリビルドします

yum -y install gcc rpm-build db4-devel pkgconfig zlib-devel openldap-devel cyrus-sasl-devel pcre-devel mysql-devel openssl-devel
rpmbuild -ba postfix.spec
i386の場合
rpm -Uhv /usr/src/redhat/RPMS/i386/postfix-2.3.3-2.i386.rpm
x86_64の場合
rpm -Uhv /usr/src/redhat/RPMS/x86_64/postfix-2.3.3-2.x86_64.rpm

postfixをyumでアップデートしないようにし、デフォルトのMTA、sendmailの自動起動をoffにしてPostfixをonにします。

vi /etc/yum.conf
----------------------------------------------------
exclude=postfix*
----------------------------------------------------
/etc/init.d/sendmail stop
chkconfig sendmail off
chkconfig --list sendmail
chkconfig postfix on
chkconfig --list postfix

alternativesでpostfixを選択、この場合は2を入力してEnter

alternatives --config mta
----------------------------------------------------
There are 2 programs which provide 'mta'.
Selection    Command
-----------------------------------------------
*+ 1           /usr/sbin/sendmail.sendmail
2           /usr/sbin/sendmail.postfix
Enter to keep the current selection[+], or type selection number: 2
----------------------------------------------------

次の記事ではMySQLの設定とメールアドレス管理ソフトpostfixadminのインストールを行います。

Postfixによるメールサーバ構築 (Postfix+MySQL+Dovecot+postfixadmin) 【最初の記事】

Postfixによるメールサーバ構築 (Postfix+MySQL+Dovecot+postfixadmin)

PostfixをMTAとしてバーチャルドメインの環境で運用するための構築方法を説明します。

ドメイン、アカウント情報はMySQLのデータベースに保存します。
ドメイン管理、アカウント管理にはPHPとMySQLで動作するpostfixadminを利用します。

Postfixによるメールサーバ構築 (Postfix+MySQL+Dovecot+postfixadmin)