I don't know imapsync nor mailsync but I think something like rsync just for IMAP may be a good solution. You can presync the large amount of data sometime before actually migrating the server. Then, before finally switching the server, resyncing should be quite fast. Loosing flags is really not acceptable in many environments.
Imap-sync can do exactly what you described. I've tried it out. Sounds good in theory. Not so good in practice. It is faster, but it still takes a lot of time. Still too slow for moving very large quantities of email. In my example, two day work would be cut to half a day, maybe even an entire day. And my user base isn't really that large (it is just that some of them have huge mailboxes). Again, there's that small password problem (you need to know all your user's passwords or reset them).
Plus, with one IMAP server (wu-imapd to be more specific) imap-sync didn't play all that good if the users were allowed to be logged in while it was syncing mailboxes. If the user had folder open from his email client, sometimes imap-sync wasn't able to read flags on some of the messages. Not sure if it was bug in imap-sync, Perl IMAP module, or wu-imapd.
Users might not like loosing the flags, but sometimes there's no way around it. The only alternative would be moving using sctips, and than recreating just the flags using some custom made Perl script as background process (imap-sync can't be used reliably for this in general case). There are still problems with this (for example, you transfer an message, user marks it as unseen on new server, and than you reflag it as seen since that was the way it was on old server - something to keep in mind and warn users beforehand).
-- Aleksandar Milivojevic <[EMAIL PROTECTED]> Pollard Banknote Limited Systems Administrator 1499 Buffalo Place Tel: (204) 474-2323 ext 276 Winnipeg, MB R3T 1L7 --- Cyrus Home Page: http://asg.web.cmu.edu/cyrus Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html