Postfix i MySQL

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.

Contents

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 =

Dodaj komentarz