How To Use Imapsync To Migrate Microsoft 365 To Carbonio | Carbonio CE

In this article, we are going to discuss about the migration process of your email system from M365 to Carbonio CE. To perform this migration process, we are going to use Imapsync (a free, open source tool). You will find this article similar to the “The Ultimate Guide of Google Workspace to Carbonio CE Migration” as they are built on the same concept.

Imapsync can’t migrate Contacts, Calendars, Tasks nor Chat messages. Imapsync only migrates email data.

Working with imapsync

Imapsync works in a simple way. It pulls data from old server and then push it to the new server.

Important Fact:
Imapsync can’t migrate Contacts and Calendars.

You can get tons of articles on the internet about how to install imapsync server. To make it more convenient for you, I am sharing a sample imapsync installation steps.

You can check out this article where we have used containerized imapsync without getting into the hassle of installing it or using any third server.

  • To proceed with this phase you need docker in you system. If your new system comes with a pre-installed docker then it’s fine or you can install it on you own. For example:

If your system does not have docker installed, then while executing next command you will get this error:

root@mail:/opt/zextras/backup/# docker pull gilleslamiral/imapsync
Command 'docker' not found, but can be installed with:
apt install docker.io
root@mail:/opt/zextras/backup/#

Then, you can just install docker using onscreen help.

root@mail:/opt/zextras/backup/# apt install docker.io -y
  • Now install imapsync using the docker container.
root@mail:/opt/zextras/backup/# docker pull gilleslamiral/imapsync
Using default tag: latest
latest: Pulling from gilleslamiral/imapsync
dbba69284b27: Pull complete
35fb588b380d: Pull complete
e6f6bb8e65dc: Pull complete
8b08ccd6df75: Pull complete
Digest: sha256:b871d0653f99b204b2a7dd1777bdfd9881671d1afab8cfa876925d0260b79657
Status: Downloaded newer image for gilleslamiral/imapsync:latest
docker.io/gilleslamiral/imapsync:latest
root@mail:/opt/zextras/backup/#

Note:
Using docker image of imapsync is a smart and convenient way of using imapsync. Let’s take a look at some of it’s benefits:

1. You do not need a third server to install imapsync which reduces the dependency on third server and removes all other factors that can affect your migration process (i.e. interconnection between source server – imapsync server – destination server)
2. You do not want to install the imapsync server into either of your servers (Source or Destination) as it can jeopardize your server configuration.
3. When you are using the containerize version of imapsync, then you do not need to take any hassle to install and configure the imapsync server.

Note:
If you don’t have the credentials of a global administrator you have to create it on the source server. Now, do a test run before executing a massive sync process. Imapsync supports delegated auth login (--authuser1, --authuser2), so it is possible to migrate accounts even without knowing each individual users passwords (using a global administrator credentials).

Preparing Google M365 Account For The Migration

There are few things you need to do to prepare your account for the migration.

  • Go to your Microsoft account’s Security option from the account settings.
  • Select Additional security options. Find App passwords segment and select Create a new app password.
  • Copy and save the newly generated app password your imapsync process.

Preparing Carbonio CE Server For The Migration

  • Collect all email addresses from M365 and create them on Carbonio CE.
  • Collect all email accounts password or reset them temporarily.
  • Check status of all services.
zextras@mail:~$ zmcontrol status
Host mail.example.com
        amavis                  Running
        antispam                Running
        antivirus               Running
        directory-server        Running
        mailbox                 Running
        memcached               Running
        mta                     Running
        opendkim                Running
        proxy                   Running
        service webapp          Running
        service-discover        Running
        stats                   Running
        config service          Running
zextras@mail:~$

Migrate The Service From Old Server To New Server

We need to migrate the service from old server (M365) to new server (Carbonio CE) by changing the MX record. As soon the mail stops landing to the old server (M365), we will start the data migration process using imapsync.

Initiate Migration Process On Imapsync

Write down that imapsync script for each account and recheck them. For example:

docker run --rm gilleslamiral/imapsync imapsync --host1 Source_IMAP_Server --user1 imsilsa26112@outlook.com --password1 qmdfsdfypmlzmugg --host2 Destination_IMAP_Server --user2 sharif@example.com --password2 654321

So let’s execute our script on imapsync server:

docker run –rm gilleslamiral/imapsync imapsync –host1 outlook.office365.com –user1 imsilsa26112@outlook.com –password1 qmdfsdfypmlzmugg –host2 192.168.1.91 –user2 sharif@example.com –password2 654321

Important Notes:
Imapsync supports delegated auth login (--authuser1, --authuser2), so it is possible to migrate accounts even without knowing each individual users passwords (using a global administrator credentials). For example:

./imapsync --host1 imap_server/IP --user1 old_email_address --authuser1 --password1 auth_user1_password
--host2 imap_server/IP --user2 new_email_address --authuser2 --password2 auth_user2_password

As you can see already our Carbonio CE server is receiving messages from old M365 email account.

It continues syncing M365 account emails to Carbonio CE

But the imapsync process is not finished so, we have to wait to get all of our emails.

