This commit is contained in:
Nick Bebout 2011-03-12 02:44:36 +00:00
parent 0d91a1a20f
commit 32596eb877
12 changed files with 2180 additions and 19031 deletions

25
CREDITS
View file

@ -3,16 +3,33 @@
I thank very much all of these people.
If you want to make a donation to the author, Gilles LAMIRAL:
- you can use the imapsync wishlist :
a) you can use the imapsync wishlist :
http://www.amazon.com/gp/registry/wishlist/1C9UNDIH3P7R7/
(Use the lowest postal cost)
- its paypal account gilles.lamiral@laposte.net
- If you can read french, please use the following wishlist :
b) If you can read french, please use the following wishlist :
http://amazon.fr/gp/registry/wishlist/37RZF7PPCD7YL
(free postal cost)
c) its paypal account gilles.lamiral@laposte.net
Cvitkovich Andres
Gave a patch to implement
* --pidfile option.
* --tmpfile option.
* --skipheaderinfolder option.
Had a successful 550000 users migration with imapsync !
Scott Musser
Contributed by giving the book
"The mathematics of Juggling"
George Henry Lenzer
Contributed by giving the book
"Higher-Order Perl"
Bryce Schober
Gave FAQ entry "imapsync ssl on win32".
Gave FAQ entry "synchronisation to gmail"

View file

@ -1,15 +1,24 @@
RCS file: RCS/imapsync,v
Working file: imapsync
head: 1.239
head: 1.241
branch:
locks: strict
gilles: 1.241
access list:
symbolic names:
keyword substitution: kv
total revisions: 239; selected revisions: 239
total revisions: 241; selected revisions: 241
description:
----------------------------
revision 1.241 locked by: gilles;
date: 2007/12/31 13:39:02; author: gilles; state: Exp; lines: +6 -6
Bug fix. --exclude and remove_from_requested_folders()
----------------------------
revision 1.240
date: 2007/12/31 13:35:59; author: gilles; state: Exp; lines: +7 -6
MDaemon 8.0.2
----------------------------
revision 1.239
date: 2007/12/29 02:44:10; author: gilles; state: Exp; lines: +7 -7
Typo if

25
FAQ
View file

@ -313,15 +313,22 @@ Q. Give examples about --regextrans2
R. Examples:
0) First try with --dry option since imapsync shows the transformation
it will do. Then when happy with the output remove the --dry option
0) First try with --dry --justfolders options since imapsync shows the
transformations it will do without really doing them. Then when happy
with the output remove the --dry --justfolders options.
1) To remove INBOX. in the name of destination folders:
--regextrans2 's/^INBOX\.(.+)/$1/'
2) To sync a complete account in a subfolder called FOO:
a) Separator is dot character "." and "INBOX" prefixes every folder
--regextrans2 's/^INBOX(.*)/INBOX.FOO$1/'
Or
b) Separator is slash character "/"
--regextrans2 's#(.*)#FOO/$1#'
3) to substitute all characters dot "." by underscores "_"
--regextrans2 's/\./_/g'
@ -600,4 +607,18 @@ R: I don't know but Neil Brown wrote one rpm package and you'll find
his .spec file here :
http://www.linux-france.org/prj/imapsync/learn/rpm/
======================================================================
Q: Problems on win32, Timezone and Date::Manip
R: Comment the code like the following
if ($syncinternaldates) {
$d = $f_idate;
$debug and print "internal date from 1: [$d]\n";
#require Date::Manip;
#Date::Manip->import(qw(ParseDate Date_Cmp UnixDate));
#$d = UnixDate(ParseDate($d), "%d %b %Y %H:%M:%S %z");
#$d = "\"$d\"";
#$debug and print "internal date from 1: [$d] (fixed)\n";
}

7
README
View file

@ -3,7 +3,7 @@ NAME
Synchronise mailboxes between two imap servers. Good at IMAP migration.
More than 32 different IMAP server softwares supported with success.
$Revision: 1.239 $
$Revision: 1.241 $
INSTALL
imapsync works fine under any Unix OS with perl.
@ -244,7 +244,7 @@ IMAP SERVERS
- Groupwise IMAP (Novell) 6.x and 7.0. Buggy so see the FAQ.
- iPlanet Messaging server 4.15, 5.1, 5.2
- IMail 7.15 (Ipswitch/Win2003), 8.12
- MDaemon 7.0.1, 8.1, 9.5.4 (Windows server 2003 R2 platform)
- MDaemon 7.0.1, 8.0.2, 8.1, 9.5.4 (Windows server 2003 R2 platform)
- Mercury 4.1 (Windows server 2000 platform)
- Microsoft Exchange Server 5.5, 6.5.7638.1 [dest]
- Netscape Mail Server 3.6 (Wintel !)
@ -328,9 +328,10 @@ SIMILAR SOFTWARES
migrationtool : http://sourceforge.net/projects/migrationtool/
imapmigrate : http://sourceforge.net/projects/cyrus-utils/
wonko_imapsync: http://wonko.com/article/554
see also tools/wonko_ruby_imapsync
pop2imap : http://www.linux-france.org/prj/pop2imap/
Feedback (good or bad) will be always welcome.
$Id: imapsync,v 1.239 2007/12/29 02:44:10 gilles Exp $
$Id: imapsync,v 1.241 2007/12/31 13:39:02 gilles Exp gilles $

21
TODO
View file

