Idea #1 --
Simply host both domains on your Zimbra server.
Code:
[zimbra@mail ~]zmprov cd oldmail.org
[zimbra@mail ~]zmprov cd newmail.org
Migrate users intact with accounts named user@oldmail.org however you choose to do that. Then bulk rename them with a script to user@newmail.org and add an alias for user@oldmail.org. Zimbra will catch either address and place it in the users Inbox.
Code:
[zimbra@mail ~]zmprov ra user@oldmail.org user@newmail.org
[zimbra@mail ~]zmprov aaa user@newmail.org user@oldmail.org
Our employees have two email addresses on two domains in our Zimbra server in each account.
Code:
[zimbra@mail ~]$ zmprov ga first.last@domain.tld | grep ^mail:
mail: first.last@domain.tld
mail: first.last@anotherdomain.tld
mail: first@domain.tld
mail: first@anotherdomain.tld
Idea #2 --
We host several domains on our system and split one of them to another domain outside our system. Anyone who isn't a user on Zimbra gets translated with a new domain and forwarded on to another email server.
Code:
[zimbra@mail ~]$ zmprov gd olddomain.tld | egrep "CatchAll|Transport"
zimbraMailCatchAllAddress: @olddomain.tld
zimbraMailCatchAllForwardingAddress: @newdomain.tld
zimbraMailTransport: smtp:mail.newdomain.tld
It's based on the following...
Split Domain - Zimbra :: Wiki
We only do this because we keep some mail and forward the rest. Otherwise the first idea is much easier to implement and troubleshoot.