Meanwhile, if your imapsync server and Carbonio CE server can handle the load of multiple scripts you can run multiple scripts at the same time. But keep an eye on them so you know if anything goes wrong.

Our imapsync process completed. Let’s take a look at the cropped sample output.

root@imapsync:~/imapsync#docker run --rm gilleslamiral/imapsync imapsync --host1 outlook.office365.com --user1 imsilsa26112@outlook.com --password1 shdntiolsmchfgpo --host2 192.168.1.91 --user2 sharif@example.com --password2 654321

[Output]

Here is imapsync 2.200 on host imapsync.example.com, a linux system with 2.8/3.8 free GiB of RAM
with Perl 5.30.0 and Mail::IMAPClient 3.43
Transfer started at Tuesday 06 June 2023-06-06 12:23:19 +0000 UTC
PID is 2422 my PPID is 1879
Log file is LOG_imapsync/2023_06_06_12_23_19_688_imsilsa26112@outlook.com_sharif@example.com.txt ( to change it, use --logfile path ; or use --nolog to turn off logging )
Load is 0.17 0.18 0.18 1/267 on 2 cores
Current directory is /root/imapsync
Real user id is root (uid 0)
Effective user id is root (euid 0)
$RCSfile: imapsync,v $ $Revision: 2.200 $ $Date: 2022/04/04 16:05:55 $
Command line used, run by /usr/bin/perl:
./imapsync --host1 outlook.office365.com --user1 imsilsa26112@outlook.com --password1 MASKED --host2 192.168.1.192 --user2 sharif@example.com --password2 MASKED
Temp directory is /tmp ( to change it use --tmpdir dirpath )
kill -QUIT 2422 # special behavior: call to sub catch_exit
kill -TERM 2422 # special behavior: call to sub catch_exit
kill -INT 2422 # special behavior: call to sub catch_reconnect
kill -HUP 2422 # special behavior: call to sub catch_print
kill -USR1 2422 # special behavior: call to sub toggle_sleep
File /tmp/imapsync.pid does not exist
PID file is /tmp/imapsync.pid ( to change it, use --pidfile filepath ; to avoid it use --pidfile "" )
Writing my PID 2422 in /tmp/imapsync.pid
Writing also my logfile name in /tmp/imapsync.pid : LOG_imapsync/2023_06_06_12_23_19_688_imsilsa26112@outlook.com_sharif@example.com.txt
Modules version list ( use --no-modulesversion to turn off printing this Perl modules list ):
Authen::NTLM         1.09
CGI                  Not installed
Compress::Zlib       2.093
Crypt::OpenSSL::RSA  0.33
Data::Uniqid         0.12
Digest::HMAC_MD5     1.01
Digest::HMAC_SHA1    1.03
Digest::MD5          2.55
Encode               3.01
Encode::IMAPUTF7     1.05
File::Copy::Recursive 0.45
File::Spec           3.78
Getopt::Long         2.5
HTML::Entities       3.69
IO::Socket           1.40
IO::Socket::INET     1.40
IO::Socket::INET6    2.72
IO::Socket::IP       0.39
IO::Socket::SSL      2.067
IO::Tee              0.65
JSON                 4.06
JSON::WebToken       0.10
LWP                  Not installed
MIME::Base64         3.15
Mail::IMAPClient     3.43
Net::Ping            2.71
Net::SSLeay          1.88
Term::ReadKey        2.38
Test::MockObject     1.20200122
Time::HiRes          1.976
URI::Escape          3.31
Unicode::String      2.10

