Serwer pocztowy Postfix posiada możliwość pobierania informacji o aliasach pocztowych czy wirtualach bezpośrednio z bazy danych. Umożliwia to znaczną automatyzacje zadań administracyjnych.
Instalacja oprogramowania
W dystrybucjach posiadających pakiety Postfiksa skompilowane odpowiednio wystarczy zainstalować pakiet. W przypadku Debiania Sarge jest to postfix-mysql:
apt-get install postfix-mysql
mkdir /var/spool/postfix/var/run/mysqld/
/var/run/mysqld /var/spool/postfix/var/run/mysqld auto bind,defaults 0 2
Baza danych i tabele
Konfiguracja Postfiksa do używania baz danych
Najpierw musimy poinformować Postfiksa że ma korzystać z bazy danych (typ mapy mysql) i podajemy ścieżkę do pliku konfiguracyjnego z danymi dotyczącymi dostępu:
virtual_alias_maps= proxy:mysql:/etc/postfix/mysql_virtual_alias.cf
W pliku tym podajemy konieczne informacje by Postfix mógł skorzystać z bazy danych:
host = localhost user = root password = tygrysekdupa dbname = webadmin table = user_mailalias select_field = user where_field = mailalias additional_conditions = #
i już :).
Plik access_map w bazie danych
W bazie danych tworzymy odpowiednią tabelę:
CREATE TABLE `postfix_access_map` ( `id_access` int(11) NOT NULL auto_increment, `address` varchar(255) default NULL, `action` varchar(255) default NULL, PRIMARY KEY (`id_access`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO `postfix_access_map` VALUES (1,'lnftsadyqynvw@yahoo.com','REJECT \"I don\'t like spam'),(2,'ohvzzwjewc@msn.com','REJECT \"I don\'t like spam');
# The user name and password to log into the mysql server. #host = 195l26 hosts = 127.0.0.1 user = root password = XXX # The database name on the servers. dbname = webadmin # The table name. table = postfix_access_map # Query components, see below. select_field = action where_field = address # You may specify additional_conditions or leave this empty. additional_conditions =