Качаем Postfixadmin (например, отсюда). Разархивируем в какой-либо каталог.
Устанавливаем необходимый софт (зависимости сами подтянутся): apt-get install postfix postfix-pgsql apache2 php5-imap postgresql ...
Настройка PostgreSQLsu postgres -c psql
postgres# CREATE ROLE postfix WITH PASSWORD 'my_sql_passwd' CREATEDB LOGIN; postgres# CREATE DATABASE postfix OWNER postfix ENCODING 'unicode'; postgres# \q
Настройка PostfixAdminРедактируем ../postfixadmin/config.inc.php:
$CONF['configured'] = true;
$CONF['postfix_admin_url'] = 'http://full.webserver.url/postfixadmin';
$CONF['database_type'] = 'pgsql';
$CONF['database_password'] = 'my_sql_passwd';
$CONF['encrypt'] = '???';
Если надо, чтобы почта хранилась в каталогах разделенная на домены (../vmail/domain.tld/user@domain.tld), правим так же параметр: $CONF['domain_path'] = 'YES';
Заходим на http://full.webserver.url/postfixadmin/setup.php и проверяем все ли в порядке. Если указать внизу страницы пароль на конфиг и сгенерировать его хэш, то его (хэш) надо будет прописать в ../postfixadmin/config.inc.php в параметр $CONF['setup_password'] = '_сгенерированный_длиннющий_хэш_'. Это позволит добавлять глобальных админов (?). Если все в порядке, скрипт сам создаст необходимые таблицы в БД. При возникновении проблем с Postgres'ом внимательно читаем логи /var/log/postgresql/*.log
Настройка Postfix(взято из документации к PostfixAdmin и переделано под PostgreSQL) Редактируем main.cf:
virtual_mailbox_domains = proxy:pgsql:/etc/postfix/sql/pgsql_virtual_domains_maps.cf
virtual_alias_maps =
proxy:pgsql:/etc/postfix/sql/pgsql_virtual_alias_maps.cf,
proxy:pgsql:/etc/postfix/sql/pgsql_virtual_alias_domain_maps.cf,
proxy:pgsql:/etc/postfix/sql/pgsql_virtual_alias_domain_catchall_maps.cf
virtual_mailbox_maps =
proxy:pgsql:/etc/postfix/sql/pgsql_virtual_mailbox_maps.cf,
proxy:pgsql:/etc/postfix/sql/pgsql_virtual_alias_domain_mailbox_maps.cf
# Additional for quota support
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = pgsql:/etc/postfix/pgsql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his
diskspace quota, please try again later.
virtual_overquota_bounce = yes
Далее, создаем файлы запросов к БД:
mysql_virtual_alias_maps.cf:
user = postfix
password = my_sql_password hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
#expansion_limit = 100
|