Info: will resync flags for already transferred messages. Use --noresyncflags to not resync flags.
Host1: probing ssl on port 993 ( use --nosslcheck to avoid this ssl probe )
Host1: sslcheck detected open ssl port 993 so turning ssl on (use --nossl1 --notls1 to turn off SSL and TLS wizardry)
Host2: probing ssl on port 993 ( use --nosslcheck to avoid this ssl probe )
Host2: sslcheck detected open ssl port 993 so turning ssl on (use --nossl2 --notls2 to turn off SSL and TLS wizardry)
SSL debug mode level is --debugssl 1 (can be set from 0 meaning no debug to 4 meaning max debug)
Host1: SSL default mode is like --sslargs1 "SSL_verify_mode=0", meaning for host1 SSL_VERIFY_NONE, ie, do not check the server certificate.
Host1: Use --sslargs1 SSL_verify_mode=1 to have SSL_VERIFY_PEER, ie, check the server certificate. of host1
Host2: SSL default mode is like --sslargs2 "SSL_verify_mode=0", meaning for host2 SSL_VERIFY_NONE, ie, do not check the server certificate.
Host2: Use --sslargs2 SSL_verify_mode=1 to have SSL_VERIFY_PEER, ie, check the server certificate. of host2
Info: turned ON syncinternaldates, will set the internal dates (arrival dates) on host2 same as host1.
Host1: will try to use LOGIN authentication on host1
Host2: will try to use LOGIN authentication on host2
Host1: imap connection timeout is 120 seconds
Host2: imap connection timeout is 120 seconds
Host1: imap connection keepalive is on on host1. Use --nokeepalive1 to disable it.
Host2: imap connection keepalive is on on host2. Use --nokeepalive2 to disable it.
Host1: IMAP server [outlook.office365.com] port [993] user [imsilsa26112@outlook.com]
Host2: IMAP server [192.168.1.192] port [993] user [sharif@example.com]
Host1: connecting and login on host1 [outlook.office365.com] port [993] with user [imsilsa26112@outlook.com]
DEBUG: .../IO/Socket/SSL.pm:1177: global error: Undefined SSL object
DEBUG: .../IO/Socket/SSL.pm:1177: global error: Undefined SSL object
Host1 IP address: 40.99.33.178 Local IP address: 192.168.1.102
Host1 banner: * OK The Microsoft Exchange IMAP4 service is ready. [UwBJADEAUABSADAAMgBDAEEAMAAwADAANQAuAGEAcABjAHAAcgBkADAAMgAuAHAAcgBvAGQALgBvAHUAdABsAG8AbwBrAC4AYwBvAG0A]
Host1 capability before authentication: IMAP4 IMAP4rev1 AUTH=PLAIN AUTH=XOAUTH2 SASL-IR UIDPLUS MOVE ID UNSELECT CHILDREN IDLE NAMESPACE LITERAL+ AUTH
Host1: success login on [outlook.office365.com] with user [imsilsa26112@outlook.com] auth [LOGIN] or [LOGIN]
Host2: connecting and login on host2 [192.168.1.192] port [993] with user [sharif@example.com]
DEBUG: .../IO/Socket/SSL.pm:1177: global error: Undefined SSL object
DEBUG: .../IO/Socket/SSL.pm:1177: global error: Undefined SSL object
Host2 IP address: 192.168.1.192 Local IP address: 192.168.1.102
Host2 banner: * OK IMAP4rev1 proxy server ready
Host2 capability before authentication: ACL BINARY CATENATE CHILDREN CONDSTORE ENABLE ESEARCH ESORT I18NLEVEL=1 ID IDLE IMAP4rev1 LIST-EXTENDED LIST-STATUS LITERAL+ MULTIAPPEND NAMESPACE QRESYNC QUOTA RIGHTS=ektx SASL-IR SEARCHRES SORT THREAD=ORDEREDSUBJECT UIDPLUS UNSELECT WITHIN XLIST AUTH=PLAIN I18NLEVEL RIGHTS THREAD AUTH
Host2: success login on [192.168.1.192] with user [sharif@example.com] auth [LOGIN] or [LOGIN]
Host1: state Authenticated
Host2: state Authenticated
Host1 capability once authenticated: IMAP4 IMAP4rev1 AUTH=PLAIN AUTH=XOAUTH2 SASL-IR UIDPLUS MOVE ID UNSELECT CLIENTACCESSRULES CLIENTNETWORKPRESENCELOCATION BACKENDAUTHENTICATE CHILDREN IDLE NAMESPACE LITERAL+ AUTH
Host2 capability once authenticated: IMAP4rev1 ACL BINARY CATENATE CHILDREN CONDSTORE ENABLE ESEARCH ESORT I18NLEVEL=1 ID IDLE LIST-EXTENDED LIST-STATUS LITERAL+ LOGIN-REFERRALS MULTIAPPEND NAMESPACE QRESYNC QUOTA RIGHTS=ektx SASL-IR SEARCHRES SORT THREAD=ORDEREDSUBJECT UIDPLUS UNSELECT WITHIN XLIST I18NLEVEL RIGHTS THREAD
Host1: found ID capability. Sending/receiving ID, presented in raw IMAP for now.
In order to avoid sending/receiving ID, use option --noid
Sending: 4 ID ("name" "imapsync" "version" "2.200" "os" "linux" "vendor" "Gilles LAMIRAL" "support-url" "https://imapsync.lamiral.info/" "date" "04-Apr-2022 16:05:55 +0000" "side" "host1")
Sent 181 bytes
Read:   * ID ("name" "Microsoft.Exchange.Imap4.Imap4Server" "version" "15.20")
        4 OK ID completed
Host2: found ID capability. Sending/receiving ID, presented in raw IMAP for now.
In order to avoid sending/receiving ID, use option --noid
Sending: 4 ID ("name" "imapsync" "version" "2.200" "os" "linux" "vendor" "Gilles LAMIRAL" "support-url" "https://imapsync.lamiral.info/" "date" "04-Apr-2022 16:05:55 +0000" "side" "host2")
Sent 181 bytes
Read:   * ID ("NAME" "Zimbra" "VERSION" "23.5.0_ZEXTRAS_202305" "RELEASE" "carbonio" "USER" "sharif@example.com" "SERVER" "c1200501-3cdb-4608-a8bb-c7b52fe43ffb")
        4 OK ID completed

Host2: QUOTA capability found, presented in raw IMAP on next lines
Sending: 5 GETQUOTAROOT INBOX
Sent 22 bytes
Read:   * QUOTAROOT "INBOX"
        5 OK GETQUOTAROOT completed

