Community Blog Migrate Mailboxes Easily with Imapsync on Alibaba Cloud

Migrate Mailboxes Easily with Imapsync on Alibaba Cloud

In this tutorial, you learn how to migrate mailboxes from one Alibaba Cloud ECS server to another using Imapsync.

By Sajid Qureshi, Alibaba Community Blog author.

In this tutorial, you will be migrating mailboxes from one Alibaba Cloud ECS server to another one using Imapsync.

For a bit of background knowledge, websites are very easy to migrate, but migrating the mailboxes of your email actually be rather troublesome. This is especially when two servers are not using the same software.

In such cases, it's very difficult to migrate email boxes. However, for these cases, Imapsync is the perfect solution, as it makes it possible to synchronize mailboxes using the IMAP protocol.


For this tutorial, you'll need the following items:

  1. You'll need a new Alibaba Cloud Elastic Compute Service (ECS) instance activated, and you must have verified a valid payment method. If you are a new user, you can get a free account. And, if you don't know how to set up your ECS instance, you can refer to this tutorial or this quick-start guide. For this tutorial, your ECS instance must have at least 1GB RAM and 1 Core processor. Of course, also, for this tutorial, you should already have a ECS instance with a mailbox--the one that you're migrating from.
  2. A user with sudo privileges

Update Your System

For this tutorial, it's recommended that you upgrade all your available packages and repositories before installing any new packages on your system. To do so, run the sudo yum -y update command.

Setting up All the Things

For this tutorial, you'll need to install EPEL repository before installing IMAP on your system. So, let's install the EPEL repository to your system using the sudo yum install epel-release command.

Next, you'll need to install some required dependencies to run Imapsync. To do this, run the following command.

sudo yum install perl-App-cpanminus \
perl-Dist-CheckConflicts \
perl-HTML-Parser \
perl-libwww-perl \
perl-Module-Implementation \
perl-Module-ScanDeps \
perl-Package-Stash \
perl-Package-Stash-XS \
perl-PAR-Packer \
perl-Regexp-Common \
perl-Sys-MemInfo \
perl-Test-Fatal \
perl-Test-Mock-Guard \
perl-Test-Requires \
perl-Test-NoWarnings \
perl-Test-Deep \
perl-Test-Warn \

Once all the required packages are installed, you can proceed to download Imapsync from its official Git repository. Run the following command to clone the latest Imapsync code:

git clone https://github.com/imapsync/imapsync.git

Next, change your current directory to this newly cloned repository and install it with the following commands. Run these one-by-one.

cd imapsync
mkdir -p dist
sudo make install

You can verify this installation and check the version of Imapsync using the imapsync -v command.

Syncing the Emails

Now that you've installed Imapsync on your server, you're ready to migrate your mailboxes. The syntax used for syncing emails from one server to another one is shown below. Note that it make take some time for this command to process

imapsync --host1 server1.imap.tld --user1 mailbox@email.tld --
password1 password1  --host2 server2.imap.tld --user2
 mailbox@email.tld --password2 password2

You can store passwords in files and use the --passfile1 and --passfile2 arguments to load them from the files containing the passwords. This can be useful as it avoids entering plain text mailbox passwords, saving your time.

imapsync --host1 server1.imap.tld --user1 mailbox@email.tld --
passfile1 /home/user/pass1 --host2 server2.imap.tld --user2
 mailbox@email.tld --passfile2 /home/user/pass2

Connecting to the IMAP Server

There are several different options available for connecting Imapsync to your mail server. By default, Imapsync will try to use SSL or TLS on port 993 to connect. Some examples are given below for the connection on the server to migrate.

  • --nossl1: For an unencrypted connection via port 143
  • --ssl1: For an encrypted connection with SSL via port 993
  • --tls1: To connect with TLS via port 993

You can also define the type of authentication, is specified with the --authmech1 and --authmech2arguments. The possible values for these arguments can be PLAIN, LOGIN, CRAM-MD5.

If the default folders like Inbox, Sent, and, Spam are not named with the same name on both mail servers, then folder synchronization can be difficult. Some of the options to fix things offered by Imapsync are shown below.

  1. You can use --automap option to use the automatic default folder
  2. You can use --prefix1 option to remove a prefix from the folders to migrate.
  3. You can use --prefix2 option to add a prefix to migrated folders.
  4. You can use --nomixfolders option to avoid merging folders with a similar name according to case sensitivity.

You can speed up your email migration using the --usecache argument to temporarily store the folders. Finally, before starting your migration, do not hesitate to use the --dry argument to check the result of a command, without running it.


In this tutorial, you have migrated mailboxes from one ECS server to another using Imapsync.

0 0 0
Share on

Alibaba Clouder

1,938 posts | 433 followers

You may also like