Welcome to the imapsync web site!
What is imapsync?
imapsync software is a command line tool allowing incremental and
recursive IMAP transfers from one mailbox to another, both anywhere on the internet
or in your local network. "Incremental" means you can stop the transfer at any time
and restart it later efficiently. "Recursive" means all folders hierarchy can be copied.
"Command line" means it's not a graphical tool, imapsync on Windows has to be run in a DOS box
(cmd.exe) or from a batch file.
imapsync is useful for imap account migration or imap account backup.
imapsync is not adequate for maintaining two active imap accounts
in synchronization where the user plays independently on both sides.
Use offlineimap (written by John Goerzen)
or mbsync (written by Michael R. Elkins)
for 2 ways synchronizations.
Alternatives to imapsync are listed in the Similar softwares section.
Some numbers for 2011 and 2012
- Number of imapsync users per month: between 3000 and 4000 users
(34000 users a year)
- Number of imapsync transfers between
5 and 25 millions mailboxes transfers per month,
total is 93 millions for 2011, 90 millions for 2012.
- Percentage between operating systems users running imapsync:
- Linux: 67 %
- Win32: 16 %
- Darwin: 9 %
- FreeBSD: 7 %
- Solaris: 0.3 %
- OpenBSD: 0.03 %
- Other: 0.67 %
- Biggest user usage: about 21 millions of IMAP mailbox transfers (in one month)
Latest release is imapsync
Written on
See ChangeLog to know what's new in details since 2001.
New features or bugfixes since previous releases:
- 1.518
- Bug fix: When identtifying with header, change tabulations to spaces
(Gmail bug on with "Received:" on multilines).
- Bug fix: Bugfix. Automatic --nocheckmessageexists when --noabletosearch is set.
- 1.516
- Usability: Added host2 minus host1 statistic: number of messages and bytes.
One difference at the start and one at the end.
Useful to detect quickly a difference between host2 and host1.
Need both --foldersizes and --foldersizesatend options (which are on by default).
- Usability: Added --foldersizesatend.
It gets the folders sizes at the end of the whole transfer.
Turned on by default (use --nofoldersizesatend to turn it off).
- Enhancement: Added option --delete2duplicates;
it deletes messages in host2 that are duplicates.
--delete2duplicates is on when --delete2 is set unless --nodelete2duplicates is set too.
- Usability: Added current date at the beginning of the run,
useful when imapsync doesn't end properly or hasn't finished yet.
- Enhancement: Added option --pidfilelocking;
it aborts imapsync, when just launched,
in case another imapsync may be running.
Turned off by default
- Usability: Added option --showpasswords.
it shows passwords on output instead of "MASKED".
Turned off by default.
Useful to restart a run by reading the log
or to see what happen with special characters.
- Bug fix: Added option --fixslash2
to avoid the 'Invalid mailbox name' error.
It acts when --sep1 is character / and --sep2 is not character /
and host1 folder name contains --sep2 characters.
Turned on by default (--nofixslash2 to unable it).
- Enhancement: Added option --noabletosearch
to allow the listing of messages without the imap "SEARCH ALL" command.
It's useful for playing with poor imap servers like Softalk 7.6.4
(8.6 is fine with SEARCH ALL).
- 1.508
- Usability: imapsync guesses and prints when it'll finish the transfer;
added ETA after each copy (Estimated Time of Arrival)
- Enhancement: Added --noexpungeaftereach
to speedup --delete --expunge from Gmail.
- Usability: Added Host1 or Host2 before "Nb messages" "Total size"
with --foldersiszes (to facilitate parsing)
- Bug fix: Previous fix about characters *|?:"<> to _
in cache path was not complete.
- 1.504
- Enhancement: Added option --nocheckmessageexists to speed up with Tobit imap server as host1.
- Usability: Added transfer rate and number of messages rate after each copy.
- Usability: Use Time::HiRes time to get time with better precesion than the second.
- Bug fix: Convert characters *|?:"<> to _ in cache paths because they are forbidden on Windows paths.
- 1.500
- Enhancement: Added option --nocheckselectable to fix INBOX issue with Jana-server.
- Bug fix: The cache system didn't work in Win32 (problem with \ transformation).
- Bug fix: Check the return of touch calls for the cache.
- Usability: Example for --delete2foldersbutnot "m/Contacts|Agenda|Trash/"
- 1.484
- Bug fix: Back to select() (read-write mode) instead of examine()
(read-only mode in 1.468) on host1. Needed with --delete
- Enhancement: Added option --exitwhenover option to avoid locking
when transfers exceed maximum limit.
See for example this Gmail constraint
- imapsync ... --exitwhenover 2500000000 # 2.5GB if host1 is Gmail
- imapsync ... --exitwhenover 500000000 # 500MB if host2 is Gmail
- Usability: Unified outout in --debug mode. Lines start with Host1 or Host2.
- Usability: Changed output about messages ignored to better reflect what is going on.
- 1.476
- Usability: Default headers used to identify a message are now "Message-Id" and "Received"
(Exchange compatibility bu default).
- Enhancement: Added option --addheader to fix the issue
"ignored (no header so we ignore this message)" (on Sent folder usually).
Thanks to Ameir Abdeldayem
- Enhancement: Added --nofilterflags to check any STORE flags
by ignoring PERMANENTFLAGS (Exchange tests)
Simple transfer on Windows
See imapsync_example.bat
batch file example that you can easily adapt with your parameters.
Massive transfers (many mailboxes)
In order to migrate many mailboxes a good way is to use a loop over a csv
file containing only the data credentials.
A example of this file is file.txt,
it can be used by the two following command scripts.
On Windows, see sync_loop_windows.bat
batch example.
On Unix, see sync_loop_unix.sh
example.
Who is the author?
Gilles LAMIRAL
Email: gilles.lamiral@laposte.net
Good feedback is always welcome, bad feedback is often welcome.
Where to talk about imapsync?
A nice place to talk about imapsync is the public
imapsync mailing-list (see below section Mailing-List).
Buy imapsync source code
Buy latest imapsync Perl source code for 42 EUR
The Perl imapsync source code will run anywhere a Perl interpreter can run:
any Unix, Linux, Windows, or Mac OS operating system.
+ Two years of imapsync updates without extra payment.
+ 30 days money-back guarantee! (any reason qualifies)
Payment by Paypal account and credit card accepted.
Price 42 EUR is equal to around 50 USD,
no problem to pay in USD (or any currency) via paypal:
You will receive a download link just after the payment.
You will also receive a gpg signed invoice within a few days by email.
Please give a delivery postal address where the invoice will be needed
(your company for example), since reedit is not easy (and forbidden by law).
Buy standalone imapsync.exe for win32
Struggle free from source code and Perl installation by
buying the latest win32 standalone imapsync.exe for 42 EUR
+ Two years of imapsync updates without extra payment.
+ 30 days money-back guarantee! (any reason qualifies)
Payment by Paypal account and credit card accepted.
Price 42 EUR is equal to around 50 USD,
no problem to pay in USD (or any currency) via paypal:
You will receive a download link just after the payment.
You will also receive a gpg signed invoice within a few days by email.
Please give a delivery postal address where the invoice will be needed
(your company for example), since reedit is not easy (and forbidden by law).
Buy full professional support for imapsync
You will be able to expose your issues by email
or phone and we'll work together until complete success.
For 90 EUR buy imapsync full support
done by the imapsync designer/developper.
Payment by Paypal account and credit card accepted.
90 EUR is equal to around 110 USD,
no problem to pay in USD (or any currency) with paypal:
You will also receive a gpg signed invoice within a few days by email.
Please give a delivery postal address where the invoice will be needed
(your company for example), since reedit is not easy (and forbidden by law).
Documentation
Read the INSTALL file
to know how to install imapsync on your system.
The README file has many tips
to understand imapsync and succeed in your migration or backup.
The FAQ file presents Frequently Asked Questions
(and not so frequently asked ones).
The ChangeLog
to read what changed in details since 2001.
The TODO file
lists what may be coded or done in the future.
All the people I thank are in the
CREDITS file.
What you can do with imapsync is listed in COPYING.
The imapsync mailing list
The public mailing-list may be the best way to get free support.
You can write to the mailing-list even if you're not subscribed to it.
In that case you will receive a confirmation message each time you post (to avoid spam).
To write on the mailing-list, the address is:
imapsync@linux-france.org
To subscribe, send a message to:
imapsync-subscribe@listes.linux-france.org
To unsubscribe, send a message to:
imapsync-unsubscribe@listes.linux-france.org
To contact the person in charge for the list:
imapsync-request@listes.linux-france.org
The list archives are available at
http://linux-france.org/prj/imapsync_list/
So consider that the list is public, anyone can see your post.
Use a pseudonym or do not post to
this list if you want to stay private.
Thank you for your participation to the imapsync mailing-list!
Lists of imap server software failures and success stories
Let's start with reported failure stories over the past.
Maybe new imapsync releases can run successfully with them.
Don't hesitate to have a try, I will help you and make efforts to switch them to the success list.
- DBMail 0.9, 2.0.7 (GPL). But most other DBMail releases are supported (see below)
- Imail 7.04 (maybe).
- MailEnable 1.54 (Proprietary) but MailEnable 4.23 is supported.
- (2011) MDaemon 12.0.3 as host2
but MDaemon is supported as host1.
MDaemon is simply buggy with the APPEND IMAP command with any IMAP email client.
Now the long reported success stories list:
48 different imap server softwares supported!
[host1] means "source server" and [host2] means "destination server":
- 1und1 H mimap1 84498 [host1] (http://www.1und1.de/)
- a1.net imap.a1.net IMAP4 Ready [host1]
- Archiveopteryx 2.03, 2.04, 2.09, 2.10 [host2], 3.0.0 [host2]
(OSL 3.0) (http://www.archiveopteryx.org/)
- Axigen Mail Server Version 8.0.0 (http://www.axigen.com/)
- BincImap 1.2.3 (GPL) (http://www.bincimap.org/)
- CommuniGatePro server (Redhat 8.0) (Solaris), CommuniGate Pro 5.2.17[host2] (CentOS 5.4)
(http://www.communigate.com/)
- Courier IMAP 1.5.1, 2.2.0, 2.1.1, 2.2.1, 3.0.8, 3.0.3, 4.1.1 (GPL)
(http://www.courier-mta.org/imap/)
- Critical Path (7.0.020) ()
- Cyrus IMAP 1.5, 1.6,
2.1, 2.1.15, 2.1.16, 2.1.18
2.2.1, 2.2.2-BETA, 2.2.3, 2.2.6, 2.2.10, 2.2.12, 2.2.13,
2.3-alpha (OSI Approved), 2.3.1, 2.3.7, 2.3.16
(http://cyrusimap.web.cmu.edu/)
- David Tobit V8. (http://www.tobit.com/)
- DBMail 1.2.1, 2.0.4, 2.0.9, 2.2rc1 (GPL).
2.0.7 seems buggy. (http://www.dbmail.org/)
- Deerfield VisNetic MailServer 5.8.6 [host1]
(http://www.deerfield.net/products/visnetic-mailserver/)
- dkimap4 [host1] ()
- Domino (Notes) 4.61[host1], 6.5, 5.0.6, 5.0.7, 7.0.2, 6.0.2CF1, 7.0.1[host1], 8.0.1[host1]
(http://www-01.ibm.com/software/lotus/products/notes/)
- Dovecot 0.99.10.4, 0.99.14, 0.99.14-8.fc4, 1.0-0.beta2.7,
1.0.0 [dest/source] (LGPL) (http://www.dovecot.org/) (http://www.dovecot.org/)
- Eudora WorldMail v2 (http://www.eudora.com/worldmail/)
- Gimap (Gmail imap) [host1] [host2] (http://mail.google.com/)
- GMX IMAP4 StreamProxy. (http://www.gmx.com/)
- Godaddy IMAP (since Godaddy runs Courier) (http://www.godaddy.com/)
- Groupwise IMAP (Novell) 6.x and 7.0. Buggy so see the FAQ.
(http://www.novell.com/products/groupwise/)
- hMailServer 5.3.3 [host2], 4.4.1 [host1], HMAILSERVER 5.3.2-B1769 on windows 2003 [hsot2]
(http://www.hmailserver.com/)
- iPlanet Messaging server 4.15, 5.1, 5.2
(http://en.wikipedia.org/wiki/Oracle_Communications_Messaging_Server)
- IMail 7.15 (Ipswitch/Win2003), 8.12, 11.03 [host1] (http://www.imailserver.com/)
- Kerio 7.2.0P1 [host1] (http://www.kerio.com/)
- MailEnable 4.23 [host1][host2], 4.26 [host1][host2], 5 [host1]
(http://www.mailenable.com/)
- MDaemon 7.0.1, 8.0.2, 8.1, 9.5.4 (Windows server 2003 R2 platform), 12 [host2], 12.0.3 [host1], 12.5.5 [host1]
(http://www.altn.com/)
- Mercury 4.1 (Windows server 2000 platform) (http://www.pmail.com/)
- Microsoft Exchange Server 5.5, 6.0.6249.0[host1], 6.0.6487.0[host1],
6.5.7638.1 [host2], 6.5 [host1], Exchange 2007 SP1 (with Update Rollup 2),
Exchange2007-EP-SP2,
Exchange 2010 RTM (Release to Manufacturing) [host2],
Exchange 2010 SP1 RU2 [host2]
(http://www.microsoft.com/exchange/)
- Mirapoint server 4.1.9-GA [host1] (http://www.mirapoint.com/)
- Netscape Mail Server 3.6 (Wintel)
- Netscape Messaging Server 4.15 Patch 7
- OpenMail IMAP server B.07.00.k0
- OpenWave (http://www.openwave.com/)
- Oracle Beehive [host1]
(http://www.oracle.com/technetwork/middleware/beehive/)
- Qualcomm Worldmail (NT) (http://www.eudora.com/worldmail/)
- Rockliffe Mailsite 5.3.11, 4.5.6 (http://www.mailsite.com/)
- Samsung Contact IMAP server 8.5.0
- Scalix v10.1, 10.0.1.3, 11.0.0.431, 11.4.6 (http://www.scalix.com/)
- SmarterMail, Smarter Mail 5.0 Enterprise, Smarter Mail 5.5 [host1]. (http://www.smartertools.com/)
- Softalk Workgroup Mail 7.6.4 [host1] (http://www.softalkltd.com/products/download_wm_v7.asp).
- SunONE Messaging server 5.2, 6.0 (SUN JES - Java Enterprise System) (http://www.oracle.com/)
- Sun Java(tm) System Messaging Server 6.2-2.05, 6.2-7.05, 6.3 (http://www.oracle.com/)
- Surgemail 3.6f5-5 (http://netwinsite.com/surgemail/)
- UW-imap servers (imap-2000b) rijkkramer IMAP4rev1 2000.287
(RedHat uses UW like 2003.338rh), v12.264 Solaris 5.7 (OSI Approved)
(http://www.washington.edu/imap/)
- VMS, Imap part of TCP/IP suite of VMS 7.3.2 (http://h71000.www7.hp.com/openvms/)
- Yahoo [host1] (http://www.yahoo.com/)
- Zimbra-IMAP 3.0.1 GA 160, 3.1.0 Build 279, 4.0.5, 4.5.2, 4.5.6,
Zimbra 5.0.24_GA_3356.RHEL4 [host1], 5.5, 6.x
(http://www.zimbra.com/)
Similar softwares
Online IMAP migration services
I have no share in these free or paid services.
I don't think they use imapsync.
Prices are given par mailbox and may be outdated (december 2011).
This document last modified on
($Id: index.shtml,v 1.141 2012/12/24 01:03:07 gilles Exp gilles $)