Taille: 4267
Commentaire: il fallait avancer, mais bon, là, on dit que c'est le premier jet et je passe à la doc suivante.
|
Taille: 4603
Commentaire:
|
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 parmi beaucoup. |
Ligne 23: | Ligne 23: |
* Configurer le système de "virtual_mailbox" pour aller chercher ses informations dans une table mysql. | * Configurer le système de "virtual_mailbox" pour qu'il cherche ses informations dans une table mysql. |
Ligne 26: | Ligne 26: |
# ce fichier défini la façon d'aller chercher les informations dans une base 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 ?" |
Ligne 59: | Ligne 60: |
* On peut utiliser des tables mysql partout où des tables hash: (par exemple) existent déjà. Par exemple : | * On peut utiliser des tables mysql partout où des tables hash: (par exemple) existent déjà. Par exemple, dans un virtual_maps : |
Ligne 61: | Ligne 62: |
virtual_maps = proxy:mysql:/etc/postfix/auforg_virtual.cf | virtual_maps = proxy:mysql:/etc/postfix/mysql_virtual.cf |
Ligne 63: | Ligne 64: |
Il suffit d'adapter la requête pour aller chercher les informations correspondantes. | 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' }}} |
Pourquoi faire ?
- Postfix permet de stocker les informations des tables de correspondance dans des tables de bases de données mysql. Cela permet une plus grand souplesse dans la création et la gestion des adresses email et des comptes utilisateurs.
Voir la [http://postfix.traduc.org/index.php/DATABASE_README.html documentation sur les tables de correspondances] de postfix, et, plus particuliérement, celle détaillant [http://postfix.traduc.org/index.php/MYSQL_README.html les tables mysql] pour le fonctionnement général.
L'usage de ce type de table, associé à l'utilisation des [http://postfix.traduc.org/index.php/VIRTUAL_README.html virtual_mailbox] permet d'avoir des comptes utilisateurs complétement dissociés des comptes unix du serveur.
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"
- ... ?