mirror of
https://github.com/imapsync/imapsync.git
synced 2024-11-16 15:52:47 +01:00
1.340
This commit is contained in:
parent
26a302f586
commit
c6cefbbb65
16
CREDITS
16
CREDITS
@ -1,5 +1,5 @@
|
||||
#!/bin/cat
|
||||
# $Id: CREDITS,v 1.141 2010/07/14 13:52:04 gilles Exp gilles $
|
||||
# $Id: CREDITS,v 1.142 2010/08/09 01:16:01 gilles Exp gilles $
|
||||
|
||||
If you want to make a donation to the author, Gilles LAMIRAL:
|
||||
|
||||
@ -20,11 +20,23 @@ to remove one.
|
||||
|
||||
I thank very much all of these people.
|
||||
|
||||
Martin Werthmoeller
|
||||
Gave a patch ./patches/imapsync-1.337_tobit_V6.patch
|
||||
|
||||
Jeremy Stent
|
||||
Contributed by giving the book
|
||||
13.60 "Unfolding the Napkin: The Hands-On Method for Solving Complex Problems with Simple Pictures"
|
||||
|
||||
BudgetDedicated
|
||||
Contributed by giving money 5 USD
|
||||
|
||||
Wilton de Oliveira Garcia
|
||||
Contributed by giving money 10 USD
|
||||
|
||||
David Osbo
|
||||
Contributed by giving the book
|
||||
15.61 "The Complete Idiot's Guide to Conversational Sign Language Illustrated"
|
||||
|
||||
|
||||
Jeroen Ticheler
|
||||
Contributed by giving the book
|
||||
23.77 "Maps of Narrative Practice"
|
||||
|
20
ChangeLog
20
ChangeLog
@ -1,17 +1,29 @@
|
||||
|
||||
RCS file: RCS/imapsync,v
|
||||
Working file: imapsync
|
||||
head: 1.337
|
||||
head: 1.340
|
||||
branch:
|
||||
locks: strict
|
||||
gilles: 1.337
|
||||
gilles: 1.340
|
||||
access list:
|
||||
symbolic names:
|
||||
keyword substitution: kv
|
||||
total revisions: 337; selected revisions: 337
|
||||
total revisions: 340; selected revisions: 340
|
||||
description:
|
||||
----------------------------
|
||||
revision 1.337 locked by: gilles;
|
||||
revision 1.340 locked by: gilles;
|
||||
date: 2010/08/09 00:03:21; author: gilles; state: Exp; lines: +7 -7
|
||||
Bug fix. Stupid undef breaking --syncinternaldates
|
||||
----------------------------
|
||||
revision 1.339
|
||||
date: 2010/07/28 15:07:56; author: gilles; state: Exp; lines: +27 -20
|
||||
Made a justconnect() routine.
|
||||
----------------------------
|
||||
revision 1.338
|
||||
date: 2010/07/28 14:56:26; author: gilles; state: Exp; lines: +42 -27
|
||||
Added SYNOPSIS at the top of the documentation.
|
||||
----------------------------
|
||||
revision 1.337
|
||||
date: 2010/07/16 23:23:40; author: gilles; state: Exp; lines: +12 -6
|
||||
Added --usedatemanip option (not documented in --help)
|
||||
Turned off Date::Manip usage by default: release 6.x vs 5.x buggy,
|
||||
|
18
FAQ
18
FAQ
@ -1,5 +1,5 @@
|
||||
#!/bin/cat
|
||||
# $Id: FAQ,v 1.71 2010/07/15 12:07:00 gilles Exp gilles $
|
||||
# $Id: FAQ,v 1.73 2010/08/08 23:09:04 gilles Exp gilles $
|
||||
|
||||
+------------------+
|
||||
| FAQ for imapsync |
|
||||
@ -59,6 +59,9 @@ R. Here:
|
||||
RFC 3501 - INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1
|
||||
http://www.faqs.org/rfcs/rfc3501.html
|
||||
|
||||
RFC2683 - IMAP4 Implementation Recommendations
|
||||
http://www.faqs.org/rfcs/rfc2683.html
|
||||
|
||||
RFC 2595 - Using TLS with IMAP, POP3 and ACAP
|
||||
http://www.faqs.org/rfcs/rfc2595.html
|
||||
|
||||
@ -68,6 +71,9 @@ http://www.faqs.org/rfcs/rfc2822.html
|
||||
RFC 2342 - IMAP4 Namespace
|
||||
http://www.faqs.org/rfcs/rfc2342.html
|
||||
|
||||
RFC2180 - IMAP4 Multi-Accessed Mailbox Practice
|
||||
http://www.faqs.org/rfcs/rfc2180.html
|
||||
|
||||
RFC 4549 - Synchronization Operations for Disconnected IMAP4 Clients
|
||||
http://www.faqs.org/rfcs/rfc4549.html
|
||||
|
||||
@ -885,6 +891,16 @@ Q. Migrating from David Tobit V8
|
||||
R. Use the following options :
|
||||
imapsync ... --prefix1 INBOX. --sep1 / --subscribe --subscribed
|
||||
|
||||
=======================================================================
|
||||
Q. Migrating from Tobit David Server 6
|
||||
("DvISE Mail Access Server MA-6.60a (0118)")
|
||||
|
||||
R. Look at the discussion:
|
||||
http://www.linux-france.org/prj/imapsync_list/msg00582.html
|
||||
http://www.linux-france.org/prj/imapsync_list/threads.html#00582
|
||||
patch saved in ./patches/imapsync-1.337_tobit_V6.patch
|
||||
|
||||
|
||||
=======================================================================
|
||||
Q. I need to migrate 1250 mailboxes from one cyrus-IMAP server to another
|
||||
(empty) one. (Box-swap). The passwords are in a MySQL Database.
|
||||
|
74
Makefile
74
Makefile
@ -1,14 +1,12 @@
|
||||
|
||||
# $Id: Makefile,v 1.32 2010/07/17 00:17:18 gilles Exp gilles $
|
||||
|
||||
TARGET=imapsync
|
||||
# $Id: Makefile,v 1.34 2010/07/25 21:30:45 gilles Exp gilles $
|
||||
|
||||
.PHONY: help usage all
|
||||
|
||||
help: usage
|
||||
|
||||
usage:
|
||||
@echo " $(TARGET) $(VERSION), You can do :"
|
||||
@echo " imapsync $(VERSION), You can do :"
|
||||
@echo "make install # as root"
|
||||
@echo "make testf # run tests"
|
||||
@echo "make testv # run tests verbosely"
|
||||
@ -16,24 +14,31 @@ usage:
|
||||
@echo "make test229 # run tests with Mail-IMAPClient-2.2.9"
|
||||
@echo "make all "
|
||||
|
||||
DIST_NAME=imapsync-$(VERSION)
|
||||
DIST_FILE=$(DIST_NAME).tgz
|
||||
DEB_FILE=$(DIST_NAME).deb
|
||||
VERSION=$(shell perl -I./Mail-IMAPClient-2.2.9 ./imapsync --version)
|
||||
|
||||
|
||||
|
||||
all: ChangeLog README VERSION
|
||||
|
||||
.PHONY: test tests testp testf test3xx
|
||||
|
||||
.test: $(TARGET) tests.sh
|
||||
.test: imapsync tests.sh
|
||||
/usr/bin/time sh tests.sh 1>/dev/null
|
||||
touch .test
|
||||
|
||||
.test_3xx: $(TARGET) tests.sh
|
||||
.test_3xx: imapsync tests.sh
|
||||
CMD_PERL='perl -I./Mail-IMAPClient-3.25/lib' /usr/bin/time sh tests.sh 1>/dev/null
|
||||
touch .test_3xx
|
||||
|
||||
test_quick : test_quick_229 test_quick_3xx
|
||||
|
||||
test_quick_229: $(TARGET) tests.sh
|
||||
test_quick_229: imapsync tests.sh
|
||||
CMD_PERL='perl -I./Mail-IMAPClient-2.2.9' /usr/bin/time sh tests.sh locallocal 1>/dev/null
|
||||
|
||||
test_quick_3xx: $(TARGET) tests.sh
|
||||
test_quick_3xx: imapsync tests.sh
|
||||
CMD_PERL='perl -I./Mail-IMAPClient-3.25/lib' /usr/bin/time sh tests.sh locallocal 1>/dev/null
|
||||
|
||||
testv:
|
||||
@ -47,23 +52,23 @@ test3xx: .test_3xx
|
||||
|
||||
test229: .test_229
|
||||
|
||||
.test_229: $(TARGET) tests.sh
|
||||
.test_229: imapsync tests.sh
|
||||
CMD_PERL='perl -I./Mail-IMAPClient-2.2.9' /usr/bin/time sh tests.sh 1>/dev/null
|
||||
touch .test_229
|
||||
|
||||
testf: clean_test test
|
||||
|
||||
testp :
|
||||
perl -c $(TARGET)
|
||||
perl -c imapsync
|
||||
|
||||
ChangeLog: $(TARGET)
|
||||
rlog $(TARGET) > ChangeLog
|
||||
ChangeLog: imapsync
|
||||
rlog imapsync > ChangeLog
|
||||
|
||||
README: $(TARGET)
|
||||
perldoc -t $(TARGET) > README
|
||||
README: imapsync
|
||||
perldoc -t imapsync > README
|
||||
|
||||
VERSION: $(TARGET) Makefile
|
||||
perl -I./Mail-IMAPClient-2.2.9 ./$(TARGET) --version > VERSION
|
||||
VERSION: imapsync Makefile
|
||||
perl -I./Mail-IMAPClient-2.2.9 ./imapsync --version > VERSION
|
||||
|
||||
.PHONY: clean clean_tilde clean_test
|
||||
|
||||
@ -77,25 +82,20 @@ clean_tilde:
|
||||
|
||||
.PHONY: install dist man
|
||||
|
||||
man: $(TARGET).1
|
||||
man: imapsync.1
|
||||
|
||||
clean_man:
|
||||
rm -f $(TARGET).1
|
||||
rm -f imapsync.1
|
||||
|
||||
$(TARGET).1: $(TARGET)
|
||||
pod2man $(TARGET) > $(TARGET).1
|
||||
imapsync.1: imapsync
|
||||
pod2man imapsync > imapsync.1
|
||||
|
||||
install: testp $(TARGET).1
|
||||
install -D $(TARGET) $(DESTDIR)/usr/bin/$(TARGET)
|
||||
install -D $(TARGET).1 $(DESTDIR)/usr/share/man/man1/$(TARGET).1
|
||||
chmod 755 $(DESTDIR)/usr/bin/$(TARGET)
|
||||
install: testp imapsync.1
|
||||
install -D imapsync $(DESTDIR)/usr/bin/imapsync
|
||||
install -D imapsync.1 $(DESTDIR)/usr/share/man/man1/imapsync.1
|
||||
chmod 755 $(DESTDIR)/usr/bin/imapsync
|
||||
|
||||
|
||||
DIST_NAME=$(TARGET)-$(VERSION)
|
||||
DIST_FILE=$(DIST_NAME).tgz
|
||||
DEB_FILE=$(DIST_NAME).deb
|
||||
VERSION=$(shell perl -I./Mail-IMAPClient-2.2.9 ./$(TARGET) --version)
|
||||
|
||||
dist: cidone test clean clean_dist all INSTALL tarball
|
||||
|
||||
|
||||
@ -126,15 +126,21 @@ clean_dist:
|
||||
|
||||
# Local goals
|
||||
|
||||
.PHONY: lfo lfo_upload niouze_lfo niouze_fm public
|
||||
.PHONY: lfo upload_lfo niouze_lfo niouze_fm public
|
||||
|
||||
lfo: dist niouze_lfo lfo_upload
|
||||
upload_index: index.shtml
|
||||
rsync -avH index.shtml \
|
||||
/home/gilles/public_html/www.linux-france.org/html/prj/imapsync/
|
||||
sh ~/memo/lfo-rsync
|
||||
|
||||
lfo_upload:
|
||||
|
||||
lfo: dist niouze_lfo upload_lfo
|
||||
|
||||
upload_lfo:
|
||||
rsync -avH --delete . \
|
||||
/home/gilles/public_html/www.linux-france.org/html/prj/$(TARGET)/
|
||||
/home/gilles/public_html/www.linux-france.org/html/prj/imapsync/
|
||||
rsync -avH --delete ../prepa_dist/imapsync-*tgz \
|
||||
/home/gilles/public_html/www.linux-france.org/ftp/prj/$(TARGET)/
|
||||
/home/gilles/public_html/www.linux-france.org/ftp/prj/imapsync/
|
||||
sh ~/memo/lfo-rsync
|
||||
|
||||
niouze_lfo : VERSION
|
||||
|
87
README
87
README
@ -1,19 +1,30 @@
|
||||
NAME
|
||||
imapsync - IMAP synchronisation, sync, copy or migration tool.
|
||||
Synchronise mailboxes between two imap servers. Good at IMAP migration.
|
||||
More than 32 different IMAP server softwares supported with success.
|
||||
More than 36 different IMAP server softwares supported with success.
|
||||
|
||||
$Revision: 1.337 $
|
||||
$Revision: 1.340 $
|
||||
|
||||
SYNOPSIS
|
||||
To synchronise imap account "foo" on "imap.truc.org" to imap account
|
||||
"bar" on "imap.trac.org" with foo password "secret1" and bar password
|
||||
"secret2":
|
||||
|
||||
imapsync \
|
||||
--host1 imap.truc.org --user1 foo --password1 secret1 \
|
||||
--host2 imap.trac.org --user2 bar --password2 secret2
|
||||
|
||||
INSTALL
|
||||
imapsync works fine under any Unix OS with perl.
|
||||
imapsync works fine under Windows (2000, XP) and ActiveState's 5.8 Perl
|
||||
imapsync works fine under Windows (2000, XP) with ActiveState's 5.8 Perl
|
||||
or as a standalone binary software.
|
||||
|
||||
imapsync is already available directly on the following distributions (at least):
|
||||
FreeBSD, Debian, Ubuntu, Gentoo, NetBSD, Darwin, Mandriva and OpenBSD (yeah!).
|
||||
imapsync is already available directly on the following distributions
|
||||
(at least): FreeBSD, Debian, Ubuntu, Gentoo, NetBSD, Darwin, Mandriva
|
||||
and OpenBSD (yeah!).
|
||||
|
||||
Get imapsync at
|
||||
http://www.linux-france.org/prj/imapsync/dist/
|
||||
http://www.linux-france.org/prj/imapsync/
|
||||
|
||||
You'll find a compressed tarball called imapsync-x.xx.tgz
|
||||
where x.xx is the version number. Untar the tarball where
|
||||
@ -23,12 +34,12 @@ INSTALL
|
||||
|
||||
Go into the directory imapsync-x.xx and read the INSTALL file.
|
||||
The INSTALL file is also at
|
||||
http://www.linux-france.org/prj/imapsync/INSTALL (for windows users)
|
||||
|
||||
The freshmeat record is at http://freshmeat.net/projects/imapsync/
|
||||
http://www.linux-france.org/prj/imapsync/INSTALL
|
||||
|
||||
SYNOPSIS
|
||||
imapsync [options]
|
||||
The freshmeat record is at http://freshmeat.net/projects/imapsync/
|
||||
|
||||
USAGE
|
||||
imapsync [options]
|
||||
|
||||
To get a description of each option just run imapsync like this:
|
||||
|
||||
@ -76,7 +87,7 @@ SYNOPSIS
|
||||
[--pidfile <filepath>]
|
||||
[--tmpdir <dirpath>]
|
||||
[--version] [--help]
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
The command imapsync is a tool allowing incremental and recursive imap
|
||||
transfer from one mailbox to another.
|
||||
@ -88,19 +99,19 @@ DESCRIPTION
|
||||
|
||||
imapsync is a good tool because it reduces the amount of data
|
||||
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
|
||||
once. All flags are preserved, unread will stay unread, read will stay
|
||||
read, deleted will stay deleted. You can stop the transfer at any time
|
||||
and restart it later, imapsync works well with bad connections. imapsync
|
||||
is CPU hungry so nice and renice commands can be a good help. imapsync
|
||||
can be memory hungry too, especially with large messages.
|
||||
sides. Same headers and the transfer is done only once. All flags are
|
||||
preserved, unread will stay unread, read will stay read, deleted will
|
||||
stay deleted. You can stop the transfer at any time and restart it
|
||||
later, imapsync works well with bad connections. imapsync is CPU hungry
|
||||
so nice and renice commands can be a good help. imapsync can be memory
|
||||
hungry too, especially with large messages.
|
||||
|
||||
You can decide to delete the messages from the source mailbox after a
|
||||
successful transfer (it is a good feature when migrating). In that case,
|
||||
use the --delete --expunge1 options.
|
||||
|
||||
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.
|
||||
you just want to keep a "live" copy of B in A (--delete2 may help)
|
||||
|
||||
OPTIONS
|
||||
To get a description of each option just invoke:
|
||||
@ -229,30 +240,32 @@ BUG REPORT GUIDELINES
|
||||
Help us to help you: in your report, please include:
|
||||
|
||||
- imapsync version.
|
||||
|
||||
- output given with --debug --debugimap near the failure point.
|
||||
|
||||
- output given with --debug --debugimap near the failure point.
|
||||
Isolate a message or two in a folder 'BUG' and use
|
||||
--folder 'BUG' --debug --debugimap
|
||||
|
||||
- imap server software on both side and their version number.
|
||||
|
||||
- imapsync with all the options you use, the full command line
|
||||
|
||||
imapsync ... --folder 'BUG' --debug --debugimap
|
||||
|
||||
- imap server software on both side and their version number.
|
||||
|
||||
- imapsync with all the options you use, the full command line
|
||||
you use (except the passwords of course).
|
||||
|
||||
- IMAPClient.pm version.
|
||||
|
||||
- operating system running imapsync.
|
||||
|
||||
- operating systems on both sides and the third side in case
|
||||
|
||||
- IMAPClient.pm version.
|
||||
|
||||
- operating system running imapsync.
|
||||
|
||||
- operating systems on both sides and the third side in case
|
||||
you run imapsync on a foreign host from the both.
|
||||
|
||||
- virtual software context (vmware, xen etc.)
|
||||
|
||||
- virtual software context (vmware, xen etc.)
|
||||
|
||||
Most of those values can be found as a copy/paste at the begining of the
|
||||
output.
|
||||
|
||||
One time in your life, read the paper "How To Ask Questions The Smart
|
||||
Way" http://www.catb.org/~esr/faqs/smart-questions.html and forget it.
|
||||
Way" http://www.catb.org/~esr/faqs/smart-questions.html and then forget
|
||||
it.
|
||||
|
||||
IMAP SERVERS
|
||||
Failure stories reported with the following 4 imap servers:
|
||||
@ -385,7 +398,7 @@ SIMILAR SOFTWARES
|
||||
see also tools/wonko_ruby_imapsync
|
||||
pop2imap : http://www.linux-france.org/prj/pop2imap/
|
||||
|
||||
Feedback (good or bad) will always be welcome.
|
||||
Feedback (good or bad) will often be welcome.
|
||||
|
||||
$Id: imapsync,v 1.337 2010/07/16 23:23:40 gilles Exp gilles $
|
||||
$Id: imapsync,v 1.340 2010/08/09 00:03:21 gilles Exp gilles $
|
||||
|
||||
|
6
TIME
6
TIME
@ -1,4 +1,8 @@
|
||||
|
||||
50 3 replies on list.
|
||||
40 http://www.linux-france.org/prj/imapsync_list/threads.html#00582
|
||||
250 ietf imap5 discussion
|
||||
30 refactoring
|
||||
80 read RFC2683 - IMAP4 Implementation Recommendations
|
||||
140 imapsync under win32 strawberry, pp (par::packer), imapsync.exe
|
||||
300 imapsync under win32. test msw, environnement, using activestate
|
||||
70 Profiling tests. Interresting results!
|
||||
|
10
TODO
10
TODO
@ -1,5 +1,5 @@
|
||||
#!/bin/cat
|
||||
# $Id: TODO,v 1.78 2010/07/14 13:37:02 gilles Exp gilles $
|
||||
# $Id: TODO,v 1.80 2010/08/09 01:15:44 gilles Exp gilles $
|
||||
|
||||
TODO file for imapsync
|
||||
----------------------
|
||||
@ -21,6 +21,14 @@ Evaluate
|
||||
http://www.rackspace.com/apps/email_hosting/migrations
|
||||
http://www.yippiemove.com/
|
||||
|
||||
Add a well described problem for each problem detected
|
||||
and counted in error counter statistics.
|
||||
|
||||
Add yahoo imap support:
|
||||
http://elearningcentral.blogspot.com/2010/07/how-to-use-imapsync-with-yahoo-imap.html
|
||||
http://www.bwebcentral.com/utils/imapsync-yahoo
|
||||
See patches/imapsync-yahoo
|
||||
|
||||
|
||||
DONE. Bugfix. Duplicate messages on host2 are not deleted with --delete2
|
||||
Reason: "Skipping msg #120:508 in host2 folder INBOX.2005-INBOX (duplicate so we ignore this message)"
|
||||
|
106
imapsync
106
imapsync
@ -16,21 +16,34 @@
|
||||
|
||||
imapsync - IMAP synchronisation, sync, copy or migration
|
||||
tool. Synchronise mailboxes between two imap servers. Good
|
||||
at IMAP migration. More than 32 different IMAP server softwares
|
||||
at IMAP migration. More than 36 different IMAP server softwares
|
||||
supported with success.
|
||||
|
||||
$Revision: 1.337 $
|
||||
$Revision: 1.340 $
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
To synchronise imap account "foo" on "imap.truc.org"
|
||||
to imap account "bar" on "imap.trac.org"
|
||||
with foo password "secret1"
|
||||
and bar password "secret2":
|
||||
|
||||
imapsync \
|
||||
--host1 imap.truc.org --user1 foo --password1 secret1 \
|
||||
--host2 imap.trac.org --user2 bar --password2 secret2
|
||||
|
||||
=head1 INSTALL
|
||||
|
||||
imapsync works fine under any Unix OS with perl.
|
||||
imapsync works fine under Windows (2000, XP) and ActiveState's 5.8 Perl
|
||||
imapsync works fine under Windows (2000, XP) with ActiveState's 5.8 Perl
|
||||
or as a standalone binary software.
|
||||
|
||||
imapsync is already available directly on the following distributions (at least):
|
||||
FreeBSD, Debian, Ubuntu, Gentoo, NetBSD, Darwin, Mandriva and OpenBSD (yeah!).
|
||||
imapsync is already available directly on the following distributions
|
||||
(at least):
|
||||
FreeBSD, Debian, Ubuntu, Gentoo, NetBSD, Darwin, Mandriva and OpenBSD (yeah!).
|
||||
|
||||
Get imapsync at
|
||||
http://www.linux-france.org/prj/imapsync/dist/
|
||||
http://www.linux-france.org/prj/imapsync/
|
||||
|
||||
You'll find a compressed tarball called imapsync-x.xx.tgz
|
||||
where x.xx is the version number. Untar the tarball where
|
||||
@ -40,13 +53,13 @@ $Revision: 1.337 $
|
||||
|
||||
Go into the directory imapsync-x.xx and read the INSTALL file.
|
||||
The INSTALL file is also at
|
||||
http://www.linux-france.org/prj/imapsync/INSTALL (for windows users)
|
||||
|
||||
http://www.linux-france.org/prj/imapsync/INSTALL
|
||||
|
||||
The freshmeat record is at http://freshmeat.net/projects/imapsync/
|
||||
|
||||
=head1 SYNOPSIS
|
||||
=head1 USAGE
|
||||
|
||||
imapsync [options]
|
||||
imapsync [options]
|
||||
|
||||
To get a description of each option just run imapsync like this:
|
||||
|
||||
@ -112,7 +125,7 @@ another. This is called migration.
|
||||
|
||||
imapsync is a good tool because it reduces the amount
|
||||
of data transferred by not transferring a given message if it
|
||||
is already on both sides. Same headers, same message size
|
||||
is already on both sides. Same headers
|
||||
and the transfer is done only once. All flags are
|
||||
preserved, unread will stay unread, read will stay read,
|
||||
deleted will stay deleted. You can stop the transfer at any
|
||||
@ -126,7 +139,8 @@ after a successful transfer (it is a good feature when migrating).
|
||||
In that case, use the --delete --expunge1 options.
|
||||
|
||||
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.
|
||||
in case you just want to keep a "live" copy of B in A (--delete2
|
||||
may help)
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
@ -272,23 +286,24 @@ know you run windows(tm) and you haven't read the README yet.
|
||||
Help us to help you: in your report, please include:
|
||||
|
||||
- imapsync version.
|
||||
|
||||
|
||||
- output given with --debug --debugimap near the failure point.
|
||||
Isolate a message or two in a folder 'BUG' and use
|
||||
--folder 'BUG' --debug --debugimap
|
||||
|
||||
|
||||
imapsync ... --folder 'BUG' --debug --debugimap
|
||||
|
||||
- imap server software on both side and their version number.
|
||||
|
||||
|
||||
- imapsync with all the options you use, the full command line
|
||||
you use (except the passwords of course).
|
||||
|
||||
|
||||
- IMAPClient.pm version.
|
||||
|
||||
|
||||
- operating system running imapsync.
|
||||
|
||||
|
||||
- operating systems on both sides and the third side in case
|
||||
you run imapsync on a foreign host from the both.
|
||||
|
||||
|
||||
- virtual software context (vmware, xen etc.)
|
||||
|
||||
Most of those values can be found as a copy/paste at the begining of the output.
|
||||
@ -296,7 +311,7 @@ Most of those values can be found as a copy/paste at the begining of the output.
|
||||
One time in your life, read the paper
|
||||
"How To Ask Questions The Smart Way"
|
||||
http://www.catb.org/~esr/faqs/smart-questions.html
|
||||
and forget it.
|
||||
and then forget it.
|
||||
|
||||
=head1 IMAP SERVERS
|
||||
|
||||
@ -452,9 +467,9 @@ Entries for imapsync:
|
||||
pop2imap : http://www.linux-france.org/prj/pop2imap/
|
||||
|
||||
|
||||
Feedback (good or bad) will always be welcome.
|
||||
Feedback (good or bad) will often be welcome.
|
||||
|
||||
$Id: imapsync,v 1.337 2010/07/16 23:23:40 gilles Exp gilles $
|
||||
$Id: imapsync,v 1.340 2010/08/09 00:03:21 gilles Exp gilles $
|
||||
|
||||
=cut
|
||||
|
||||
@ -542,7 +557,7 @@ my(
|
||||
|
||||
# global variables initialisation
|
||||
|
||||
$rcs = '$Id: imapsync,v 1.337 2010/07/16 23:23:40 gilles Exp gilles $ ';
|
||||
$rcs = '$Id: imapsync,v 1.340 2010/08/09 00:03:21 gilles Exp gilles $ ';
|
||||
|
||||
$total_bytes_transferred = 0;
|
||||
$total_bytes_skipped = 0;
|
||||
@ -561,8 +576,9 @@ unless(defined(&_SYSEXITS_H)) {
|
||||
eval 'sub EX_USAGE () {64;}' unless defined(&EX_USAGE);
|
||||
}
|
||||
|
||||
# @ARGV will be eat by get_options
|
||||
# @ARGV will be eat by get_options()
|
||||
my @argv_copy = @ARGV;
|
||||
|
||||
get_options();
|
||||
|
||||
# default values
|
||||
@ -634,17 +650,7 @@ sub localhost_info {
|
||||
}
|
||||
|
||||
if ($justconnect) {
|
||||
my $imap1 = ();
|
||||
my $imap2 = ();
|
||||
|
||||
$imap1 = connect_imap($host1, $port1, $debugimap1, $ssl1, $tls1);
|
||||
print "Host1 software: ", server_banner($imap1);
|
||||
print "Host1 capability: ", join(" ", $imap1->capability()), "\n";
|
||||
$imap2 = connect_imap($host2, $port2, $debugimap2, $ssl2, $tls2);
|
||||
print "Host2 software: ", server_banner($imap2);
|
||||
print "Host2 capability: ", join(" ", $imap2->capability()), "\n";
|
||||
$imap1->logout();
|
||||
$imap2->logout();
|
||||
justconnect();
|
||||
exit_clean(0);
|
||||
}
|
||||
|
||||
@ -668,8 +674,8 @@ if ($syncinternaldates) {
|
||||
|
||||
if ($syncinternaldates || $idatefromheader) {
|
||||
|
||||
# Date::Manip is an ugly module it exits (confess) for reading an unset value
|
||||
# I should write a bug report but too lazy.
|
||||
# Date::Manip is an ugly module: it exits (confess) for reading an unset value
|
||||
# I should write a bug report but I'm too lazy.
|
||||
|
||||
no warnings 'redefine';
|
||||
local *Carp::confess = sub { return undef; };
|
||||
@ -1895,7 +1901,7 @@ Bye.'
|
||||
print "flags & date from: [$h1_flags][$d]\n";
|
||||
last FOLDER if $imap1->IsUnconnected();
|
||||
last FOLDER if $imap2->IsUnconnected();
|
||||
$d = undef;
|
||||
$d = undef if ($d eq "");
|
||||
unless ($dry) {
|
||||
|
||||
if ($OSNAME eq "MSWin32") {
|
||||
@ -2095,7 +2101,7 @@ exit_clean(0);
|
||||
# subroutines
|
||||
|
||||
sub imapsync_version {
|
||||
my $rcs = '$Id: imapsync,v 1.337 2010/07/16 23:23:40 gilles Exp gilles $ ';
|
||||
my $rcs = '$Id: imapsync,v 1.340 2010/08/09 00:03:21 gilles Exp gilles $ ';
|
||||
$rcs =~ m/,v (\d+\.\d+)/;
|
||||
my $VERSION = ($1) ? $1: "UNKNOWN";
|
||||
return($VERSION);
|
||||
@ -2179,8 +2185,8 @@ sub banner_imapsync {
|
||||
my @argv_copy = @_;
|
||||
my $banner_imapsync = join("",
|
||||
'$RCSfile: imapsync,v $ ',
|
||||
'$Revision: 1.337 $ ',
|
||||
'$Date: 2010/07/16 23:23:40 $ ',
|
||||
'$Revision: 1.340 $ ',
|
||||
'$Date: 2010/08/09 00:03:21 $ ',
|
||||
"\n",localhost_info(), "\n",
|
||||
"Command line used:\n",
|
||||
"$0 ", command_line_nopassword(@argv_copy), "\n",
|
||||
@ -2216,6 +2222,22 @@ sub write_pidfile {
|
||||
return($PROCESS_ID);
|
||||
}
|
||||
|
||||
sub justconnect {
|
||||
my $imap1 = ();
|
||||
my $imap2 = ();
|
||||
|
||||
$imap1 = connect_imap($host1, $port1, $debugimap1, $ssl1, $tls1);
|
||||
print "Host1 software: ", server_banner($imap1);
|
||||
print "Host1 capability: ", join(" ", $imap1->capability()), "\n";
|
||||
$imap2 = connect_imap($host2, $port2, $debugimap2, $ssl2, $tls2);
|
||||
print "Host2 software: ", server_banner($imap2);
|
||||
print "Host2 capability: ", join(" ", $imap2->capability()), "\n";
|
||||
$imap1->logout();
|
||||
$imap2->logout();
|
||||
|
||||
}
|
||||
|
||||
|
||||
sub exit_clean {
|
||||
my $status = shift;
|
||||
|
||||
|
23
index.shtml
23
index.shtml
@ -5,7 +5,7 @@
|
||||
<title>imapsync <!--#exec cmd="cat VERSION" --> </title>
|
||||
<meta name="generator" content="Bluefish 1.0.7"/>
|
||||
<meta name="author" content="Gilles LAMIRAL"/>
|
||||
<meta name="date" content="2010-07-17T02:07:03+0200"/>
|
||||
<meta name="date" content="2010-07-27T01:39:03+0200"/>
|
||||
<meta name="copyright" content="None"/>
|
||||
<meta name="keywords" content="imap, transfert, migration"/>
|
||||
<meta name="description" content="imap migration tool"/>
|
||||
@ -16,26 +16,15 @@
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
google_ad_client = "pub-2680256394263335";
|
||||
/* imasync large 728x90 */
|
||||
google_ad_slot = "6321738813";
|
||||
google_ad_width = 728;
|
||||
google_ad_height = 90;
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||
</script>
|
||||
|
||||
<h1><a href="http://www.linux-france.org/prj/imapsync/">imapsync web site</a></h1>
|
||||
|
||||
<h2>What is imapsync?</h2>
|
||||
|
||||
<p><b>imapsync</b> software is a command line tool allowing incremental and
|
||||
recursive <b>imap</b> transfers from one mailbox to another.
|
||||
recursive <b>imap</b> transfers from one mailbox to another, both anywhere on the internet.
|
||||
</p>
|
||||
|
||||
<a id="AUTHOR"></a>
|
||||
<h2>AUTHOR</h2>
|
||||
|
||||
<p>Gilles LAMIRAL<br/>
|
||||
@ -55,6 +44,7 @@ recursive <b>imap</b> transfers from one mailbox to another.
|
||||
for feedback.
|
||||
</p>
|
||||
|
||||
<a id="donation"></a>
|
||||
<h2>imapsync donation</h2>
|
||||
<p>Happy with this <b>free</b>, <b>open</b> and <b>gratis</b> software?<br/></p>
|
||||
<p><b>Help</b> the author to <b>maintain</b> imapsync and <b>support</b> users:</p>
|
||||
@ -75,6 +65,7 @@ Or offer him a book on his
|
||||
|
||||
<b><i>Thanks in advance!</i></b></p>
|
||||
|
||||
<a id="latest"></a>
|
||||
<h2><a href="imapsync">Latest release
|
||||
<!--#exec cmd="cat VERSION" -->
|
||||
(<!--#flastmod file="imapsync" -->)
|
||||
@ -94,6 +85,7 @@ thanks to Strawberry Perl 5.12 and Par::Packed module.<br/>
|
||||
|
||||
<h2><a href="FAQ">Frequently Asked Questions</a></h2>
|
||||
|
||||
<a id="MAILING-LIST"></a>
|
||||
<h2>MAILING-LIST</h2>
|
||||
|
||||
<p>
|
||||
@ -133,6 +125,7 @@ thanks to Strawberry Perl 5.12 and Par::Packed module.<br/>
|
||||
<b>Thank you for your participation!</b>
|
||||
</p>
|
||||
|
||||
<a id="TODO"></a>
|
||||
<h2><a href="TODO">TODO</a></h2>
|
||||
|
||||
<p>I code new features for free when I have time and when I find it useful.<br/>
|
||||
@ -166,7 +159,7 @@ If you really want a feature you can donate money and I'll code it.<br/>
|
||||
<!--#config timefmt="%D" -->
|
||||
<!--#config timefmt="%A %B %d, %Y" -->
|
||||
This document last modified <!--#echo var="LAST_MODIFIED" --> <br/>
|
||||
$Id: index.shtml,v 1.14 2010/07/17 00:07:16 gilles Exp gilles $
|
||||
$Id: index.shtml,v 1.17 2010/07/26 23:40:00 gilles Exp gilles $
|
||||
</p>
|
||||
|
||||
</body>
|
||||
|
45
patches/imapsync-1.337_tobit_V6.patch
Normal file
45
patches/imapsync-1.337_tobit_V6.patch
Normal file
@ -0,0 +1,45 @@
|
||||
--- imapsync-1.337 2010-08-02 13:56:06.000000000 +0200
|
||||
+++ imapsync-1.337_tobit-workaround 2010-08-02 13:53:58.000000000 +0200
|
||||
@@ -3821,6 +3821,7 @@
|
||||
$banner;
|
||||
}
|
||||
|
||||
+
|
||||
# IMAPClient 2.2.9 3.xx ads
|
||||
|
||||
package Mail::IMAPClient;
|
||||
@@ -3869,3 +3870,33 @@
|
||||
#$self->Fast_io( $self->Fast_io );
|
||||
$sock;
|
||||
}
|
||||
+
|
||||
+sub search {
|
||||
+ my ( $self, @args ) = @_;
|
||||
+
|
||||
+ @args = $self->_quote_search(@args);
|
||||
+
|
||||
+ $self->_imap_uid_command( SEARCH => @args )
|
||||
+ or return undef;
|
||||
+
|
||||
+ my @hits;
|
||||
+ foreach ( $self->History ) {
|
||||
+ chomp;
|
||||
+ s/$CR?$LF$//o;
|
||||
+ s/^(\s*\d+)/* SEARCH $1/;
|
||||
+ s/^\*\s+SEARCH\s+(?=.*?\d)// or next;
|
||||
+ push @hits, grep /^\d+$/, split;
|
||||
+ }
|
||||
+
|
||||
+ @hits
|
||||
+ or $self->_debug("Search successful but found no matching messages");
|
||||
+
|
||||
+ # return empty list
|
||||
+ return
|
||||
+ wantarray ? @hits
|
||||
+ : !@hits ? \@hits
|
||||
+ : $self->Ranges ? $self->Range( \@hits )
|
||||
+ : \@hits;
|
||||
+}
|
||||
+
|
||||
+
|
||||
|
2430
patches/imapsync-yahoo
Normal file
2430
patches/imapsync-yahoo
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user