On Thu, Feb 24, 2011 at 09:26:59AM +0000, Jonathan Tripathy wrote:
> I have a postfix box which handles some smtp accounts for example.com. Not
> all example.com accounts are located on this postfix box, but are located
> elsewhere on another server.
>
> At the minute, for the accounts which aren?t on this server, postfix is
> saying "user unknown in virtual mailbox table" (which is to be expected).
> However, how do I make postfix go to another server, if at first the
> account isn't on this server?
Add virtual aliases:
main.cf:
indexed = ${default_database_type}:${config_directory}/
virtual_alias_maps = ${indexed}virtual
transport_maps = ${indexed}transport
virtual:
[email protected] [email protected]
transport:
# Omit [] if the remote domain is MX-record based
remote-server.example.com relay:[remote-server.example.com]
you're done if the remote server can handle the resulting address form.
If not, you rewrite the address back to the original for en-route:
main.cf:
relay_generic_maps = ${indexed}relay_generic
generic:
[email protected] [email protected]
master.cf:
relay unix - - n - - smtp
-o smtp_fallback_relay=
-o smtp_generic_maps=${foo_generic_maps}
The other option is identity mappings in the virtual alias table, and
per-user transport entries (which I don't recommend since this usually
forces the transport table into database, but it is best left a local
indexed file).
--
Viktor.