Host2: Quota current storage is 0 bytes. Limit is 0 bytes. So 0 % full
Host1: Compression is off. Use --compress1 to allow compression on host1
Host2: Compression is off. Use --compress2 to allow compression on host2
Host1: found 10 folders.
Host2: found 5 folders.
Host1: guessing separator from folder listing: [/]
Host1: separator given by NAMESPACE: [/]
Host2: guessing separator from folder listing: [/]
Host2: separator given by NAMESPACE: [/]
Host1: guessing prefix from folder listing: []
Host1: prefix given by NAMESPACE: []
Host2: guessing prefix from folder listing: []
Host2: prefix given by NAMESPACE: []
Host1: separator and prefix: [/][]
Host2: separator and prefix: [/][]
Including all folders found by default. Use --subscribed or --folder or --folderrec or --include to select specific folders. Use --exclude to unselect specific folders.
Host1: Checking wanted folders exist. Use --nocheckfoldersexist to avoid this check (shared of public namespace targeted).
Host1: Checking wanted folders are selectable. Use --nocheckselectable to avoid this check.
Turned off automapping folders ( use --automap to turn on automapping )

++++ Listing folders
All foldernames are presented between brackets like [X] where X is the foldername.
When a foldername contains non-ASCII characters it is presented in the form
[X] = [Y] where
X is the imap foldername you have to use in command line options and
Y is the utf8 output just printed for convenience, to recognize it.

Host1: folders list (first the raw imap format then the [X] = [Y]):
* LIST (\HasNoChildren) "/" Archive
* LIST (\HasNoChildren \Trash) "/" Deleted
* LIST (\HasNoChildren \Drafts) "/" Drafts
* LIST (\Marked \HasNoChildren) "/" Inbox
* LIST (\HasNoChildren \Junk) "/" Junk
* LIST (\HasNoChildren) "/" Notes
* LIST (\HasNoChildren) "/" Outbox
* LIST (\HasNoChildren \Sent) "/" Sent
* LIST (\HasNoChildren) "/" Uber
* LIST (\HasNoChildren) "/" "Udemy Learning"
19 OK LIST completed.

[Archive]
[Deleted]
[Drafts]
[Inbox]
[Junk]
[Notes]
[Outbox]
[Sent]
[Uber]
[Udemy Learning]

Host2: folders list (first the raw imap format then the [X] = [Y]):
* LIST (\HasNoChildren \Drafts) "/" "Drafts"
* LIST (\HasNoChildren) "/" "INBOX"
* LIST (\NoInferiors \Junk) "/" "Junk"
* LIST (\HasNoChildren \Sent) "/" "Sent"
* LIST (\HasNoChildren \Trash) "/" "Trash"
10 OK LIST completed

[Drafts]
[INBOX]
[Junk]
[Sent]
[Trash]

Folders in host2 not in host1:
[Trash]

Checking SEARCH ALL works on both accounts. To avoid that check, use --nochecknoabletosearch
Host1: checking if SEARCH ALL works on INBOX
Host1: folder [INBOX] has 262 messages mentioned by SELECT
Host1: folder [INBOX] has 262 messages found by SEARCH ALL
Host1: folder [INBOX] has the same messages count (262) by SELECT and SEARCH ALL
Host2: checking if SEARCH ALL works on INBOX
Host2: folder [INBOX] has 0 messages mentioned by SELECT
Host2: folder [INBOX] has 0 messages found by SEARCH ALL
Host2: folder [INBOX] has the same messages count (0) by SELECT and SEARCH ALL
Good! SEARCH ALL works on both accounts.

Folders sizes before the synchronization. It can take some time. Be patient.
You can remove foldersizes listings by using "--nofoldersizes" and "--nofoldersizesatend"
but then you will also lose the ETA (Estimation Time of Arrival) given after each message copy.
Host1 folder    1/10 [Archive]                           Size:    258635 Messages:     1 Biggest:    258635
Host2 folder    1/10 [Archive]                            does not exist yet
Host2-Host1                                                      -258635              -1            -258635

Host1 folder    2/10 [Deleted]                           Size:         0 Messages:     0 Biggest:         0
Host2 folder    2/10 [Deleted]                            does not exist yet
Host2-Host1                                                            0               0                  0

Host1 folder    3/10 [Drafts]                            Size:    182803 Messages:     5 Biggest:     39189
Host2 folder    3/10 [Drafts]                            Size:         0 Messages:     0 Biggest:         0
Host2-Host1                                                      -182803              -5             -39189

Host1 folder    4/10 [Inbox]                             Size:  44633854 Messages:   262 Biggest:    908324
Host2 folder    4/10 [INBOX]                             Size:         0 Messages:     0 Biggest:         0
Host2-Host1                                                    -44633854            -262            -908324

Host1 folder    5/10 [Junk]                              Size:    140418 Messages:     2 Biggest:     76139
Host2 folder    5/10 [Junk]                              Size:         0 Messages:     0 Biggest:         0
Host2-Host1                                                      -140418              -2             -76139

Host1 folder    6/10 [Notes]                             Size:         0 Messages:     0 Biggest:         0
Host2 folder    6/10 [Notes]                              does not exist yet
Host2-Host1                                                            0               0                  0

Host1 folder    7/10 [Outbox]                            Size:         0 Messages:     0 Biggest:         0
Host2 folder    7/10 [Outbox]                             does not exist yet
Host2-Host1                                                            0               0                  0

