Re: Postfix comportement étrange
Le 23/05/2015 18:47, Daniel Caillibaud a écrit :
Le 23/05/15 à 14:03, Samuel <debian-user-french-2010@ingescom.com> a écrit :
S> Je ne vois pas comment utiliser "username_field" pour récupérer et
S> l'alias et le user dans 2 tables différentes.
S>
S> Si j'ai bien compris que c'est à ce niveau qu'il faut intervenir.
Probable, je connais pas ta structure de table, tu dois écrire une requete sql qui sorte login
ou alias dans un seul champ, et tu utilise cette requete dans postfix, sans toucher aux
requetes déjà écrites pour dovecot.
On est bien d'accord, c'est dans postfix qu'il faut agir ... intervenir
dans dovecot complique la chose.
Si t'es pas à l'aise avec des if dans le select, tu peux indiquer 2 requetes dans ta conf
postfix
cle = mysql:/path/to/recup_users.cf, mysql:/path/to/recup_alias.cf
et tu regarde la doc pour la syntaxe de ces fichier cf, c'est du genre
user = xxx
password = xxx
hosts = xxx
dbname = xxx
query = SELECT champ FROM table WHERE autreChamp = '%s'
Le %s dépend de cle (ça peut être une adresse, un domaine, suivant le contexte), ce que tu
doit remonter dépend aussi du contexte.
C'est ce que j'ai utilisé : accéder directement au contenu de la table
quota via pré-sélection dans table users et forwards :
smtpd_recipient_restrictions = check_recipient_access mysql:check_quota
...
check_quota_query = select if(bytes>'12582912', '552 5.2.2 Quota
exceeded (mailbox for user is full)', 'PERMIT') from quota where email =
'%u@%d' or email=(select destination from forwards where source='%u@%d')
Et c'est vrai que cette rustine fonctionne bien ... mais sur une Jessie,
dans le fichier /etc/dovecot/conf.d/90-quota.conf, il est mentionné
cette page qui concerne l'utilisation du "service quota-status" pour
postfix : https://sys4.de/de/blog/2013/04/08/postfix-dovecot-mailbox-quota/
Cette page donne cette commande pour interroger ce service (port 12340)
depuis postfix :
smtpd_recipient_restrictions = check_policy_service inet:127.0.0.1:12340
Mon problème est que cette commande envoie en variable l'alias en valeur
finale (qui n'existe pas dans la table quota de postfix -> unknown
user) et non pas le user final (après mapping de l'alias).
Ma question était donc de savoir comment interroger un service via cette
commande de postfix en choississant sa variable à envoyer. Je n'arrive
pas à lier le "check_policy_service inet" à une requête SQL, ni même
comment passer une variable en valeur.
La rustine employée fonctionne bien, mais je me demandais comment faire
fonctionner la méthode telle que conseillée dans les fichiers de conf
sur Jessie ...
Merci.
Samuel.
Reply to: