From Zimbra :: Wiki
Mailbox Move (Open Source Edition)
As an example, we have a two server setup mail1.example.com & mail2.example.com. One should be able to move firstname.lastname@example.org from mail1.example.com to mail2.example.com as below. In the following steps, all commands are executed on mail1.example.com
1) Export email@example.com with zmmailbox:
zmmailbox -z -m firstname.lastname@example.org getRestURL "//?fmt=tgz&query=is:anywhere" >/email@example.com
2) Change account setting as below:
zmprov -l ma firstname.lastname@example.org zimbraMailHost mail2.example.com
zmprov -l ma email@example.com zimbraMailTransport lmtp:mail2.example.com:7025
3) Import firstname.lastname@example.org to mail2.example.com with zmmailbox:
zmmailbox -u https://mail2.example.com:7071 -a email@example.com -p yourpasswd -m firstname.lastname@example.org postRestURL "//?fmt=tgz&resolve=reset" /email@example.com
4) Delete firstname.lastname@example.org MySQL records, also delete /opt/zimbra/store/0/$mailbox_id, /opt/zimbra/index/0/$mailbox_id. $mailbox_id can be found in MySQL table zimbra.mailbox
Please note after this move share references to email@example.com folders won't work, which means firstname.lastname@example.org will have to share his folders to others again.
I haven't written a script for step 4 yet. I'll post a script after I get it work for me.