Host1 folder    8/10 [Sent]                              Size:   2699545 Messages:    38 Biggest:    449549
Host2 folder    8/10 [Sent]                              Size:         0 Messages:     0 Biggest:         0
Host2-Host1                                                     -2699545             -38            -449549

Host1 folder    9/10 [Uber]                              Size:  21373710 Messages:   116 Biggest:    268410
Host2 folder    9/10 [Uber]                               does not exist yet
Host2-Host1                                                    -21373710            -116            -268410

Host1 folder   10/10 [Udemy Learning]                    Size: 167004155 Messages:   743 Biggest:    765123
Host2 folder   10/10 [Udemy Learning]                     does not exist yet
Host2-Host1                                                    -167004155            -743            -765123

Host1 Nb folders:                    10 folders
Host2 Nb folders:                    10 folders

Host1 Nb messages:                 1167 messages
Host2 Nb messages:                    0 messages

Host1 Total size:             236293120 bytes (225.347 MiB)
Host2 Total size:                     0 bytes (0.000 KiB)

Host1 Biggest message:           908324 bytes (887.035 KiB)
Host2 Biggest message:                0 bytes (0.000 KiB)

Time spent on sizing:        10.7 seconds
++++ Looping on each one of 10 folders to sync
ETA: Tuesday 06 June 2023-06-06 12:23:30 +0000 UTC  0 s  1167/1167 msgs left
Folder    1/10 [Archive]                           -> [Archive]
Host1: folder [Archive] has 1 messages in total (mentioned by SELECT)
Creating folder [Archive] on host2
Created folder [Archive] on host2
Host2: folder [Archive] has 0 messages in total (mentioned by SELECT)
Host2: folder [Archive] permanentflags:
Host2: Subscribing to folder Archive
Host1: folder [Archive] considering 1 messages
Host2: folder [Archive] considering 0 messages
Host1: folder [Archive] selected 1 messages, duplicates 0
Host2: folder [Archive] selected 0 messages, duplicates 0
msg Archive/1 {76422}           copied to Archive/258        0.52 msgs/s  38.740 KiB/s 74.631 KiB copied ETA: Tuesday 06 June 2023-06-06 13:00:58 +0000 UTC  2246 s  1166/1167 msgs left
ETA: Tuesday 06 June 2023-06-06 13:01:00 +0000 UTC  2248 s  1166/1167 msgs left
Folder    2/10 [Deleted]                           -> [Deleted]
Host1: folder [Deleted] has 0 messages in total (mentioned by SELECT)
Creating folder [Deleted] on host2
Created folder [Deleted] on host2
Host2: folder [Deleted] has 0 messages in total (mentioned by SELECT)
Host2: folder [Deleted] permanentflags:
Host2: Subscribing to folder Deleted
Host1: folder [Deleted] considering 0 messages
Host2: folder [Deleted] considering 0 messages
Host1: folder [Deleted] selected 0 messages, duplicates 0
Host2: folder [Deleted] selected 0 messages, duplicates 0
ETA: Tuesday 06 June 2023-06-06 13:07:21 +0000 UTC  2629 s  1166/1167 msgs left
Folder    3/10 [Drafts]                            -> [Drafts]
Host1: folder [Drafts] has 5 messages in total (mentioned by SELECT)
Host2: folder [Drafts] has 0 messages in total (mentioned by SELECT)
Host2: folder [Drafts] permanentflags:
Host2: Subscribing to folder Drafts
Host1: folder [Drafts] considering 5 messages
Host2: folder [Drafts] considering 0 messages
Host1: folder [Drafts] selected 5 messages, duplicates 0
Host2: folder [Drafts] selected 0 messages, duplicates 0
msg Drafts/59 {37901}          copied to Drafts/260        0.55 msgs/s  30.456 KiB/s 111.644 KiB copied ETA: Tuesday 06 June 2023-06-06 12:59:09 +0000 UTC  2135 s  1165/1167 msgs left
msg Drafts/62 {37901}          copied to Drafts/261        0.76 msgs/s  37.888 KiB/s 148.656 KiB copied ETA: Tuesday 06 June 2023-06-06 12:48:56 +0000 UTC  1522 s  1164/1167 msgs left
msg Drafts/63 {37901}          copied to Drafts/262        0.95 msgs/s  44.135 KiB/s 185.669 KiB copied ETA: Tuesday 06 June 2023-06-06 12:43:57 +0000 UTC  1223 s  1163/1167 msgs left
msg Drafts/89 {19723}          copied to Drafts/263        1.11 msgs/s  45.297 KiB/s 204.930 KiB copied ETA: Tuesday 06 June 2023-06-06 12:41:06 +0000 UTC  1051 s  1162/1167 msgs left
msg Drafts/98 {37874}          copied to Drafts/264        1.25 msgs/s  50.368 KiB/s 241.916 KiB copied ETA: Tuesday 06 June 2023-06-06 12:39:04 +0000 UTC  929 s  1161/1167 msgs left
ETA: Tuesday 06 June 2023-06-06 12:39:04 +0000 UTC  929 s  1161/1167 msgs left
Folder    4/10 [Inbox]                             -> [INBOX]
Host1: folder [Inbox] has 262 messages in total (mentioned by SELECT)
Host2: folder [INBOX] has 0 messages in total (mentioned by SELECT)
Host2: folder [INBOX] permanentflags:
Host2: Subscribing to folder INBOX
Host1: folder [Inbox] considering 262 messages
Host2: folder [INBOX] considering 0 messages
Host1: folder [Inbox] selected 262 messages, duplicates 0
Host2: folder [INBOX] selected 0 messages, duplicates 0
msg Inbox/2675 {10866}        copied to INBOX/265        0.40 msgs/s  14.367 KiB/s 252.527 KiB copied ETA: Tuesday 06 June 2023-06-06 13:12:20 +0000 UTC  2913 s  1160/1167 msgs left
msg Inbox/3574 {18413}        copied to INBOX/527        2.94 msgs/s  158.514 KiB/s 14.061 MiB copied ETA: Tuesday 06 June 2023-06-06 12:30:07 +0000 UTC  306 s  900/1167 msgs left
msg Inbox/3578 {329921}       copied to INBOX/528        2.94 msgs/s  161.571 KiB/s 14.376 MiB copied ETA: Tuesday 06 June 2023-06-06 12:30:07 +0000 UTC  306 s  899/1167 msgs left
ETA: Tuesday 06 June 2023-06-06 12:30:07 +0000 UTC  306 s  899/1167 msgs left
Folder    5/10 [Junk]                              -> [Junk]
Host1: folder [Junk] has 2 messages in total (mentioned by SELECT)
Host2: folder [Junk] has 0 messages in total (mentioned by SELECT)
Host2: folder [Junk] permanentflags:
Host2: Subscribing to folder Junk
Host1: folder [Junk] considering 2 messages
Host2: folder [Junk] considering 0 messages
Host1: folder [Junk] selected 2 messages, duplicates 0
Host2: folder [Junk] selected 0 messages, duplicates 0
msg Junk/146 {42431}         copied to Junk/529        2.92 msgs/s  160.045 KiB/s 14.416 MiB copied ETA: Tuesday 06 June 2023-06-06 12:30:10 +0000 UTC  308 s  898/1167 msgs left
msg Junk/147 {55596}         copied to Junk/530        2.92 msgs/s  160.164 KiB/s 14.469 MiB copied ETA: Tuesday 06 June 2023-06-06 12:30:10 +0000 UTC  307 s  897/1167 msgs left
ETA: Tuesday 06 June 2023-06-06 12:30:10 +0000 UTC  307 s  897/1167 msgs left
Folder    6/10 [Notes]                             -> [Notes]
Host1: folder [Notes] has 0 messages in total (mentioned by SELECT)
Creating folder [Notes] on host2
Created folder [Notes] on host2
Host2: folder [Notes] has 0 messages in total (mentioned by SELECT)
Host2: folder [Notes] permanentflags:
Host2: Subscribing to folder Notes
Host1: folder [Notes] considering 0 messages
Host2: folder [Notes] considering 0 messages
Host1: folder [Notes] selected 0 messages, duplicates 0
Host2: folder [Notes] selected 0 messages, duplicates 0
ETA: Tuesday 06 June 2023-06-06 12:30:11 +0000 UTC  308 s  897/1167 msgs left
Folder    7/10 [Outbox]                            -> [Outbox]
Host1: folder [Outbox] has 0 messages in total (mentioned by SELECT)
Creating folder [Outbox] on host2
Created folder [Outbox] on host2
Host2: folder [Outbox] has 0 messages in total (mentioned by SELECT)
Host2: folder [Outbox] permanentflags:
Host2: Subscribing to folder Outbox
Host1: folder [Outbox] considering 0 messages
Host2: folder [Outbox] considering 0 messages
Host1: folder [Outbox] selected 0 messages, duplicates 0
Host2: folder [Outbox] selected 0 messages, duplicates 0
ETA: Tuesday 06 June 2023-06-06 12:30:12 +0000 UTC  309 s  897/1167 msgs left
Folder    8/10 [Sent]                              -> [Sent]
Host1: folder [Sent] has 38 messages in total (mentioned by SELECT)
Host2: folder [Sent] has 0 messages in total (mentioned by SELECT)
Host2: folder [Sent] permanentflags:
Host2: Subscribing to folder Sent
Host1: folder [Sent] considering 38 messages
Host2: folder [Sent] considering 0 messages
Host1: folder [Sent] selected 38 messages, duplicates 0
Host2: folder [Sent] selected 0 messages, duplicates 0
msg Sent/1 {17532}           copied to Sent/533        2.74 msgs/s  150.068 KiB/s 14.486 MiB copied ETA: Tuesday 06 June 2023-06-06 12:30:36 +0000 UTC  327 s  896/1167 msgs left
msg Sent/5 {1746}            copied to Sent/534        2.75 msgs/s  149.745 KiB/s 14.488 MiB copied ETA: Tuesday 06 June 2023-06-06 12:30:35 +0000 UTC  326 s  895/1167 msgs left

msg Sent/177 {2041}          copied to Sent/570        2.75 msgs/s  138.530 KiB/s 15.082 MiB copied ETA: Tuesday 06 June 2023-06-06 12:30:34 +0000 UTC  312 s  860/1167 msgs left
msg Sent/181 {12156}         copied to Sent/571        2.76 msgs/s  138.315 KiB/s 15.094 MiB copied ETA: Tuesday 06 June 2023-06-06 12:30:33 +0000 UTC  312 s  859/1167 msgs left
ETA: Tuesday 06 June 2023-06-06 12:30:33 +0000 UTC  312 s  859/1167 msgs left
Folder    9/10 [Uber]                              -> [Uber]
Host1: folder [Uber] has 116 messages in total (mentioned by SELECT)
Creating folder [Uber] on host2
Created folder [Uber] on host2
Host2: folder [Uber] has 0 messages in total (mentioned by SELECT)
Host2: folder [Uber] permanentflags:
Host2: Subscribing to folder Uber
Host1: folder [Uber] considering 116 messages
Host2: folder [Uber] considering 0 messages
Host1: folder [Uber] selected 116 messages, duplicates 0
Host2: folder [Uber] selected 0 messages, duplicates 0
msg Uber/1 {46247}           copied to Uber/573        2.62 msgs/s  131.418 KiB/s 15.138 MiB copied ETA: Tuesday 06 June 2023-06-06 12:30:55 +0000 UTC  328 s  858/1167 msgs left
msg Uber/2 {98683}           copied to Uber/574        2.62 msgs/s  131.954 KiB/s 15.232 MiB copied ETA: Tuesday 06 June 2023-06-06 12:30:55 +0000 UTC  327 s  857/1167 msgs left

