Modifications entre les versions 2 et 3
Version 2 à la date du 2007-12-10 15:40:37
Taille: 2788
Éditeur: JérômeSantini
Commentaire: ...
Version 3 à la date du 2007-12-10 16:06:57
Taille: 3990
Éditeur: JérômeSantini
Commentaire: pas encore fini
Texte supprimé. Texte ajouté.
Ligne 13: Ligne 13:
 Notez que les façons de faire sont multiples. Ceci n'est qu'une façon de faire parmis beaucoup Notez que les façons de faire sont multiples. Ceci n'est qu'une façon de faire parmis beaucoup
Ligne 15: Ligne 15:
 1. Lister dans {{{virtual_mailbox_domains}}} les domaines qui seront gérés en "virtuel", donc sans aucune existence au niveau unix. Vérifier que ces mêmes domaines '''ne''' sont '''pas''' listés en même temps dans {{{mydestination}}} ni {{{virtual_domains}}}, pour éviter tout soucis de cohérence. Cette documentation part du principe que le schéma de base de données utilisé est [http://trac.sn.auf.org/guia/browser/trunk/guia/noyau/greffons/Postfix_MySQL/bases/postfix.sql celui de GUIA] et que la base de donnée est déjà crée et peuplée.
 
 * Lister dans {{{virtual_mailbox_
domains}}} les domaines qui seront gérés en "virtuel", donc sans aucune existence au niveau unix. Vérifier que ces mêmes domaines '''ne''' sont '''pas''' listés en même temps dans {{{mydestination}}} ni {{{virtual_domains}}}, pour éviter tout soucis de cohérence.
Ligne 21: Ligne 23:
 2. Configurer le système de "virtual_mailbox" pour aller chercher ses informations dans une table mysql.  * Configurer le système de "virtual_mailbox" pour aller chercher ses informations dans une table mysql.
Ligne 24: Ligne 26:
virtual_gid_maps = static:1007
virtual_uid_maps = static:1006
virtual_minimum_uid = 1006


# ce fichier défini la façon dont aller chercher les informations dans la base
# ce fichier défini la façon d'aller chercher les informations dans la base mysql
Ligne 32: Ligne 29:
# un préfixe # un préfixe à ajouter devant chaque chemin de boîte aux lettres.
# Plutôt mettre des chemins absolus dans la base pour se simplifier la vie ensuite :
# certains soft (postfix) autorises l'ajout de préfixes, d'autre seulement de suffixe.
Ligne 34: Ligne 33:

virtual_transport = virtual
Ligne 38: Ligne 35:
 * Spécifier l'utilisateur unix à qui appartiendront les fichiers des boîtes aux lettres. Il faut créer un utilisateur spécialement dédié à cet usage, et ne pas céder à la facilité en utilisant "mail:mail", déjà existant mais destiné à d'autres usages.

{{{
virtual_gid_maps = static:127
virtual_uid_maps = static:127
virtual_minimum_uid = 127
}}}

 * Créer le fichier {{{/etc/postfix/virtual_mailbox_maps.cf]}}} qui décrit la façon dont accéder aux données

{{{
user = utilisateur-mysql
password = pass-de-utilisateur-mysql
hosts = hote-mysql
dbname = nom-de-la-base-mysql
query = SELECT homedir FROM users WHERE mail = '%s'
}}}

et l'utilisateur mysql correspondant:

{{{
mysql> grant select on nom-de-la-base-mysql.* to utilisateur-mysql@'localhost' identified by 'pass-de-utilisateur-mysql';
}}}

Pourquoi faire ?

La configuration du serveur imap (l'utilisation de [:Dovecot/BackendMysql:dovecot] est vivement conseillée) doit bien entendu être synchrone à la configuration mysql de postfix.

Comment faire ?

Notez que les façons de faire sont multiples. Ceci n'est qu'une façon de faire parmis beaucoup

Cette documentation part du principe que le schéma de base de données utilisé est [http://trac.sn.auf.org/guia/browser/trunk/guia/noyau/greffons/Postfix_MySQL/bases/postfix.sql celui de GUIA] et que la base de donnée est déjà crée et peuplée.

  • Lister dans virtual_mailbox_domains les domaines qui seront gérés en "virtuel", donc sans aucune existence au niveau unix. Vérifier que ces mêmes domaines ne sont pas listés en même temps dans mydestination ni virtual_domains, pour éviter tout soucis de cohérence.

virtual_mailbox_domains = ca.auf.org, secours
  • Configurer le système de "virtual_mailbox" pour aller chercher ses informations dans une table mysql.

# ce fichier défini la façon d'aller chercher les informations dans la base mysql
virtual_mailbox_maps = proxy:mysql:/etc/postfix/virtual_mailbox_maps.cf

# un préfixe à ajouter devant chaque chemin de boîte aux lettres. 
# Plutôt mettre des chemins absolus dans la base pour se simplifier la vie ensuite :
# certains soft (postfix) autorises l'ajout de préfixes, d'autre seulement de suffixe.
virtual_mailbox_base = /
  • Spécifier l'utilisateur unix à qui appartiendront les fichiers des boîtes aux lettres. Il faut créer un utilisateur spécialement dédié à cet usage, et ne pas céder à la facilité en utilisant "mail:mail", déjà existant mais destiné à d'autres usages.

virtual_gid_maps = static:127
virtual_uid_maps = static:127
virtual_minimum_uid = 127
  • Créer le fichier /etc/postfix/virtual_mailbox_maps.cf] qui décrit la façon dont accéder aux données

user = utilisateur-mysql
password = pass-de-utilisateur-mysql
hosts = hote-mysql
dbname = nom-de-la-base-mysql
query = SELECT homedir FROM users WHERE mail = '%s'

et l'utilisateur mysql correspondant:

mysql> grant select on nom-de-la-base-mysql.* to utilisateur-mysql@'localhost' identified by 'pass-de-utilisateur-mysql';

Que faire lorsque ça ne fonctionne pas ?

  • Toute d'abord, bien entendu, [:VérifierLesLogsEnCasDeSoucis:analyser les logs]

  • Si Postfix n'arrive pas à se connecter à la base mysql en général : essayer de se connecter au même serveur en ligne de commande, avec les mêmes paramètres.
  • Si certains modules de postfix n'arrivent pas à se connecter à la base, d'autre, si : postfix lance certains de ses modules en chroot. Si le serveur mysql est sur la même machine, cela va passer par un fichier 'socket' plutôt que par une connexion réseau, qui ne sera donc pas accessible dans l'environnement chroot. Vérifier alors que le mot "proxy:" précède bien les entrées "mysql:" correspondantes. Dans ce cas, un proxy dédié à l'interrogation de la base mysql sera lancé, et ferra l'intermédiaire entre postfix et mysql.
  • "loops back to myself"
  • ... ?

Postfix/BackendMysql (dernière édition le 2008-02-21 22:09:36 par localhost)