For the most part mail forwarding is not too common within my Infrastructure. With Sieve deployed in my environment using the ManageSieve protocol - mail users are able to easily setup a redirect to their preferred email address. This all works fine, but I also wanted to have the ability to setup mail forwarding directly within OpenLDAP.
Today I went ahead and pushed a commit for postfix-book.schema to include a
mailForwardingAddress attribute. The existing
PostfixBookMailForward objectClass contains our
mailForwardingAddress attribute, respectively.
Assuming the schema is loaded into your environment, we can now tell Postfix to use LDAP mail forwarding.
We can create
/etc/postfix/ldap with something like
server_host = ldap://ldap.example.com/ search_base = ou=Mail,dc=example,dc=com version = 3 bind = no query_filter = (&(|(mailAlias=%s)(mail=%s))(objectClass=PostfixBookMailForward)) result_attribute = mailForwardingAddress
query_filter will match a user's primary mail address or any mail aliases while the
result_attribute is the forwarded email address.
main.cf file should have the
ldap-forward.cf file defined in
virtual_alias_maps = ldap:/etc/postfix/ldap/ldap-aliases.cf,ldap:/etc/postfix/ldap/ldap-groups.cf proxy:ldap:/etc/postfix/ldap/ldap-forward.cf
To verify mail forwarding we can see that our forwarded email address does get returned when querying the primary or alias email address.
postmap -q me@example ldap:/etc/postfix/ldap/ldap-forward.cf forwarduser@somewhere