msg Uber/148 {56943}         copied to Uber/687        2.84 msgs/s  169.008 KiB/s 24.598 MiB copied ETA: Tuesday 06 June 2023-06-06 12:30:21 +0000 UTC  262 s  744/1167 msgs left
msg Uber/150 {46864}         copied to Uber/688        2.84 msgs/s  169.016 KiB/s 24.643 MiB copied ETA: Tuesday 06 June 2023-06-06 12:30:21 +0000 UTC  262 s  743/1167 msgs left
ETA: Tuesday 06 June 2023-06-06 12:30:21 +0000 UTC  262 s  743/1167 msgs left
Folder   10/10 [Udemy Learning]                    -> [Udemy Learning]
Host1: folder [Udemy Learning] has 743 messages in total (mentioned by SELECT)
Creating folder [Udemy Learning] on host2
Created folder [Udemy Learning] on host2
Host2: folder [Udemy Learning] has 0 messages in total (mentioned by SELECT)
Host2: folder [Udemy Learning] permanentflags:
Host2: Subscribing to folder Udemy Learning
Host1: folder [Udemy Learning] considering 743 messages
Host2: folder [Udemy Learning] considering 0 messages
Host1: folder [Udemy Learning] selected 743 messages, duplicates 0
Host2: folder [Udemy Learning] selected 0 messages, duplicates 0
msg Udemy Learning/1 {13937}           copied to Udemy Learning/690        2.42 msgs/s  143.512 KiB/s 24.656 MiB copied ETA: Tuesday 06 June 2023-06-06 12:31:33 +0000 UTC  307 s  742/1167 msgs left
msg Udemy Learning/2 {20065}           copied to Udemy Learning/691        2.42 msgs/s  143.398 KiB/s 24.675 MiB copied ETA: Tuesday 06 June 2023-06-06 12:31:33 +0000 UTC  306 s  741/1167 msgs left

msg Udemy Learning/1017 {116886}       copied to Udemy Learning/1436       3.10 msgs/s  217.392 KiB/s 79.935 MiB copied ETA: Tuesday 06 June 2023-06-06 12:29:47 +0000 UTC  0 s  1/1167 msgs left
msg Udemy Learning/1019 {16298}        copied to Udemy Learning/1437       3.10 msgs/s  217.286 KiB/s 79.951 MiB copied ETA: Tuesday 06 June 2023-06-06 12:29:47 +0000 UTC  0 s  0/1167 msgs left
ETA: Tuesday 06 June 2023-06-06 12:29:47 +0000 UTC  0 s  0/1167 msgs left
++++ End looping on each folder

Folders sizes after the synchronization.
You can remove this foldersizes listing by using  "--nofoldersizesatend"
Host1 folder    1/10 [Archive]                           Size:    258635 Messages:     1 Biggest:    258635
Host2 folder    1/10 [Archive]                           Size:     76422 Messages:     1 Biggest:     76422
Host2-Host1                                                      -182213               0            -182213

Host1 folder    2/10 [Deleted]                           Size:         0 Messages:     0 Biggest:         0
Host2 folder    2/10 [Deleted]                           Size:         0 Messages:     0 Biggest:         0
Host2-Host1                                                            0               0                  0

Host1 folder    3/10 [Drafts]                            Size:    182803 Messages:     5 Biggest:     39189
Host2 folder    3/10 [Drafts]                            Size:    171300 Messages:     5 Biggest:     37901
Host2-Host1                                                       -11503               0              -1288

