Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

IMAP allows you to access the folder heirarchy and all emails on a given account.

There was a serverfault (pun intended) with our primary email servers and so we have to shift all email accounts to the new system. I'm using Shared hosting so not really possible to run command line.

Is it possible to connect to all accounts, get messages via IMAP in bulk, and then use IMAP with the new email server to upload all those messages back? Provided the email accounts are created..

share|improve this question
You can get the emails via IMAP, but you can not upload the emails via IMAP. IMAP can be used only to retrieve the emails from the server not sending to a server. – Khaled Nov 11 '10 at 17:07
@Khaled-you can put emails into the mail server with IMAP, since it's just shifting messages in a storage area on the server itself (unlike POP). If you create two IMAP accounts with something like Thunderbird, then drag messages from the inbox on server A to server B, voila' just moved them from one server to another over IMAP. It's not an MTA type of transfer, but IMAP can be used for moving messages between two servers. – Bart Silverstrim Nov 11 '10 at 17:28
up vote 1 down vote accepted

Larch is an alternative to imapsync that works just as swimmingly. With a working Ruby environment, installation is as simple as:

gem install larch

To migrate dozens of mailboxes from one server to another, you might create a script that looks something like:



function pullmail {
    larch \
        --all \
        --from imaps:// \
        --from-pass "$2" \
        --from-user "$1" \
        --max-retries 20 \
        --to imaps:// \
        --to-pass "$2" \
        --to-user "$1"

PS4='\t+ '
set -x

pullmail alice password1
pullmail bob password2
[…and so on…]

Then you might run it with: ./ 2>&1 >> pullmail-$(date +%Y%m%d%H%M).log &. Once complete, you can review the log to address any email that might have had trouble syncing. With luck, all the mail in every folder and in every account will have been copied from the old server to the new.

Also, Larch is smart enough to keep track of what mail it has already synced, so it is safe to re-run the sync again and again until you are satisfied.

You’ll want to consult the documentation to fully understand what is going on. There is also a support forum in case you run into any issues.

share|improve this answer

There's a utility called imapsync which will do exactly what you've described.

share|improve this answer
Agreed - I've used imapsync many times and it works very well. – EEAA Nov 11 '10 at 18:18

I found IMAP Migration Tool written in PHP is a better and easier to use alternative.

Whereas the ImapSync app has to be paid for, $15.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.