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. I thank very much all of these people.
If you want to make a donation to the author, Gilles LAMIRAL: 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/ http://www.amazon.com/gp/registry/wishlist/1C9UNDIH3P7R7/
(Use the lowest postal cost) (Use the lowest postal cost)
- its paypal account gilles.lamiral@laposte.net b) If you can read french, please use the following wishlist :
- If you can read french, please use the following wishlist :
http://amazon.fr/gp/registry/wishlist/37RZF7PPCD7YL http://amazon.fr/gp/registry/wishlist/37RZF7PPCD7YL
(free postal cost) (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 Bryce Schober
Gave FAQ entry "imapsync ssl on win32". Gave FAQ entry "imapsync ssl on win32".
Gave FAQ entry "synchronisation to gmail" Gave FAQ entry "synchronisation to gmail"

View file

@ -1,15 +1,24 @@
RCS file: RCS/imapsync,v RCS file: RCS/imapsync,v
Working file: imapsync Working file: imapsync
head: 1.239 head: 1.241
branch: branch:
locks: strict locks: strict
gilles: 1.241
access list: access list:
symbolic names: symbolic names:
keyword substitution: kv keyword substitution: kv
total revisions: 239; selected revisions: 239 total revisions: 241; selected revisions: 241
description: 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 revision 1.239
date: 2007/12/29 02:44:10; author: gilles; state: Exp; lines: +7 -7 date: 2007/12/29 02:44:10; author: gilles; state: Exp; lines: +7 -7
Typo if Typo if

25
FAQ
View file

@ -313,15 +313,22 @@ Q. Give examples about --regextrans2
R. Examples: R. Examples:
0) First try with --dry option since imapsync shows the transformation 0) First try with --dry --justfolders options since imapsync shows the
it will do. Then when happy with the output remove the --dry option 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: 1) To remove INBOX. in the name of destination folders:
--regextrans2 's/^INBOX\.(.+)/$1/' --regextrans2 's/^INBOX\.(.+)/$1/'
2) To sync a complete account in a subfolder called FOO: 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/' --regextrans2 's/^INBOX(.*)/INBOX.FOO$1/'
Or
b) Separator is slash character "/"
--regextrans2 's#(.*)#FOO/$1#'
3) to substitute all characters dot "." by underscores "_" 3) to substitute all characters dot "." by underscores "_"
--regextrans2 's/\./_/g' --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 : his .spec file here :
http://www.linux-france.org/prj/imapsync/learn/rpm/ 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. Synchronise mailboxes between two imap servers. Good at IMAP migration.
More than 32 different IMAP server softwares supported with success. More than 32 different IMAP server softwares supported with success.
$Revision: 1.239 $ $Revision: 1.241 $
INSTALL INSTALL
imapsync works fine under any Unix OS with perl. 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. - Groupwise IMAP (Novell) 6.x and 7.0. Buggy so see the FAQ.
- iPlanet Messaging server 4.15, 5.1, 5.2 - iPlanet Messaging server 4.15, 5.1, 5.2
- IMail 7.15 (Ipswitch/Win2003), 8.12 - 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) - Mercury 4.1 (Windows server 2000 platform)
- Microsoft Exchange Server 5.5, 6.5.7638.1 [dest] - Microsoft Exchange Server 5.5, 6.5.7638.1 [dest]
- Netscape Mail Server 3.6 (Wintel !) - Netscape Mail Server 3.6 (Wintel !)
@ -328,9 +328,10 @@ SIMILAR SOFTWARES
migrationtool : http://sourceforge.net/projects/migrationtool/ migrationtool : http://sourceforge.net/projects/migrationtool/
imapmigrate : http://sourceforge.net/projects/cyrus-utils/ imapmigrate : http://sourceforge.net/projects/cyrus-utils/
wonko_imapsync: http://wonko.com/article/554 wonko_imapsync: http://wonko.com/article/554
see also tools/wonko_ruby_imapsync
pop2imap : http://www.linux-france.org/prj/pop2imap/ pop2imap : http://www.linux-france.org/prj/pop2imap/
Feedback (good or bad) will be always welcome. 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 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 Normally, "no header used or found" means imapsync found a message
with no header. It may be a bad message with really no header 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 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 at IMAP migration. More than 32 different IMAP server softwares
supported with success. supported with success.
$Revision: 1.239 $ $Revision: 1.241 $
=head1 INSTALL =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. - Groupwise IMAP (Novell) 6.x and 7.0. Buggy so see the FAQ.
- iPlanet Messaging server 4.15, 5.1, 5.2 - iPlanet Messaging server 4.15, 5.1, 5.2
- IMail 7.15 (Ipswitch/Win2003), 8.12 - 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) - Mercury 4.1 (Windows server 2000 platform)
- Microsoft Exchange Server 5.5, 6.5.7638.1 [dest] - Microsoft Exchange Server 5.5, 6.5.7638.1 [dest]
- Netscape Mail Server 3.6 (Wintel !) - Netscape Mail Server 3.6 (Wintel !)
@ -381,12 +381,13 @@ Entries for imapsync:
migrationtool : http://sourceforge.net/projects/migrationtool/ migrationtool : http://sourceforge.net/projects/migrationtool/
imapmigrate : http://sourceforge.net/projects/cyrus-utils/ imapmigrate : http://sourceforge.net/projects/cyrus-utils/
wonko_imapsync: http://wonko.com/article/554 wonko_imapsync: http://wonko.com/article/554
see also tools/wonko_ruby_imapsync
pop2imap : http://www.linux-france.org/prj/pop2imap/ pop2imap : http://www.linux-france.org/prj/pop2imap/
Feedback (good or bad) will be always welcome. 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. 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+)/; $rcs =~ m/,v (\d+\.\d+)/;
$VERSION = ($1) ? $1 : "UNKNOWN"; $VERSION = ($1) ? $1 : "UNKNOWN";
@ -482,8 +483,8 @@ $error=0;
my $banner = join("", my $banner = join("",
'$RCSfile: imapsync,v $ ', '$RCSfile: imapsync,v $ ',
'$Revision: 1.239 $ ', '$Revision: 1.241 $ ',
'$Date: 2007/12/29 02:44:10 $ ', '$Date: 2007/12/31 13:39:02 $ ',
"\n",localhost_info(), "\n",localhost_info(),
" and the module Mail::IMAPClient version used here is ", " and the module Mail::IMAPClient version used here is ",
$VERSION_IMAPClient,"\n", $VERSION_IMAPClient,"\n",
@ -847,7 +848,7 @@ if (scalar(@exclude)) {
foreach my $exclude (@exclude) { foreach my $exclude (@exclude) {
my @requested_folder = sort(keys(%requested_folder)); my @requested_folder = sort(keys(%requested_folder));
my @excluded_folders = grep /$exclude/, @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"; 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 #!/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 #### Shell pragmas
@ -420,6 +420,24 @@ ll_include()
fi 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() ll_regextrans2()
{ {
sendtestmessage sendtestmessage
@ -939,6 +957,7 @@ test $# -eq 0 && run_tests \
ll_skipsize \ ll_skipsize \
ll_skipheader \ ll_skipheader \
ll_include \ ll_include \
ll_exclude \
ll_regextrans2 \ ll_regextrans2 \
ll_sep2 \ ll_sep2 \
ll_bad_login \ 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