@ -1,6 +1,27 @@
TODO file for imapsync
----------------------
Add a --pidfile option.
Add a --tmpfile option.
Write a clean_exit() replacing each die() or exit() call.
Add a --skipheaderinfolder option
See the code patches/imapsync_Cvitkovich_pidfile_tmpfile
Make --skipheader be multiple
Fix this:
> - Erreur avec la traditionnelle différence entre Windows
> et LInux sur les retour-chariots : le calcul de la
> longueur du message ou des entêtes à envoyer au serveur
> cible n'est pas bon sur une machine Windows.
> Ci-dessous la modif :
>
> # No NL Count on Windows my $length = ( -s $file ) + $bare_nl_count;
> my $length = ( -s $file );
Normally, "no header used or found" means imapsync found a message
with no header. It may be a bad message with really no header
or it may be a imap server problem, the server gives no header

View file

@ -1 +1 @@
1.239
1.241

16
aa
View file

@ -1,16 +0,0 @@
Using Mail::IMAPClient version 2.2.9 and perl version 5.8.8 (5.008008)
Read: * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=PLAIN CRAM-MD5 CRAM-SHA1 IDLE STARTTLS] Courier-IMAP ready. Copyright 1998-2005 Double Precision, Inc. See COPYING for distribution information.
Connect: Received this from readline: 0/OUTPUT/* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=PLAIN CRAM-MD5 CRAM-SHA1 IDLE STARTTLS] Courier-IMAP ready. Copyright 1998-2005 Double Precision, Inc. See COPYING for distribution information.
Sending: 1 Login "XXXXXXXX" XXXXXXXX
Sent 37 bytes
Read: 1 OK LOGIN Ok.
Sending: 2 LOGOUT
Sent 10 bytes
Read: * BYE Courier-IMAP server shutting down
2 OK LOGOUT completed

View file

@ -9,7 +9,7 @@ tool. Synchronise mailboxes between two imap servers. Good
at IMAP migration. More than 32 different IMAP server softwares
supported with success.
$Revision: 1.239 $
$Revision: 1.241 $
=head1 INSTALL
@ -277,7 +277,7 @@ Success stories reported with the following 35 imap servers
- Groupwise IMAP (Novell) 6.x and 7.0. Buggy so see the FAQ.
- iPlanet Messaging server 4.15, 5.1, 5.2
- IMail 7.15 (Ipswitch/Win2003), 8.12
- MDaemon 7.0.1, 8.1, 9.5.4 (Windows server 2003 R2 platform)
- MDaemon 7.0.1, 8.0.2, 8.1, 9.5.4 (Windows server 2003 R2 platform)
- Mercury 4.1 (Windows server 2000 platform)
- Microsoft Exchange Server 5.5, 6.5.7638.1 [dest]
- Netscape Mail Server 3.6 (Wintel !)
@ -381,12 +381,13 @@ Entries for imapsync:
migrationtool : http://sourceforge.net/projects/migrationtool/
imapmigrate : http://sourceforge.net/projects/cyrus-utils/
wonko_imapsync: http://wonko.com/article/554
see also tools/wonko_ruby_imapsync
pop2imap : http://www.linux-france.org/prj/pop2imap/
Feedback (good or bad) will be always welcome.
$Id: imapsync,v 1.239 2007/12/29 02:44:10 gilles Exp $
$Id: imapsync,v 1.241 2007/12/31 13:39:02 gilles Exp gilles $
@ -449,7 +450,7 @@ my(
use vars qw ($opt_G); # missing code for this will be option.
$rcs = ' $Id: imapsync,v 1.239 2007/12/29 02:44:10 gilles Exp $ ';
$rcs = ' $Id: imapsync,v 1.241 2007/12/31 13:39:02 gilles Exp gilles $ ';
$rcs =~ m/,v (\d+\.\d+)/;
$VERSION = ($1) ? $1 : "UNKNOWN";
@ -482,8 +483,8 @@ $error=0;
my $banner = join("",
'$RCSfile: imapsync,v $ ',
'$Revision: 1.239 $ ',
'$Date: 2007/12/29 02:44:10 $ ',
'$Revision: 1.241 $ ',
'$Date: 2007/12/31 13:39:02 $ ',
"\n",localhost_info(),
" and the module Mail::IMAPClient version used here is ",
$VERSION_IMAPClient,"\n",
@ -847,7 +848,7 @@ if (scalar(@exclude)) {
foreach my $exclude (@exclude) {
my @requested_folder = sort(keys(%requested_folder));
my @excluded_folders = grep /$exclude/, @requested_folder;
remove_to_requested_folders(@excluded_folders);
remove_from_requested_folders(@excluded_folders);
print "Excluding folders matching pattern '$exclude': @excluded_folders\n";
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,6 @@
#!/bin/sh
# $Id: tests.sh,v 1.68 2007/12/29 02:40:06 gilles Exp gilles $
# $Id: tests.sh,v 1.69 2007/12/31 13:38:37 gilles Exp gilles $
#### Shell pragmas
@ -420,6 +420,24 @@ ll_include()
fi
}
ll_exclude()
{
sendtestmessage
if test X`hostname` = X"plume"; then
echo3 Here is plume
./imapsync \
--host1 localhost --user1 tata@est.belle \
--passfile1 /var/tmp/secret.tata \
--host2 localhost --user2 titi@est.belle \
--passfile2 /var/tmp/secret.titi \
--exclude '^INBOX.yop'
else
:
fi
}
ll_regextrans2()
{
sendtestmessage
@ -939,6 +957,7 @@ test $# -eq 0 && run_tests \
ll_skipsize \
ll_skipheader \
ll_include \
ll_exclude \
ll_regextrans2 \
ll_sep2 \
ll_bad_login \

12455
tperl.out

File diff suppressed because it is too large Load diff

6540
tperl2.out

File diff suppressed because it is too large Load diff