Postfix en mysql
Afgelopen dagen heb ik bestudeerd hoe ik Postfix kan laten werken met mysql. Dat blijkt gelukkig erg eenvoudig! Voor deze uitleg ga ik uit van een werkende installatie van Postfix die via de /etc/postfix/virtual mail doorstuurt naar een extern adres.
De stappen zijn:
- mysql database aanmaken
- mysql databasegebruiker aanmaken
- Postfix configureren
Mysql
Allereerst de database aanmaken:
nancy:~/# mysqladmin -u root -p create mail
Vervolgens de tabellen:
nancy:~/# mysql -u root -p
mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'databasegebruiker'@'localhost' IDENTIFIED BY 'geheimwachtwoord';
mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'databasegebruiker'@'localhost.localdomain' IDENTIFIED BY 'geheimwachtwoord';
mysql> FLUSH PRIVILEGES;
mysql> USE mail;
CREATE TABLE domains (
domain varchar(50) NOT NULL,
PRIMARY KEY (domain) )
TYPE=MyISAM;
CREATE TABLE forwardings (
source varchar(80) NOT NULL,
destination TEXT NOT NULL,
PRIMARY KEY (source) )
TYPE=MyISAM;
CREATE TABLE users (
email varchar(80) NOT NULL,
password varchar(20) NOT NULL,
quota INT(10) DEFAULT '10485760',
PRIMARY KEY (email)
) TYPE=MyISAM;
CREATE TABLE transport (
domain varchar(128) NOT NULL default '',
transport varchar(128) NOT NULL default '',
UNIQUE KEY domain (domain)
) TYPE=MyISAM;
Postfix configureren
De volgende bestanden zijn aangemaakt:
- mysql-virtual_domains.cf
- mysql-virtual_email2email.cf
- mysql-virtual_forwardings.cf
- mysql-virtual_mailbox_limit_maps.cf
- mysql-virtual_mailboxes.cf
- mysql-virtual_transports.cf
Volgende stap is het wijzigen van de main.cf
# Virtual domains:
virtual_alias_domains =
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /home/vmail
virtual_minimum_uid = 100
virtual_uid_maps = static:101
virtual_gid_maps = static:105
Tot slot doen we een postfix reload en is alles klaar! We hebben nu een Postfix installatie die via een mysql-database aangestuurd wordt. Volgende stap is om de ondersteuning voor pop toe te voegen. Maar dat is voor een volgende keer.