postfixadmin

出典: wiki.nodoka.org

LAMP構成で動作する、postfixのウェブ設定ツール。

目次

postfixadmin-2.2.0のインストール

postfix, apache, php, mysqlが既にインストールされている前提。

cd /usr/local/src
wget http://downloads.sourceforge.net/postfixadmin/postfixadmin_2.2.0.tar.gz
tar xvzf postfixadmin_2.2.0.tar.gz
cd /usr/local/apache/htdocs
ln -s /usr/local/src/postfixadmin-2.2.0 postfix

設定ファイル編集

vi /usr/local/src/postfixadmin-2.2.0/config.inc.php

$CONF['configured'] = true;
$CONF['postfix_admin_url'] = 'http://domain.com/postfix';
$CONF['default_language'] = 'ja';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'PASSWORD';
$CONF['admin_email'] = 'postmaster@domain.com';
$CONF['default_aliases'] = array (
    'abuse' => 'abuse@domain.com',
    'hostmaster' => 'hostmaster@domain.com',
    'postmaster' => 'postmaster@domain.com',
    'webmaster' => 'webmaster@domain.com'
$CONF['encrypt'] = 'cleartext';

DB作成

mysql -uroot
create database postfix default character set latin1 collate latin1_swedish_ci;
grant all on postfix.* to postfix@localhost identified by 'PASSWORD';
http://domain.com/postfix/setup.php
cd /usr/local/src/postfixadmin-2.2.0
mv setup.php setup.php.disable
useradd -u 20000 -d /home/pop -m -s /bin/bash pop

postfix設定

vi /usr/local/postfix/etc/main.cf
#postfixadmin
local_transport = virtual
virtual_transport = virtual
virtual_mailbox_base = /home/pop
virtual_alias_maps = mysql:/usr/local/postfix/etc/mysql_virtual_alias_maps.cf
virtual_alias_domains = $virtual_alias_maps
virtual_mailbox_domains = mysql:/usr/local/postfix/etc/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/usr/local/postfix/etc/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 20000
virtual_uid_maps = static:20000
virtual_gid_maps = static:20000
vi /usr/local/postfix/etc/mysql_virtual_alias_maps.cf
user = postfix
password = PASSWORD
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s'
vi /usr/local/postfix/etc/mysql_virtual_domains_maps.cf
user = postfix
password = PASSWORD
hosts = localhost
dbname = postfix
query = SELECT description FROM domain WHERE domain='%s'
vi /usr/local/postfix/etc/mysql_virtual_mailbox_maps.cf
user = postfix
password = PASSWORD
hosts = localhost
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username='%s'
/usr/local/postfix/sbin/postfix -c /usr/local/postfix/etc reload
http://domain.com/postfix/index.php