2012-11-26 20:59:00 UTC
I've had an LDAP table in main.cf configured for a number of years containing the following filter, and this has worked fine. The filter matches all email addresses that should be delivered anywhere except for the local server:
ldapremote_query_filter = (&(|(mail=%s)(mailAlternateAddress=%s))(!(mailHost=$myhostname)))
I have since tried to update the LDAP table configuration to use separate files as recommended by the docs, for example ldap:/etc/postfix/remove.cf, and after doing so delivery fails with a mail loop. It turns out using the new LDAP table syntax the value of "myhostname" is no longer parsed and the string is passed through to the LDAP query unmodified:
[26/Nov/2012:22:26:29 +0200] conn=38950 op=459 SRCH base="dc=a,dc=a,dc=a" scope=2 filter="(&(|(email@example.com)(mailAlternateAddressfirstname.lastname@example.org))(!(mailHost=$myhostname)))" attrs="mailHost"
Is this a problem anyone has picked up before?
I am currently using postfix-2.3.3-2.3.el5_6 as published by RHEL5.