I think: http://www.postfix.org/VIRTUAL_README.html
Might be missing a statement about transport_maps where there is
commonly an entry in setups requiring a forward to an ISP's smtp
server like:
$ cat transport
* smtp:[smtp.myisp.com]:587
Or similar catch-all line. The trivial-rewrite engine will promote a
virtual mailbox destination to use smtp transport in this case,
overriding previous successful lookups in virtual_mailbox_domains and
virtual_mailbox_maps.
E.g.
virtual_mailbox_base = /var/mail/box
virtual_mailbox_domains = ldap:.../postfix/root/conf/ldap-virtual-
mailbox-domains.cf
virtual_mailbox_maps = ldap:.../postfix/root/conf/ldap-virtual-mailbox-
maps.cf
transport_maps = hash:.../postfix/root/conf/transport
Send an email to some...@somedomain.com where both are looked up in
ldap-virtual-mailbox tables and at the end of processing the rewrite,
the log says:
Jun 23 14:40:36 exy main/trivial-rewrite[15911]: dict_ldap_lookup:.../
postfix/root/conf/ldap-virtual-mailbox-domains.cf: Searching with
filter (&(objectClass=domainRelatedObject)
(associatedDomain=somedomain.com))
Jun 23 14:40:36 exy main/trivial-rewrite[15911]: dict_ldap_get_values
[1]: Search found 1 match(es)
Jun 23 14:40:36 exy main/trivial-rewrite[15911]: dict_ldap_get_values
[1]: search returned 1 value(s) for requested result attribute
associatedDomain
Jun 23 14:40:36 exy main/trivial-rewrite[15911]: dict_ldap_get_values
[1]: Leaving dict_ldap_get_values
Jun 23 14:40:36 exy main/trivial-rewrite[15911]: dict_ldap_lookup:
Search returned somedomain.com
Jun 23 14:40:36 exy main/trivial-rewrite[15911]: maps_find:
transport_maps: some...@somedomain.com: not found
Jun 23 14:40:36 exy main/trivial-rewrite[15911]: maps_find:
transport_maps: somedomain.com: not foundJun 23 14:40:36 exy main/
trivial-rewrite[15911]: maps_find: transport_maps: .com: not found
Jun 23 14:40:36 exy main/trivial-rewrite[15911]:
`somes...@sourcedomain.com' -> `some...@somedomain.com' -> (`smtp' `
[smtp.myisp.com]:587' `
some...@somedomain.com' `1024')
Jun 23 14:40:36 exy main/trivial-rewrite[15911]: send attr flags = 0
Jun 23 14:40:36 exy main/trivial-rewrite[15911]: send attr transport =
smtp
Jun 23 14:40:36 exy main/trivial-rewrite[15911]: send attr nexthop =
[smtp. myisp.com]:587
Jun 23 14:40:36 exy main/trivial-rewrite[15911]: send attr recipient =
some...@somedomain.com
This could be resolved by entering all virtual_domains manually into
the transport file with a virtual: column, but I think I'll try
prefixing the hash:transport lookup with a virtual_mailbox domain
search that returns virtual: for all found domains.
Thanks,
Greg