Host1 folder    4/10 [Inbox]                             Size:  44633854 Messages:   262 Biggest:    908324
Host2 folder    4/10 [INBOX]                             Size:  14826390 Messages:   262 Biggest:   1195583
Host2-Host1                                                    -29807464               0             287259

Host1 folder    5/10 [Junk]                              Size:    140418 Messages:     2 Biggest:     76139
Host2 folder    5/10 [Junk]                              Size:     98027 Messages:     2 Biggest:     55596
Host2-Host1                                                       -42391               0             -20543

Host1 folder    6/10 [Notes]                             Size:         0 Messages:     0 Biggest:         0
Host2 folder    6/10 [Notes]                             Size:         0 Messages:     0 Biggest:         0
Host2-Host1                                                            0               0                  0

Host1 folder    7/10 [Outbox]                            Size:         0 Messages:     0 Biggest:         0
Host2 folder    7/10 [Outbox]                            Size:         0 Messages:     0 Biggest:         0
Host2-Host1                                                            0               0                  0

Host1 folder    8/10 [Sent]                              Size:   2699545 Messages:    38 Biggest:    449549
Host2 folder    8/10 [Sent]                              Size:    654628 Messages:    38 Biggest:    377822
Host2-Host1                                                     -2044917               0             -71727

Host1 folder    9/10 [Uber]                              Size:  21373710 Messages:   116 Biggest:    268410
Host2 folder    9/10 [Uber]                              Size:  10013153 Messages:   116 Biggest:    151155
Host2-Host1                                                    -11360557               0            -117255

Host1 folder   10/10 [Udemy Learning]                    Size: 167004155 Messages:   743 Biggest:    765123
Host2 folder   10/10 [Udemy Learning]                    Size:  57994761 Messages:   743 Biggest:    354561
Host2-Host1                                                    -109009394               0            -410562

Host1 Nb folders:                    10 folders
Host2 Nb folders:                    10 folders

Host1 Nb messages:                 1167 messages
Host2 Nb messages:                 1167 messages

Host1 Total size:             236293120 bytes (225.347 MiB)
Host2 Total size:              83834681 bytes (79.951 MiB)

Host1 Biggest message:           908324 bytes (887.035 KiB)
Host2 Biggest message:          1195583 bytes (1.140 MiB)

Time spent on sizing:         6.4 seconds
++++ Statistics
Transfer started on                     : Tuesday 06 June 2023-06-06 12:23:19 +0000 UTC
Transfer ended on                       : Tuesday 06 June 2023-06-06 12:29:53 +0000 UTC
Transfer time                           : 393.9 sec
Folders synced                          : 10/10 synced
Messages transferred                    : 1167
Messages skipped                        : 0
Messages found duplicate on host1       : 0
Messages found duplicate on host2       : 0
Messages found crossduplicate on host2  : 0
Messages void (noheader) on host1       : 0
Messages void (noheader) on host2       : 0
Messages found in host1 not in host2    : 0 messages
Messages found in host2 not in host1    : 0 messages
Messages deleted on host1               : 0
Messages deleted on host2               : 0
Total bytes transferred                 : 83834681 (79.951 MiB)
Total bytes skipped                     : 0 (0.000 KiB)
Message rate                            : 3.0 messages/s
Average bandwidth rate                  : 207.9 KiB/s
Reconnections to host1                  : 0
Reconnections to host2                  : 0
Memory consumption at the end           : 186.5 MiB (started with 169.2 MiB)
Load end is                             : 0.09 0.17 0.17 1/266 on 2 cores
CPU time and %cpu                       : 8.33 sec 2.1 %cpu 1.1 %allcpus
Biggest message transferred             : 1195583 bytes (1.140 MiB)
Memory/biggest message ratio            : 163.6
Start difference host2 - host1          : -1167 messages, -236293120 bytes (-225.347 MiB)
Final difference host2 - host1          : 0 messages, -152458439 bytes (-145.396 MiB)
The sync looks good, all 1167 identified messages in host1 are on host2.
There is no unidentified message on host1.
The sync is strict, all 1167 identified messages in host2 are on host1.
Detected 0 errors
Check if a new imapsync release is available by adding --releasecheck
Homepage: https://imapsync.lamiral.info/
Host2: Successfully put the email final report in INBOX. Use --noemailreport2 to avoid it.
Host1: Successfully put the email final report in INBOX. Use --noemailreport1 to avoid it.
Exiting with return value 0 (EX_OK: successful termination) 0/50 nb_errors/max_errors PID 2422
Removing pidfile /tmp/imapsync.pid
Log file is LOG_imapsync/2023_06_06_12_23_19_688_imsilsa26112@outlook.com_sharif@example.com.txt ( to change it, use --logfile filepath ; or use --nolog to turn off logging )
root@imapsync:~/imapsync#

Checkout the official page of imapsync for more details and known issues, FAQs of this process.

Also, you can check migrated emails status from the user webmail in Carbonio CE.

So that’s it.

🙂

Post your comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

How To Use Imapsync To Migrate Google Workspace To Carbonio | Carbonio CE
Don't Fall Victim: Unraveling Cloud Providers' Deceptive Strategies and Proven Countermeasures to Shield Yourself | Blog