2011-03-12 03:39:59 +01:00
|
|
|
NAME
|
2011-03-12 03:44:27 +01:00
|
|
|
imapsync - IMAP synchronisation, sync, copy or migration tool.
|
|
|
|
Synchronise mailboxes between two imap servers. Good at IMAP migration.
|
|
|
|
More than 25 different IMAP server softwares supported with success.
|
2011-03-12 03:39:59 +01:00
|
|
|
|
2011-03-12 03:44:31 +01:00
|
|
|
$Revision: 1.204 $
|
2011-03-12 03:39:59 +01:00
|
|
|
|
|
|
|
INSTALL
|
2011-03-12 03:43:50 +01:00
|
|
|
imapsync works fine under any Unix OS.
|
|
|
|
imapsync works fine under Windows 2000 (at least) and ActiveState's 5.8 Perl
|
|
|
|
|
2011-03-12 03:43:49 +01:00
|
|
|
Get imapsync at
|
2011-03-12 03:43:55 +01:00
|
|
|
http://www.linux-france.org/prj/imapsync/dist/
|
2011-03-12 03:43:49 +01:00
|
|
|
|
|
|
|
You'll find a compressed tarball called imapsync-x.xx.tgz
|
|
|
|
where x.xx is the version number. Untar the tarball where
|
|
|
|
you want :
|
|
|
|
|
2011-03-12 03:44:11 +01:00
|
|
|
tar xzvf imapsync-x.xx.tgz
|
2011-03-12 03:43:49 +01:00
|
|
|
|
|
|
|
Go into the directory imapsync-x.xx and read the INSTALL
|
|
|
|
file.
|
|
|
|
|
|
|
|
The freshmeat record is http://freshmeat.net/projects/imapsync/
|
2011-03-12 03:39:59 +01:00
|
|
|
|
|
|
|
SYNOPSIS
|
2011-03-12 03:40:59 +01:00
|
|
|
imapsync [options]
|
|
|
|
|
|
|
|
imapsync --help
|
|
|
|
imapsync
|
2011-03-12 03:39:59 +01:00
|
|
|
|
|
|
|
imapsync [--host1 server1] [--port1 <num>]
|
2011-03-12 03:44:15 +01:00
|
|
|
[--user1 <string>] [--passfile1 <string>]
|
2011-03-12 03:39:59 +01:00
|
|
|
[--host2 server2] [--port2 <num>]
|
2011-03-12 03:44:15 +01:00
|
|
|
[--user2 <string>] [--passfile2 <string>]
|
2011-03-12 03:44:22 +01:00
|
|
|
[--ssl1] [--ssl2]
|
|
|
|
[--authmech1 <string>] [--authmech2 <string>]
|
2011-03-12 03:44:15 +01:00
|
|
|
[--noauthmd5]
|
2011-03-12 03:43:47 +01:00
|
|
|
[--folder <string> --folder <string> ...]
|
2011-03-12 03:44:30 +01:00
|
|
|
[--folderrec <string> --folderrec <string> ...]
|
2011-03-12 03:43:50 +01:00
|
|
|
[--include <regex>] [--exclude <regex>]
|
2011-03-12 03:44:19 +01:00
|
|
|
[--prefix2 <string>] [--prefix1 <string>]
|
2011-03-12 03:44:20 +01:00
|
|
|
[--regextrans2 <regex> --regextrans2 <regex> ...]
|
2011-03-12 03:43:48 +01:00
|
|
|
[--sep1 <char>]
|
|
|
|
[--sep2 <char>]
|
2011-03-12 03:44:20 +01:00
|
|
|
[--justfolders] [--justfoldersizes] [--justconnect]
|
2011-03-12 03:43:50 +01:00
|
|
|
[--syncinternaldates]
|
2011-03-12 03:44:15 +01:00
|
|
|
[--buffersize <int>]
|
|
|
|
[--syncacls]
|
2011-03-12 03:44:20 +01:00
|
|
|
[--regexmess <regex>] [--regexmess <regex>]
|
2011-03-12 03:43:50 +01:00
|
|
|
[--maxsize <int>]
|
|
|
|
[--maxage <int>]
|
2011-03-12 03:44:20 +01:00
|
|
|
[--minage <int>]
|
2011-03-12 03:43:54 +01:00
|
|
|
[--skipheader <regex>]
|
2011-03-12 03:44:15 +01:00
|
|
|
[--useheader <string>] [--useheader <string>]
|
2011-03-12 03:43:54 +01:00
|
|
|
[--skipsize]
|
2011-03-12 03:44:25 +01:00
|
|
|
[--delete] [--delete2]
|
|
|
|
[--expunge] [--expunge1] [--expunge2]
|
2011-03-12 03:43:49 +01:00
|
|
|
[--subscribed] [--subscribe]
|
2011-03-12 03:44:15 +01:00
|
|
|
[--nofoldersizes]
|
2011-03-12 03:39:59 +01:00
|
|
|
[--dry]
|
|
|
|
[--debug] [--debugimap]
|
2011-03-12 03:44:15 +01:00
|
|
|
[--timeout <int>] [--fast]
|
2011-03-12 03:44:24 +01:00
|
|
|
[--split1] [--split2]
|
2011-03-12 03:39:59 +01:00
|
|
|
[--version] [--help]
|
|
|
|
|
|
|
|
DESCRIPTION
|
|
|
|
The command imapsync is a tool allowing incremental and recursive imap
|
|
|
|
transfer from one mailbox to another.
|
|
|
|
|
|
|
|
We sometimes need to transfer mailboxes from one imap server to another.
|
|
|
|
This is called migration.
|
|
|
|
|
|
|
|
imapsync is the adequate tool because it reduces the amount of data
|
2011-03-12 03:44:29 +01:00
|
|
|
transferred by not transferring a given message if it is already on both
|
|
|
|
sides. Same headers, same message size and the transfer is done only
|
2011-03-12 03:43:54 +01:00
|
|
|
once. All flags are preserved, unread will stay unread, read will stay
|
2011-03-12 03:44:29 +01:00
|
|
|
read, deleted will stay deleted. You can stop the transfer at any time
|
2011-03-12 03:44:31 +01:00
|
|
|
and restart it later, imapsync is adapted to a bad connection. imapsync
|
|
|
|
is CPU hungry so nice and renice commands can be a good help. imapsync
|
|
|
|
can be memory hungry too, especially with large messages.
|
2011-03-12 03:40:59 +01:00
|
|
|
|
|
|
|
You can decide to delete the messages from the source mailbox after a
|
2011-03-12 03:44:29 +01:00
|
|
|
successful transfer (it is a good feature when migrating). In that case,
|
|
|
|
use the --delete --expunge1 options.
|
2011-03-12 03:40:59 +01:00
|
|
|
|
|
|
|
You can also just synchronize a mailbox A from another mailbox B in case
|
|
|
|
you just want to keep a "live" copy of B in A.
|
2011-03-12 03:39:59 +01:00
|
|
|
|
|
|
|
OPTIONS
|
|
|
|
Invoke: imapsync --help
|
|
|
|
|
|
|
|
HISTORY
|
|
|
|
I wrote imapsync because an enterprise (basystemes) paid me to install a
|
|
|
|
new imap server without loosing huge old mailboxes located on a far away
|
|
|
|
remote imap server accessible by a low bandwith link. The tool imapcp
|
|
|
|
(written in python) could not help me because I had to verify every
|
2011-03-12 03:44:29 +01:00
|
|
|
mailbox was well transferred and delete it after a good transfer.
|
2011-03-12 03:39:59 +01:00
|
|
|
imapsync started its life being a copy_folder.pl patch. The tool
|
|
|
|
copy_folder.pl comes from the Mail-IMAPClient-2.1.3 perl module tarball
|
2011-03-12 03:40:59 +01:00
|
|
|
source (in the examples/ directory of the tarball).
|
2011-03-12 03:39:59 +01:00
|
|
|
|
2011-03-12 03:44:21 +01:00
|
|
|
EXAMPLE
|
2011-03-12 03:39:59 +01:00
|
|
|
While working on imapsync parameters please run imapsync in dry mode (no
|
|
|
|
modification induced) with the --dry option. Nothing bad can be done
|
|
|
|
this way.
|
|
|
|
|
|
|
|
To synchronize the imap account "buddy" on host "imap.src.fr" to the
|
|
|
|
imap account "max" on host "imap.dest.fr" (the passwords are located in
|
2011-03-12 03:44:27 +01:00
|
|
|
two files "/etc/secret1" for "buddy", "/etc/secret2" for "max") :
|
2011-03-12 03:39:59 +01:00
|
|
|
|
|
|
|
imapsync --host1 imap.src.fr --user1 buddy --passfile1 /etc/secret1 \
|
|
|
|
--host2 imap.dest.fr --user2 max --passfile2 /etc/secret2
|
|
|
|
|
|
|
|
Then, you will have buddy's mailbox updated from max's mailbox.
|
|
|
|
|
2011-03-12 03:43:48 +01:00
|
|
|
SECURITY
|
|
|
|
You can use --password1 instead of --passfile1 to give the password but
|
|
|
|
it is dangerous because any user on your host can see the password by
|
|
|
|
using the 'ps auxwwww' command. Using a variable (like $PASSWORD1) is
|
|
|
|
also dangerous because of the 'ps auxwwwwe' command. So, saving the
|
|
|
|
password in a well protected file (600 or rw-------) is the best
|
|
|
|
solution.
|
|
|
|
|
2011-03-12 03:44:23 +01:00
|
|
|
imasync is not totally protected against sniffers on the network since
|
2011-03-12 03:44:29 +01:00
|
|
|
passwords may be transferred in plain text in case CRAM-MD5 is not
|
2011-03-12 03:44:23 +01:00
|
|
|
supported by your imap servers. Use --ssl1 and --ssl2 to enable
|
|
|
|
encryption on host1 and host2.
|
|
|
|
|
|
|
|
You may authenticate as one user (typically an admin user), but be
|
|
|
|
authorized as someone else, which means you don't need to know every
|
|
|
|
user's personal password. Specify --authuser1 "adminuser" to enable this
|
|
|
|
on host1. In this case, --authmech1 PLAIN will be used, but otherwise,
|
|
|
|
--authmech1 CRAM-MD5 is the default. Same behavior with the --authuser2
|
|
|
|
option.
|
2011-03-12 03:43:48 +01:00
|
|
|
|
2011-03-12 03:39:59 +01:00
|
|
|
EXIT STATUS
|
|
|
|
imapsync will exit with a 0 status (return code) if everything went
|
|
|
|
good. Otherwise, it exits with a non-zero status.
|
|
|
|
|
|
|
|
So if you have a buggy internet connection, you can use this loop in a
|
|
|
|
Bourne shell:
|
|
|
|
|
|
|
|
while ! imapsync ...; do
|
|
|
|
echo imapsync not complete
|
|
|
|
done
|
|
|
|
|
|
|
|
AUTHOR
|
2011-03-12 03:44:21 +01:00
|
|
|
Gilles LAMIRAL <lamiral@linux-france.org>
|
|
|
|
|
|
|
|
Feedback good or bad is always welcome. The first you send me an email
|
|
|
|
you will receive a confirmation request before I really read your
|
|
|
|
message.
|
|
|
|
|
|
|
|
The newsgroup comp.mail.imap is a good place to talk about imapsync. I
|
|
|
|
read it when imapsync is concerned.
|
2011-03-12 03:39:59 +01:00
|
|
|
|
|
|
|
LICENSE
|
|
|
|
imapsync is free, gratis and open source software cover by the GNU
|
|
|
|
General Public License. See the GPL file included in the distribution or
|
|
|
|
the web site http://www.gnu.org/licenses/licenses.html
|
|
|
|
|
|
|
|
BUGS
|
2011-03-12 03:44:26 +01:00
|
|
|
No known serious bug. Report any bug to the author. Before reporting
|
|
|
|
bugs, read the FAQ, this README and the TODO files.
|
2011-03-12 03:43:46 +01:00
|
|
|
|
2011-03-12 03:44:26 +01:00
|
|
|
In your report, please include:
|
2011-03-12 03:43:54 +01:00
|
|
|
|
2011-03-12 03:44:26 +01:00
|
|
|
- imapsync version.
|
|
|
|
- IMAPClient.pm version.
|
|
|
|
- perl version.
|
|
|
|
- operating system running imapsync.
|
|
|
|
- imap servers softwares on both side and their version.
|
2011-03-12 03:43:57 +01:00
|
|
|
|
2011-03-12 03:44:26 +01:00
|
|
|
Those values can be found with the command line
|
2011-03-12 03:43:57 +01:00
|
|
|
|
2011-03-12 03:44:26 +01:00
|
|
|
imapsync --host1 imap.host1.net --host2 imap.host2.org --justconnect
|
2011-03-12 03:43:54 +01:00
|
|
|
|
2011-03-12 03:44:26 +01:00
|
|
|
And also, if it can help :
|
2011-03-12 03:43:46 +01:00
|
|
|
|
2011-03-12 03:44:26 +01:00
|
|
|
- operating systems on both sides.
|
|
|
|
- imapsync with all the options you use, the full command line
|
|
|
|
you use (except the passwords of course)
|
|
|
|
- output given with --debug --debugimap near the failure point.
|
2011-03-12 03:39:59 +01:00
|
|
|
|
2011-03-12 03:43:44 +01:00
|
|
|
IMAP SERVERS
|
2011-03-12 03:44:30 +01:00
|
|
|
Failure stories reported with the following 4 imap servers :
|
2011-03-12 03:44:17 +01:00
|
|
|
|
2011-03-12 03:44:20 +01:00
|
|
|
- MailEnable 1.54 (Proprietary) http://www.mailenable.com/
|
|
|
|
- DBMail 2.0.7 (GPL). But DBMail 1.2.1 works.
|
|
|
|
Patient and confident testers are welcome.
|
2011-03-12 03:44:22 +01:00
|
|
|
- dkimap4 2.39
|
2011-03-12 03:44:30 +01:00
|
|
|
- Imail 7.04 (maybe).
|
2011-03-12 03:44:25 +01:00
|
|
|
|
2011-03-12 03:44:31 +01:00
|
|
|
Success stories reported with the following 31 imap servers (softwares
|
2011-03-12 03:44:16 +01:00
|
|
|
names are in alphabetic order) :
|
2011-03-12 03:43:44 +01:00
|
|
|
|
2011-03-12 03:44:17 +01:00
|
|
|
- BincImap 1.2.3 (GPL) (http://www.bincimap.org/)
|
2011-03-12 03:44:29 +01:00
|
|
|
- CommuniGatePro server (Redhat 8.0)
|
2011-03-12 03:44:17 +01:00
|
|
|
- Courier IMAP 1.5.1, 2.2.0, 2.1.1, 2.2.1 (GPL)
|
|
|
|
(http://www.courier-mta.org/)
|
2011-03-12 03:43:50 +01:00
|
|
|
- Critical Path (7.0.020)
|
2011-03-12 03:44:17 +01:00
|
|
|
- Cyrus IMAP 1.5, 1.6, 2.1, 2.1.15, 2.1.16, 2.1.18
|
2011-03-12 03:44:31 +01:00
|
|
|
2.2.1, 2.2.2-BETA, 2.2.10, 2.2.12,
|
|
|
|
v2.2.3-Invoca-RPM-2.2.3-8,
|
|
|
|
2.3-alpha (OSI Approved),
|
2011-03-12 03:44:31 +01:00
|
|
|
v2.2.12-Invoca-RPM-2.2.12-3.RHEL4.1,
|
|
|
|
v2.3.1-Invoca-RPM-2.3.1-2.7.fc5,
|
2011-03-12 03:44:17 +01:00
|
|
|
(http://asg.web.cmu.edu/cyrus/)
|
2011-03-12 03:44:29 +01:00
|
|
|
- David Tobit V8 (proprietary Message system).
|
2011-03-12 03:44:30 +01:00
|
|
|
- DBMail 1.2.1, 2.0.4, 2.0.9, 2.2rc1 (GPL) (http://www.dbmail.org/).
|
2011-03-12 03:44:29 +01:00
|
|
|
2.0.7 seems buggy.
|
2011-03-12 03:44:30 +01:00
|
|
|
- Dovecot 0.99.10.4, 0.99.14, 0.99.14-8.fc4, 1.0-0.beta2.7 (LGPL)
|
2011-03-12 03:44:26 +01:00
|
|
|
(http://www.dovecot.org/)
|
2011-03-12 03:44:30 +01:00
|
|
|
- Domino (Notes) 6.5, 5.0.6, 5.0.7, 7.0.2, 6.0.2CF1
|
2011-03-12 03:44:26 +01:00
|
|
|
- Eudora WorldMail v2
|
2011-03-12 03:44:28 +01:00
|
|
|
- Groupwise IMAP (Novell) 6.x and 7.0. Buggy so see the FAQ.
|
|
|
|
- iPlanet Messaging server 4.15, 5.1, 5.2
|
2011-03-12 03:44:01 +01:00
|
|
|
- IMail 7.15 (Ipswitch/Win2003), 8.12
|
2011-03-12 03:44:20 +01:00
|
|
|
- MDaemon 7.0.1, 8.1
|
2011-03-12 03:44:30 +01:00
|
|
|
- Microsoft Exchange Server 5.5
|
2011-03-12 03:43:50 +01:00
|
|
|
- Netscape Mail Server 3.6 (Wintel !)
|
2011-03-12 03:44:13 +01:00
|
|
|
- Netscape Messaging Server 4.15 Patch 7
|
2011-03-12 03:44:31 +01:00
|
|
|
- OpenMail IMAP server B.07.00.k0 (Samsung Contact ?)
|
2011-03-12 03:44:01 +01:00
|
|
|
- OpenWave
|
2011-03-12 03:44:06 +01:00
|
|
|
- Qualcomm Worldmail (NT)
|
2011-03-12 03:44:27 +01:00
|
|
|
- Rockliffe Mailsite 5.3.11
|
2011-03-12 03:44:13 +01:00
|
|
|
- Samsung Contact IMAP server 8.5.0
|
2011-03-12 03:44:31 +01:00
|
|
|
- Scalix v10.1, 10.0.1.3, 11.0.0.431
|
|
|
|
- SmarterMail
|
2011-03-12 03:43:50 +01:00
|
|
|
- SunONE Messaging server 5.2, 6.0 (SUN JES - Java Enterprise System)
|
2011-03-12 03:44:31 +01:00
|
|
|
- Sun Java System Messaging Server 6.2-2.05
|
2011-03-12 03:44:29 +01:00
|
|
|
- Surgemail 3.6f5-5
|
2011-03-12 03:43:49 +01:00
|
|
|
- UW-imap servers (imap-2000b) rijkkramer IMAP4rev1 2000.287
|
2011-03-12 03:44:17 +01:00
|
|
|
(RedHat uses UW like 2003.338rh) (OSI Approved)
|
|
|
|
(http://www.washington.edu/imap/)
|
2011-03-12 03:43:50 +01:00
|
|
|
- UW - QMail v2.1
|
2011-03-12 03:44:26 +01:00
|
|
|
- Imap part of TCP/IP suite of VMS 7.3.2
|
2011-03-12 03:44:30 +01:00
|
|
|
- Zimbra-IMAP 3.0.1 GA 160, 3.1.0 Build 279, 5.5.
|
2011-03-12 03:43:44 +01:00
|
|
|
|
|
|
|
Please report to the author any success or bad story with imapsync and
|
|
|
|
don't forget to mention the IMAP server software names and version on
|
2011-03-12 03:43:48 +01:00
|
|
|
both sides. This will help future users. To help the author maintaining
|
|
|
|
this section report the two lines at the begining of the output if they
|
|
|
|
are useful to know the softwares. Example:
|
|
|
|
|
|
|
|
From software :* OK louloutte Cyrus IMAP4 v1.5.19 server ready
|
|
|
|
To software :* OK Courier-IMAP ready
|
2011-03-12 03:43:44 +01:00
|
|
|
|
2011-03-12 03:44:20 +01:00
|
|
|
You can use option --justconnect to get those lines. Example :
|
|
|
|
|
|
|
|
imapsync --host1 imap.troc.org --host2 imap.trac.org --justconnect
|
2011-03-12 03:43:50 +01:00
|
|
|
|
2011-03-12 03:43:51 +01:00
|
|
|
And please rate imapsync at http://freshmeat.net/projects/imapsync/
|
2011-03-12 03:43:46 +01:00
|
|
|
|
2011-03-12 03:43:49 +01:00
|
|
|
HUGE MIGRATION
|
2011-03-12 03:43:49 +01:00
|
|
|
Have a special attention on options --subscribed --subscribe --delete
|
2011-03-12 03:44:25 +01:00
|
|
|
--delete2 --expunge --expunge1 --expunge2 --maxage --minage --maxsize
|
|
|
|
--useheader
|
2011-03-12 03:43:49 +01:00
|
|
|
|
2011-03-12 03:43:49 +01:00
|
|
|
If you have many mailboxes to migrate think about a little shell
|
|
|
|
program. Write a file called file.csv (for example) containing users and
|
|
|
|
passwords. The separator used in this example is ';'
|
|
|
|
|
|
|
|
The file.csv file content is :
|
|
|
|
|
|
|
|
user0001;password0001;user0002;password0002
|
|
|
|
user0011;password0011;user0012;password0012 ...
|
|
|
|
|
|
|
|
And the shell program is just :
|
|
|
|
|
2011-03-12 03:44:16 +01:00
|
|
|
{ while IFS=';' read u1 p1 u2 p2; do
|
|
|
|
imapsync --user1 "$u1" --password1 "$p1" --user2 "$u2" --password2 "$p2" ...
|
|
|
|
done ; } < file.csv
|
2011-03-12 03:43:49 +01:00
|
|
|
|
|
|
|
Welcome in shell programming !
|
|
|
|
|
2011-03-12 03:43:49 +01:00
|
|
|
Hacking
|
2011-03-12 03:43:51 +01:00
|
|
|
Feel free to hack imapsync as the GPL Licence permits it.
|
|
|
|
|
|
|
|
Links
|
|
|
|
Entries for imapsync: http://www.imap.org/products/showall.php
|
|
|
|
|
2011-03-12 03:39:59 +01:00
|
|
|
SIMILAR SOFTWARES
|
2011-03-12 03:44:21 +01:00
|
|
|
imap_tools : http://www.athensfbc.com/imap_tools
|
2011-03-12 03:43:44 +01:00
|
|
|
offlineimap : http://gopher.quux.org:70/devel/offlineimap/
|
|
|
|
mailsync : http://mailsync.sourceforge.net/
|
2011-03-12 03:43:45 +01:00
|
|
|
imapxfer : http://www.washington.edu/imap/
|
|
|
|
part of the imap-utils from UW.
|
2011-03-12 03:43:51 +01:00
|
|
|
mailutil : replace imapxfer in
|
|
|
|
part of the imap-utils from UW.
|
|
|
|
http://www.gsp.com/cgi-bin/man.cgi?topic=mailutil
|
2011-03-12 03:43:51 +01:00
|
|
|
imaprepl : http://www.bl0rg.net/software/
|
|
|
|
http://freshmeat.net/projects/imap-repl/
|
|
|
|
imap_migrate: http://freshmeat.net/projects/imapmigration/
|
2011-03-12 03:44:12 +01:00
|
|
|
imapcopy : http://home.arcor.de/armin.diehl/imapcopy/imapcopy.html
|
|
|
|
migrationtool http://sourceforge.net/projects/migrationtool/
|
2011-03-12 03:43:50 +01:00
|
|
|
pop2imap : http://www.linux-france.org/prj/pop2imap/
|
2011-03-12 03:43:44 +01:00
|
|
|
|
2011-03-12 03:43:45 +01:00
|
|
|
Feedback (good or bad) will be always welcome.
|
2011-03-12 03:39:59 +01:00
|
|
|
|
2011-03-12 03:43:53 +01:00
|
|
|
AUTHOR
|
|
|
|
Gilles LAMIRAL earn his living writing, installing, configuring and
|
|
|
|
teaching free open and gratis softwares. Don't hesitate to pay him for
|
|
|
|
that services.
|
|
|
|
|
2011-03-12 03:44:31 +01:00
|
|
|
$Id: imapsync,v 1.204 2007/01/13 07:51:21 gilles Exp $
|
2011-03-12 03:39:59 +01:00
|
|
|
|