# grep alias /etc/postfix/main.cf |grep maps
alias_maps = ldap:/etc/postfix/ldap-aliases.cf
local_recipient_maps = $alias_maps
De rechercher ces alias comme on lui a dis :
# cat /etc/postfix/ldap-aliases.cf
server_host = willou.net
search_base = ou=people,o=willou,c=net
query_filter = (&(objectClass=mailRecipient)(mail=%s))
domain = willou.net, salsa-nantes.com
result_attribute = mailRoutingAddress
bind_dn = uid=proxyuser,o=willou,c=net
bind_pw = xxxxxxxx
sauf que même avec une réponse positive sur la requête sur l'annuaire il me répond grossièrement «Recipient address rejected: User unknown in local recipient table» :
Feb 9 00:28:11 willou postfix/smtpd[9485]: connect from postfix3-2.free.fr[213.228.0.169]
Feb 9 00:28:11 willou slapd[8422]: conn=331 fd=33 ACCEPT from IP=82.231.146.58:34364 (IP=0.0.0.0:389)
Feb 9 00:28:12 willou slapd[8422]: conn=331 op=0 BIND dn="uid=proxyuser,o=willou,c=net" method=128
Feb 9 00:28:12 willou slapd[8422]: conn=331 op=0 BIND dn="uid=proxyuser,o=willou,c=net" mech=SIMPLE ssf=0
Feb 9 00:28:12 willou slapd[8422]: conn=331 op=0 RESULT tag=97 err=0 text=
Feb 9 00:28:12 willou slapd[8422]: conn=331 op=1 SRCH base="ou=people,o=willou,c=net" scope=2 filter="(&(objectClass=mailRecipient)(mail=david@salsa-nantes.com))"
Feb 9 00:28:12 willou slapd[8422]: conn=331 op=1 SRCH attr=mailRoutingAddress
Feb 9 00:28:12 willou slapd[8422]: conn=331 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=
Feb 9 00:28:12 willou postfix/smtpd[9485]: NOQUEUE: reject: RCPT from postfix3-2.free.fr[213.228.0.169]: 450 <david@salsa-nantes.com>: Recipient address rejected: User unknown in local recipient table; from=<willou@willou.net> to=<david@salsa-nantes.com> proto=ESMTP helo=<postfix3-2.free.fr>
Feb 9 00:28:12 willou postfix/smtpd[9485]: disconnect from postfix3-2.free.fr[213.228.0.169]
Feb 9 00:28:12 willou postfix/smtpd[9485]: connect from xxxx.xxxxxxxxx.xxx[xxx.xx.xxx.xx]
Feb 9 00:28:13 willou slapd[8422]: conn=331 op=2 SRCH base="ou=people,o=willou,c=net" scope=2 filter="(&(objectClass=mailRecipient)(mail=david@salsa-nantes.com))"
Feb 9 00:28:13 willou slapd[8422]: conn=331 op=2 SRCH attr=mailRoutingAddress
Feb 9 00:28:13 willou postfix/smtpd[9485]: NOQUEUE: reject: RCPT from xxxx.xxxxxxxxxx.xxx[xxx.xx.xxx.xx]: 450 <david@salsa-nantes.com>: Recipient address rejected: User unknown in local recipient table; from=<willou@willou.net> to=<david@salsa-nantes.com> proto=ESMTP helo=<xxxxx.xxxx.xxxxxxxxx.xxx>
Feb 9 00:28:13 willou slapd[8422]: conn=331 op=2 SEARCH RESULT tag=101 err=0 nentries=1 text=
Feb 9 00:28:13 willou postfix/smtpd[9485]: disconnect from xxxx.xxxxxxxxx.xxx[xxx.xx.xxx.xx]
Je me demande donc, comme il est possible qu'avec une réponse positive, Posftix n'accepte pas le mail. Je suis en quête de piste pour trouver ma solution.
La même requête ldap que celle émise par le serveur mail :
]# ldapsearch -x -b 'ou=people,o=willou,c=net' -H ldap://localhost -D "uid=proxyuser,o=willou,c=net" -w xxxxxxxxx "(&(objectClass=mailRecipient)(mail=david@salsa-nantes.com))"
# extended LDIF
#
# LDAPv3
# base <ou=people,o=willou,c=net> with scope sub
# filter: (&(objectClass=mailRecipient)(mail=david@salsa-nantes.com))
# requesting: ALL
#
# willou, people, willou, net
dn: uid=willou,ou=people,o=willou,c=net
cn: willou
gidNumber: 2000
givenName: David
homeDirectory: /home/willou
loginShell: /bin/bash
objectClass: top
objectClass: person
objectClass: posixAccount
objectClass: shadowAccount
objectClass: inetOrgPerson
objectClass: mailRecipient
shadowExpire: -1
shadowFlag: 0
shadowInactive: -1
shadowMax: 999999
shadowMin: -1
shadowWarning: 7
sn:: Qk9VQ0jDiQ==
uid: willou
uidNumber: 2000
mailForwardingAddress: willou@willou.net
mail: willou@willou.net
mail: msn@willou.net
mail: david@salsa-nantes.com
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
Merci pour les éventuelles pistes. Je puis vous apporter de plus amples renseignements au besoin. (Une fois mon installation complète des documentations -sous licences libres- seront publiées sur Willou.Net sur un SPIP prochainement ouvert).
# local_recipient
Posté par wetwilly . Évalué à 1.
Indique a postfix quels destinataires sont valides:
local_recipient_maps = proxy:unix:passwd.byname $alias_maps
->rtfm: http://x.guimard.free.fr/postfix/index.php?page=postconf.5.html#loc(...)
[^] # Re: local_recipient
Posté par Willou (site web personnel) . Évalué à 1.
Posftix arrive donc à présent à parler à mon annuaire, mais ne «réécrit» pas le mail de destination.
Sur un mail envoyé à david@salsa-nantes.com, il devrait le transmettre à willou@willou.net (et réécrire l'entête) tel que cela a été déclaré dans mon annuaire :
dn: uid=willou,ou=people,o=willou,c=net
cn: willou
objectClass: mailRecipient
mailForwardingAddress: willou@willou.net
mail: willou@willou.net
mail: msn@willou.net
mail: david@salsa-nantes.com
Malheureusement se passe, à présent, ce qui suit :
Feb 9 10:28:45 willou amavis[5327]: (05327-10) Passed CLEAN, [193.252.22.29] [82.126.67.177] <willou@willou.net> -> <david@salsa-nantes.com>, Message-ID: <4209D7C0.1070102@willou.net>, Hits: 0
Feb 9 10:28:45 willou postfix/qmgr[17079]: ACAFF6BCA3: from=<willou@willou.net>, size=1519, nrcpt=1 (queue active)
Feb 9 10:28:45 willou postfix/smtp[17194]: 73B636BCA1: to=<david@salsa-nantes.com>, relay=127.0.0.1[127.0.0.1], delay=8, status=sent (250 2.6.0 Ok, id=05327-10, from MTA: 250 Ok: queued as ACAFF6BCA3)
Feb 9 10:28:45 willou postfix/qmgr[17079]: 73B636BCA1: removed
Feb 9 10:28:45 willou lmtpunix[17156]: accepted connection
Feb 9 10:28:45 willou lmtpunix[17156]: lmtp connection preauth'd as postman
Feb 9 10:28:45 willou cyrus-master[17200]: about to exec /usr/lib/cyrus-imapd/lmtpd
Feb 9 10:28:45 willou lmtpunix[17156]: verify_user(user.david) failed: Mailbox does not exist
Feb 9 10:28:45 willou lmtpunix[17200]: executed
Feb 9 10:28:47 willou postfix/pipe[17198]: ACAFF6BCA3: to=<david@salsa-nantes.com>, relay=cyrus-deliver, delay=2, status=bounced (data format error. Command output: david: Mailbox does not exist )
Je n'ai pas trouvé dans la documentation de postfix sur la gestion des alias LDAP comment procéder. J'espère donc qu'un hérudit saura me venir en aide. Je continue ma quête !
[^] # Re: local_recipient
Posté par Thomas Hervé . Évalué à 2.
Dans ta première configuration, la configuration de Postfix est bonne mais tu ne renseignes pas l'attribut mailRoutingAddress dans ton utlisateur, ca ne peut donc pas marcher.
Ensuite tu sembles avoir changé cette atttribut par mailForwardingAddress (pas forcement judicieux), mais qu'as tu mis dans la configuration de Postfix ? Vu le problème que tu as, je dirais que tu as mis un "result_attribute = mail", qui fait que la réécritute n'a pas lieu.
Vu ta configuration tu devrais peut-être regarder du coté du mode virtual de postfix qui pourrait gérer mieux tout ca.
Dernière pettite chose : la norme LDAP pour un DIT root c'est dc=willou, dc=net et pas o=willou, c=net. "c" est utilisé pour Country, tu imagines bien que "net" n'est pas (encore) un pays :).
--
Thomas
[^] # Re: local_recipient
Posté par Willou (site web personnel) . Évalué à 1.
Voici mes fichiers de configuration :
# postconf |grep "^alias_maps"
alias_maps = ldap:/etc/postfix/ldap-aliases.cf
# cat /etc/postfix/ldap-aliases.cf
server_host = willou.net
search_base = ou=people,o=willou,c=net
query_filter = (&(objectClass=mailRecipient)(mail=%s))
domain = willou.net, willou.org, inea.info, lab44.inea.info, salsa-nantes.com
result_attribute = mailForwardingAddress
bind_dn = uid=proxyuser,o=willou,c=net
bind_pw = Thie6eek
version = 3
Après vérification Postfix pose bien la bonne question à mon annuaire qui lui répond qu'il a effectivement trouvé la bonne réponse :
Feb 15 20:52:56 willou slapd[4824]: conn=582 op=2 SRCH base="ou=people,o=willou,c=net" scope=2 filter="(&(objectClass=mailRecipient)(mail=david@salsa-nantes.com))"
Feb 15 20:52:56 willou slapd[4824]: conn=582 op=2 SRCH attr=mailForwardingAddress
Feb 15 20:52:56 willou slapd[4824]: conn=582 op=2 SEARCH RESULT tag=101 err=0 nentries=1 text=
J'en veux pour preuve :
# ldapsearch -x -b 'ou=people,o=willou,c=net' -D "uid=proxyuser,o=willou,c=net" -w Thie6eek "(&(objectClass=mailRecipient)(mail=david@salsa-nantes.com))" mailForwardingAddress -LLL
dn: uid=willou,ou=people,o=willou,c=net
mailForwardingAddress: willou@willou.net
Je ne vois donc pas ce qui cloche & pourquoi Postfix ne redirige pas le mail.
Voici donc l'erreur que j'ai de retournée (dans le mail de non distribution) :
<david@salsa-nantes.com>: data format error. Command output: david: Mailbox does not exist
Au niveau des logs voici ce que cela dis :
Feb 15 21:04:46 willou lmtpunix[7582]: verify_user(user.david) failed: Mailbox does not exist
Pour infos j'utilise Cyrus-imap :
# postconf |grep ^local_transport
local_transport = cyrus-deliver
grep ^cyrus-deliver /etc/postfix/master.cf
cyrus-deliver unix - n n - - pipe user=cyrus argv=/usr/lib/cyrus-imapd/deliver -r ${sender} -m ${extension} ${user}
Si vous pensez qu'avec d'autres informations vous pouvez m'aider je vous les fournirais avec joie.
[^] # Re: local_recipient
Posté par Thomas Hervé . Évalué à 2.
Je crois que j'ai trouvé ton problème :
http://www.postfix.org/aliases.5.html.(...)
Soit : "The aliases(5) table provides a system-wide mechanism to redirect mail for local recipients. The redirections are processed by the Postfix local(8) delivery agent."
Il faut utiliser local comme local_transport si tu veux utiliser les alias. Deux possibilités :
- Tu utilises les virtual_alias (je trouve ca plus propre quand tu heberges plusieurs domaines)
- Tu définis ton tranport avec local et tu fais une mailbox_transport avec cyrus
--
Thomas
[^] # Re: local_recipient
Posté par Willou (site web personnel) . Évalué à 1.
Merci beaucop, je fait quelques tests & d'ici quelques jours je pondrais un article sur le sujet sur http://inea.info(...) .
P.S: Quelques articles sont déjà présent sur ce modeste site internet, je vous invite à me donner votre avis par mail : http://inea.info/auteur.php3?id_auteur=2(...) .
Merci encore.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.