2011-03-12 03:39:59 +01:00
|
|
|
NAME
|
|
|
|
imapsync - synchronize mailboxes between two imap servers.
|
|
|
|
|
2011-03-12 03:43:49 +01:00
|
|
|
$Revision: 1.48 $
|
2011-03-12 03:39:59 +01:00
|
|
|
|
|
|
|
INSTALL
|
|
|
|
Get imapsync at http://www.linux-france.org/prj/imapsync/dist/
|
|
|
|
tar xzvf imapsync-x.xx.tgz # x.xx is the version number
|
|
|
|
Read the INSTALL file.
|
|
|
|
freshmeat record: http://freshmeat.net/projects/imapsync/
|
|
|
|
|
|
|
|
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>]
|
|
|
|
[--user1 <string>] [--passfile1 <string>]
|
|
|
|
[--host2 server2] [--port2 <num>]
|
|
|
|
[--user2 <string>] [--passfile2 <string>]
|
2011-03-12 03:43:47 +01:00
|
|
|
[--folder <string> --folder <string> ...]
|
|
|
|
[--prefix2 <string>]
|
2011-03-12 03:43:48 +01:00
|
|
|
[--sep1 <char>]
|
|
|
|
[--sep2 <char>]
|
2011-03-12 03:43:48 +01:00
|
|
|
[--syncinternaldate]
|
2011-03-12 03:39:59 +01:00
|
|
|
[--delete] [--expunge]
|
2011-03-12 03:43:48 +01:00
|
|
|
[--subscribed]
|
2011-03-12 03:39:59 +01:00
|
|
|
[--dry]
|
|
|
|
[--debug] [--debugimap]
|
|
|
|
[--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
|
|
|
|
transfered by not transfering a given message if it is already on both
|
|
|
|
sides. All flags are preserved, unread will stay unread, read will stay
|
2011-03-12 03:40:59 +01:00
|
|
|
read, deleted will stay deleted. You can stop the transfert at any time
|
|
|
|
and restart it later, imapsync is adapted to a bad connection.
|
|
|
|
|
|
|
|
You can decide to delete the messages from the source mailbox after a
|
|
|
|
successful transfert (it is a good feature when migrating). In that
|
|
|
|
case, use the --delete option, and run imapsync again with the --expunge
|
|
|
|
option.
|
|
|
|
|
|
|
|
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
|
|
|
|
mailbox was well transfered and delete it after a good transfert.
|
|
|
|
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
|
|
|
|
|
|
|
EXAMPLES
|
|
|
|
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
|
|
|
|
too files "/etc/secret1" for "buddy", "/etc/secret2" for "max") :
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
imasync is not protected against sniffers on the network so the
|
|
|
|
passwords are in plain text.
|
|
|
|
|
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
|
|
|
|
Gilles LAMIRAL lamiral@linux-france.org
|
|
|
|
|
|
|
|
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:43:46 +01:00
|
|
|
No known serious bug.
|
|
|
|
|
|
|
|
Flags : with some IMAP servers the flags are not very well copied the
|
|
|
|
first time. Run imapsync twice if you want the flags set correctly.
|
2011-03-12 03:43:46 +01:00
|
|
|
(fixed since 1.28 release but wait for a time before removing those
|
|
|
|
lines)
|
2011-03-12 03:43:46 +01:00
|
|
|
|
|
|
|
Report any bugs to the author: lamiral@linux-france.org
|
2011-03-12 03:39:59 +01:00
|
|
|
|
2011-03-12 03:43:44 +01:00
|
|
|
IMAP SERVERS
|
|
|
|
Success stories reported :
|
|
|
|
|
|
|
|
- Courier IMAP 1.5.1
|
|
|
|
- Cyrus IMAP 1.5, 1.6, 2.1
|
|
|
|
- Netscape Mail Server 3.6 (Wintel)
|
|
|
|
- CommunicatePro server (Redhat 8.0)
|
2011-03-12 03:43:46 +01:00
|
|
|
- SunONE Messaging server 5.2
|
|
|
|
- iPlanet Messaging server 4.15
|
2011-03-12 03:43:48 +01:00
|
|
|
- dovecot ?.??
|
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:43:46 +01:00
|
|
|
Rate imapsync : http://freshmeat.net/projects/imapsync/
|
|
|
|
|
2011-03-12 03:43:49 +01:00
|
|
|
HUGE MIGRATION
|
|
|
|
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 :
|
|
|
|
|
|
|
|
{ while IFS=';' read u1 p1 u2 p2; do imapsync --user1 $u1 --password1
|
|
|
|
$p1 --user2 $u2 --password2 $p2 ... done ; } < file.csv
|
|
|
|
|
|
|
|
Welcome in shell programming !
|
|
|
|
|
2011-03-12 03:39:59 +01:00
|
|
|
SIMILAR SOFTWARES
|
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: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:49 +01:00
|
|
|
$Id: imapsync,v 1.48 2003/11/21 04:23:10 gilles Exp gilles $
|
2011-03-12 03:39:59 +01:00
|
|
|
|