Modifications entre les versions 5 et 6
Version 5 à la date du 2007-12-10 16:22:26
Taille: 4604
Éditeur: JérômeSantini
Commentaire:
Version 6 à la date du 2007-12-10 16:23:32
Taille: 4603
Éditeur: JérômeSantini
Commentaire:
Texte supprimé. Texte ajouté.
Ligne 71: Ligne 71:
query = SELECT destination FROM virtuals WHERE source = '%s' query = SELECT destination FROM virtual WHERE source = '%s'

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 parmi 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 aucun utilisateur 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 d'incohérence.

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

# ce fichier défini la requête à faire pour récuperer les données
# ici, la requete sera "quel répertoire pour stocker les mails de telle adresse ?"
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';
  • On peut utiliser des tables mysql partout où des tables hash: (par exemple) existent déjà. Par exemple, dans un virtual_maps :

virtual_maps = proxy:mysql:/etc/postfix/mysql_virtual.cf

Il suffit d'adapter la requête pour aller chercher les informations correspondantes. Ici, le contenu de mysql_virtual.cf pourra être :

user = utilisateur-mysql
password = pass-de-utilisateur-mysql
hosts = hote-mysql
dbname = nom-de-la-base-mysql
query = SELECT destination FROM virtual WHERE source = '%s'

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)