On Wed, Apr 08, 2015 at 11:51:03AM +0300, Jonathan Bees wrote:
> I have one domain - example.com. And I'd like to have user mailboxes on two
> separate machines (policy differences), but ran into a problem with sending
> emails from a user on one machine to users on the other machine.
> The error message : 550 5.1.1 <[email protected]>: Recipient address
> rejected: User unknown in local recipient table
Both machines must accept all users in the domain.
> Partial postconf output:
> alias_maps = mysql:/etc/postfix/mysql-alias.cf
> mailbox_transport = cyrus
> mydestination = example.com, localhost.example.com, localhost,
> mysql:/etc/postfix/mysql-mydestination.cf
> myorigin = /etc/mailname
Looks like the split domain is "local". If such a domain is "local"
to multiple hosts, you need to use an aliases table that lists all the
users:
aliases:
user1: [email protected]
user2: [email protected]
...
where host1 is listed in mydestination on host1, but not on host2,
and conversely host2 is in mydestination on host2, but on host1.
mydestination =
$myhostname,
example.com,
localhost.example.com,
localhost,
mysql:/etc/postfix/mysql-mydestination.cf
Alternatively, (and I what I actually recommend) you can make the
example.com domain be a virtual alias domain, and use virtual alias
maps to rewrite recipient addresses:
virtual:
[email protected] [email protected]
[email protected] [email protected]
Then on each host:
mydestination =
$myhostname,
localhost.example.com,
localhost,
# possibly instead the mysql domains become virtual
mysql:/etc/postfix/mysql-mydestination.cf
virtual_alias_domains =
example.com
# possibly the mysql domains become virtual
# mysql:/etc/postfix/mysql-virtual-domains.cf
> receive_override_options = no_address_mappings
Not generally a good idea as a global setting. What are you doing with that?
> transport_maps = hash:/etc/postfix/transport
> virtual_alias_maps =
> mysql:/etc/postfix/mysql-virtual.cf,
> mysql:/etc/postfix/mysql-virtual-example.cf,
> hash:/etc/postfix/virtual
Generally, list the indexed first, those queries are faster.
> Hoping someone knows a good way to send all unknown recepients in local
> tables (referred by mysql-virtual.cf) to a smarthost (192.168.1.1), which
> would decide whether to forward this to the remote server or answer with a
> bounce message.
No need to route through the smarthost if this is an MTA hosting mailboxes.
Only punt to the smarthost from null-client machines that punt everything.
--
Viktor.