MonSiteWikiNi

Postfixmysql

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes 216.73.216.154
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.
Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]