The Split Domain wiki clearly states for your scenario (Zimbra primary, other secondary) that you need to create corresponding accounts on the Zimbra system for all accounts that will live on the secondary server. You then use the 'zmprov' command specified in the wiki to modify the 'zimbraMailTransport' setting for these accounts.

Yes, you have to have enough account licenses for everyone if you want to use Z as the primary.

I concur: you're going to need to run Z as the secondary, or find a way to wire the extra forwards into Postfix directly on a Z primary.

Jay R. Ashworth - ZCS 6.0.9CE/CentOS5 - St Pete FL US - Music - Blog - Photography - IANAL - IAAMATry to Ask Questions The Smart Way -- you'll get better answers.
Put your product and version in your profile/signature - All opinions strictly my own, even though I have an employer these days.
If you [SOLVE] something, please tell everyone how for the archives
And, please... read what people write, and answer the questions they asked, not the ones they didn't.

Not sure about this on a Zimbra system, but on a plain Postfix system you can use the transport table to do something like this. You can put an entry like this in the table:jdoe@domain.com smtp:[secondary.domain.com]

Again, not sure how this integrates into a Zimbra system. The other thing you'll have to look at is whether or not you can set up the system to accept messages for accounts that don't exist locally.

I'm currently tackling a similar split domain relay problem myself, though for different reasons.

I've got Zimbra CE as MTA hosting a bunch of accounts as well as an Exchange box behind it.

The Wiki for split domains worked faily well for me (as long as the domains used by the two servers are separate), with the exception of backscatter. The catch-alls let the emails through to the Exchange box only to bounce, which results in backscatter (and server bans T_T).

Creating duplicate accounts in Zimbra is a little impractical (having to keep it constantly syncronized, multiple aliases in Exchange, etc).

My research and experiments the past week has resulted in a little hack:
- collect all the addresses used by Exchange using the perl getadsmtp.pl script that floats around the net.
- create files from this data for used by postfix transport maps and virtual mailboxes
eg. xxx@example.com smtp:mail2.example.com

update postfix_virtual_mailbox_maps and postfix_transport_maps to look at this file in addition to what they are checking now. Purge the catch-alls from Zimbra (because they will stop this from working properly).

Doing it like this ends up with a missing virtual mailbox error when an unknown address is used, but no bounce email will result.

Is this method normal for such situations, or is there a better way to do this?