Are you able to access the old server via IMAP? if so probably the easiest solution for migrating over the email would be to use IMAPsync.
I have used the second of the scripts listed here User Migration - Zimbra :: Wiki quite a few times without any issues (once I got it working).
You will need to have IMAP clear text access enabled. In every instance that I have used this I had a small enough user base that I could manually set the passwords on both servers to something known. If you have a large userbase though you might want to modify the imapsync command to use the --authuser1 and --passfile1 options. I am pretty sure that Zimbra supports this. Basically you provide the admin user which then has auth permissions on all other accounts without needing passwords for them.
Your imapsync command will probably look something like this:
A couple of notes on this tool:
imapsync --authuser1 admin@oldserver --passfile1 a file \
--authuser2 admin@newserver --passfile2 a file \
--noauthmd5 --exclude "Junk" --exclude "Contacts" \
--host1 $host1 --user1 $user \
--host2 $host2 --user2 $user2
If your distro has this tool available as a package USE IT. Installing this tool has been my biggest problem every time I have used it.
I have never used the authuser mechanism before but have seen reports of it working ...so see if the command I posted works but it might need some fixing.