If you want to merge 2 zimbra mailboxes, you can simply export the source mailbox and import it to the target mailbox. This can be easilly achieved with a couple of zimbra commands.
- SSH into your zimbra server.
- Change to zimbra server:
su - zimbra
- Now type:
/opt/zimbra/bin/zmmailbox -z -m [email protected] getRestURL "//?fmt=tgz" > /tmp/temp.tgz && /opt/zimbra/bin/zmmailbox -z -m [email protected] postRestURL "//?fmt=tgz&resolve=modify" /tmp/temp.tgz
This is actually two commands in one line: first export to temp.tgz and, if export is successfull (&&), import to target mailbox.
If the old mailbox is big you may encounter the following error:
ERROR: zclient.IO_ERROR (Read timed out) (cause: java.net.SocketTimeoutException Read timed out)
This is because the programmers of zmmailbox command have set a default timeout to avoid endless execution. Luckily for us, they have also supplied zmmailbox with the t option which let us specify the amount of time before the timeout error occurs. An infinite timeout is set with
-t 0. So you may now want to rewrite the command like this:
/opt/zimbra/bin/zmmailbox -z -t 0 -m [email protected] getRestURL "//?fmt=tgz" > /tmp/temp.tgz && /opt/zimbra/bin/zmmailbox -z -t 0 -m [email protected] postRestURL "//?fmt=tgz&resolve=modify" /tmp/temp.tgz
Initially we have found the the idea in zimbra forums (https://forums.zimbra.org/viewtopic.php?t=62378) and we have also tried it many times in our own servers, especially with merging some multi giga byte accounts we manage and host.