Ceci est une version archivée de
Postfixmysql à 2007-09-20 08:05:34.
Prerequis:
installation des packages de base :
aptitude install mysql-server postfix postfix-mysql
Paramétrage database
Mettre en place mot de passe
mysqladmin -u root password votre_pass
Se connecter à Mysql :
mysql -u root -p votre_pass
creation de la base
Une fois connecté en root, copier/coller ce script ou tout effectuer à la main ;-)
CREATE DATABASE `postfix`;
USE postfix;
--
-- Structure de la table `domain`
--
CREATE TABLE `domain` (
`domain` varchar(255) NOT NULL default '',
`actif` tinyint(1) NOT NULL default '1',
PRIMARY KEY (`domain`)
) ENGINE=MyISAM COMMENT='Postfix Admin - Domaines Virtuels';
--
-- Structure de la table `mailbox`
--
CREATE TABLE `mailbox` (
`email` varchar(255) NOT NULL default '',
`password` varchar(255) NOT NULL default '',
`quota` int(10) NOT NULL default '0',
`actif` tinyint(1) NOT NULL default '1',
`imap` tinyint(1) NOT NULL default '1',
`pop3` tinyint(1) NOT NULL default '1',
PRIMARY KEY (`email`)
) ENGINE=MyISAM COMMENT='Postfix Admin - Boites Emails Virtuelles';
--
-- Structure de la table `alias`
--
CREATE TABLE `alias` (
`source` varchar(255) NOT NULL default '',
`destination` text NOT NULL,
`actif` tinyint(1) NOT NULL default '1',
PRIMARY KEY (`source`)
) ENGINE=MyISAM COMMENT='Postfix Admin - Alias Virtuels';
Creation et attributions des droits pour l'utilisateur de la base (Pour des soucis de securité, il est primordial de mettre en place un user qui ne pourra acceder à la base qu'en lecture).
Pour l'exemple l'utilisateur se nommera postfix et aura comme mot de passe postfix
GRANT SELECT ON `postfix`.* TO 'postfix'@'%'
IDENTIFIED BY 'postfix';
Postfix
Les prerequis sont que les mails doivent etre stockés au format maildir dans le repertoire /home/mail
Creation et mise en place des droits sur ce repertoire
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /home/mail -m
Le fichier main.cf
Nous detaillerons le contenu de ce fichier plus tard pour le moment, nous allons nous contenter d'y inclure les directives mysql.
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_aliases.cf,mysql:/etc/postfix/mysql-virtual_aliases_mailbox.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/mail/
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
#virtual_create_maildirsize = yes
#virtual_mailbox_extended = yes
#virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql-virtual_mailbox_limit_maps.cf
#virtual_mailbox_limit_override = yes
#virtual_maildir_limit_message = "Desole, la boite email de l'utilisateur est pleine, essayez plus tard."
#virtual_overquota_bounce = yes
#Les quotas sont pour le moment desactivés ... J'y reviendrai quand j'aurai le temps...
Création des fichiers d'accès à la base de données
*/etc/postfix/mysql-virtual_aliases.cf*
# mysql-virtual_aliases.cf
hosts = 127.0.0.1
user = postfix
password = postfix
dbname = postfix
select_field = destination
table = alias
where_field = source
additional_conditions = AND actif=1
*/etc/postfix/mysql-virtual_mailbox_limit_maps.cf
# mysql-virtual_mailbox_limit_maps.cf
hosts = 127.0.0.1
user = postfix
password = postfix
dbname = postfix
select_field = quota
table = mailbox
where_field = email
*/etc/postfix/mysql-virtual_domains.cf*
# mysql-virtual_domains.cf
hosts = 127.0.0.1
user = postfix
password = postfix
dbname = postfix
select_field = 'virtual'
table = domain
where_field = domain
additional_conditions = AND actif=1
*/etc/postfix/mysql-virtual_mailboxes.cf*
# mysql-virtual_mailboxes.cf
hosts = 127.0.0.1
user = postfix
password = postfix
dbname = postfix
select_field = CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')
table = mailbox
where_field = email
additional_conditions = AND actif=1
* mysql-virtual_aliases_mailbox.cf *
# mysql-virtual_aliases_mailbox.cf
hosts = 127.0.0.1
user = postfix
password = postfix
dbname = postfix
select_field = email
table = mailbox
where_field = email
additional_conditions = AND actif=1
Mettre les droits adequats sur ces fichiers et valider (un peu) le fichier de conf
chgrp postfix mysql-virtual_*.cf
chmod 750 mysql-virtual_*.cf
/etc/init.d/postfix restart
postfix check
Mise en place de courier-imap courier-pop
aptitude install courier-base courier-authdaemon courier-authmysql courier-imap courier-pop
test de la configuration
mysql -u root -p
USE postfix;
INSERT INTO `domain` (`domain`,`actif`) VALUES ('mackow.org',1);
INSERT INTO `mailbox` (`email`,`password`,`quota`,`actif`,`imap`,`pop3`)
VALUES ('alex@mackow.org',ENCRYPT('secret'),0,1,1,1);
Enoyer un message en interne pour valider la création du Maildir en local.
Puis tester de configurer un compte sous vote client messagerie habituel.