mirror of
https://github.com/imapsync/imapsync.git
synced 2025-05-31 09:53:48 +02:00
1.476
This commit is contained in:
parent
054e58c3b9
commit
e76c9d2097
18 changed files with 448 additions and 1375 deletions
24
CREDITS
24
CREDITS
|
@ -1,5 +1,5 @@
|
|||
#!/bin/cat
|
||||
# $Id: CREDITS,v 1.162 2011/09/21 20:21:14 gilles Exp gilles $
|
||||
# $Id: CREDITS,v 1.165 2011/12/10 02:25:01 gilles Exp gilles $
|
||||
|
||||
If you want to make a donation to the author, Gilles LAMIRAL,
|
||||
use any of the following ways:
|
||||
|
@ -30,6 +30,23 @@ I thank very much all of these people.
|
|||
I thank also very much all people who bought imapsync from the homepage
|
||||
but I don't cite them here.
|
||||
|
||||
Thomas Edgar
|
||||
Gave a FAQ item "from Exchange 2003 to Cyrus Imap 2.4"
|
||||
|
||||
Dan Hulme.
|
||||
Found a bug in the FAQ about --regextrans2
|
||||
(Fix is --regextrans2 's,${h2_prefix}(.*),${h2_prefix}FOO${h2_sep}$1,')
|
||||
Suggested default --useheader 'Message-ID' --useheader 'Received'
|
||||
(Exchange compliant)
|
||||
|
||||
Ameir Abdeldayem
|
||||
Gave a patch to sync messages lacking Message-ID
|
||||
http://www.linux-france.org/prj/imapsync_list/msg01151.html
|
||||
|
||||
Yousaf Shah
|
||||
Contributed by giving the book
|
||||
19.90 "Making Things Talk: Using Sensors, Networks, and Arduino to see, hear, and feel your world"
|
||||
|
||||
Klaus Franken
|
||||
Patch to avoid useless warning "Use of uninitialized value $uid1 in exists"
|
||||
|
||||
|
@ -1020,6 +1037,9 @@ Eric Yung
|
|||
|
||||
Total amount of book prices :
|
||||
c \
|
||||
19.90+\
|
||||
13.59+\
|
||||
32.65+\
|
||||
20.31+\
|
||||
\
|
||||
75.00+\
|
||||
|
@ -1150,4 +1170,4 @@ c \
|
|||
31.20+\
|
||||
40.00
|
||||
=
|
||||
2963.96
|
||||
3050.41
|
||||
|
|
43
ChangeLog
43
ChangeLog
|
@ -1,17 +1,52 @@
|
|||
|
||||
RCS file: RCS/imapsync,v
|
||||
Working file: imapsync
|
||||
head: 1.468
|
||||
head: 1.476
|
||||
branch:
|
||||
locks: strict
|
||||
gilles: 1.468
|
||||
gilles: 1.476
|
||||
access list:
|
||||
symbolic names:
|
||||
keyword substitution: kv
|
||||
total revisions: 468; selected revisions: 468
|
||||
total revisions: 476; selected revisions: 476
|
||||
description:
|
||||
----------------------------
|
||||
revision 1.468 locked by: gilles;
|
||||
revision 1.476 locked by: gilles;
|
||||
date: 2011/12/10 01:33:50; author: gilles; state: Exp; lines: +34 -8
|
||||
Applied Ameir Abdeldayem patch to deal with errors like
|
||||
"Host1 Sent/15 size 1428 ignored (no header so we ignore this message)"
|
||||
It happens with Sent folder when no Message-Id nor Received header
|
||||
are defined in a message.
|
||||
----------------------------
|
||||
revision 1.475
|
||||
date: 2011/12/08 08:23:16; author: gilles; state: Exp; lines: +7 -7
|
||||
Default header used to identify a message are now "Message-Id" and "Received".
|
||||
----------------------------
|
||||
revision 1.474
|
||||
date: 2011/12/02 20:30:16; author: gilles; state: Exp; lines: +9 -9
|
||||
Default down from 1000 to --split1 500. (Cyrus "Word too long")
|
||||
----------------------------
|
||||
revision 1.473
|
||||
date: 2011/12/01 14:06:23; author: gilles; state: Exp; lines: +8 -8
|
||||
Fixed output. fetch_hash_2 no longer exists.
|
||||
----------------------------
|
||||
revision 1.472
|
||||
date: 2011/12/01 12:44:48; author: gilles; state: Exp; lines: +11 -6
|
||||
Added start and end dates in the final statistics.
|
||||
----------------------------
|
||||
revision 1.471
|
||||
date: 2011/11/24 09:29:26; author: gilles; state: Exp; lines: +21 -20
|
||||
Checked and updated "Similar softwares" section in documentation.
|
||||
----------------------------
|
||||
revision 1.470
|
||||
date: 2011/11/23 18:14:20; author: gilles; state: Exp; lines: +7 -7
|
||||
typo
|
||||
----------------------------
|
||||
revision 1.469
|
||||
date: 2011/11/20 17:44:35; author: gilles; state: Exp; lines: +16 -9
|
||||
Added --nofilterflags to chech STORE flags ignoring PERMANENTFLAGS (Exchange tests)
|
||||
----------------------------
|
||||
revision 1.468
|
||||
date: 2011/11/18 01:23:37; author: gilles; state: Exp; lines: +33 -105
|
||||
Replaced fetch_hash_2() calls by normal fetch_hash()
|
||||
----------------------------
|
||||
|
|
77
FAQ
77
FAQ
|
@ -1,5 +1,5 @@
|
|||
#!/bin/cat
|
||||
# $Id: FAQ,v 1.97 2011/11/17 22:14:15 gilles Exp gilles $
|
||||
# $Id: FAQ,v 1.100 2011/12/10 01:38:36 gilles Exp gilles $
|
||||
|
||||
+------------------+
|
||||
| FAQ for imapsync |
|
||||
|
@ -139,6 +139,34 @@ Q. Is is legal?
|
|||
R. Yes, the license permits it
|
||||
http://imapsync.lamiral.info/COPYING
|
||||
|
||||
=======================================================================
|
||||
Q. How can I speed up transfers?
|
||||
|
||||
R. By using --useuid imapsync avoid getting messages headers and build
|
||||
a cache. On Unix a good thing is to add also --tmpdir /var/tmp
|
||||
to keep the cache since /tmp is often cleared on reboot.
|
||||
|
||||
imapsync ... --useuid
|
||||
|
||||
R. Add also --nofoldersizes since the default behavior is to compute
|
||||
folder sizes. Folder sizes are useless for the transfer, just
|
||||
useful to see what has to be done on each folder.
|
||||
|
||||
=======================================================================
|
||||
Q. I see warning messages like
|
||||
"Host1 Sent/15 size 1428 ignored (no header so we ignore this message)"
|
||||
What can I do to transfer those messages?
|
||||
|
||||
R1. Use --addheader option, it will add a header like
|
||||
"Message-Id: <15@imapsync>" and transfer the message on host2.
|
||||
Duplicates won't happen in next runs.
|
||||
|
||||
imapsync ... --addheader
|
||||
|
||||
R2. Use --useuid then imapsync will avoid dealing with headers.
|
||||
|
||||
imapsync ... --useuid
|
||||
|
||||
=======================================================================
|
||||
Q. How can I try imapsync with the new Mail::IMAPClient 3.xx perl library?
|
||||
|
||||
|
@ -270,7 +298,7 @@ Consequences:
|
|||
The result is that you can have more messages on host1 than on host2.
|
||||
|
||||
R2. With option --useuid imapsync doesn't use headers to identify
|
||||
messages on both sides but it uses their imap uid. In than case
|
||||
messages on both sides but it uses their imap uid. In that case
|
||||
duplicates on host1 are transfered on host2.
|
||||
|
||||
=======================================================================
|
||||
|
@ -641,6 +669,41 @@ R2. Use --include '^MyFolder'
|
|||
and only them.
|
||||
|
||||
|
||||
======================================================================
|
||||
Q. How to migrate from or to Exchange 2003 with an admin/authuser
|
||||
account?
|
||||
|
||||
R. Thomas Edgar wrote the following
|
||||
|
||||
In case you can glean something from this snippet which allowed us
|
||||
to migrate from Exchange 2003 t0 Cyrus Imap 2.4 (you would reverse
|
||||
the flow to go the other way):
|
||||
|
||||
imapsync --dry --host1 ExchangeServer.mycompany.com \
|
||||
--user1 Some.User@mycompany.com --authuser1 ExchangeAdminAccount \
|
||||
--proxyauth1 --password1 '$pass_with_dollars$' \
|
||||
--host2 cyrusimapbackend.mycompany.com \
|
||||
--user2 SameOrDiffererentUser@mycompany.com \
|
||||
--authuser2 CyrusAdminAccount --proxyauth2
|
||||
|
||||
We also needed to:
|
||||
|
||||
- Ensure the Exchange Admin Acct had IMAP4 enabled in it's
|
||||
profile (it initially didn't!)
|
||||
- Ensure the Some.User Exchange Acct had IMAP4 enabled
|
||||
in it's profile (it initially didn't!)
|
||||
- Add the CyrusAdminAccount to admins line in /etc/imapd.conf
|
||||
- Give CyrusAdminAccount lrswipkxtecda to the Cyrus Imap account
|
||||
being migrated to (- or in your case, from)
|
||||
|
||||
In case you are not aware:
|
||||
|
||||
- It will prompt for a password if you don't supply it
|
||||
- the domain part of the fully-qualified email could be
|
||||
omitted in our case
|
||||
- Use --debugimap when testing initial connectivity, if necessary
|
||||
|
||||
|
||||
======================================================================
|
||||
Q. How to migrate from or to Exchange 2007/2010 with an
|
||||
admin/authuser account?
|
||||
|
@ -786,6 +849,9 @@ Q. Give examples about --regextrans2
|
|||
|
||||
R. --regextrans2 is used to transform folder names
|
||||
|
||||
Remember that --regextrans2 applies after the default
|
||||
inversion prefix1 <-> prefix2 and sep1 <-> sep2
|
||||
|
||||
Examples:
|
||||
|
||||
0) First try with --dry --justfolders options since imapsync shows the
|
||||
|
@ -809,15 +875,14 @@ Examples:
|
|||
--regextrans2 's#(.*)#FOO/$1#'
|
||||
|
||||
or:
|
||||
|
||||
|
||||
|
||||
c) Any separator, any prefix solution, FOO is the subfolder:
|
||||
|
||||
It is a complicated line because every case is taken into account.
|
||||
Type it in one line (or with the \ at the end of first line on Unix shells.
|
||||
|
||||
--regextrans2 's,${h1_prefix}(.*),${h2_prefix}FOO${h2_sep}$1,' \
|
||||
--regextrans2 's,^INBOX$,${h2_prefix}NEW${h2_sep}INBOX,'
|
||||
--regextrans2 's,${h2_prefix}(.*),${h2_prefix}FOO${h2_sep}$1,' \
|
||||
--regextrans2 's,^INBOX$,${h2_prefix}FOO{h2_sep}INBOX,'
|
||||
|
||||
|
||||
3) to substitute all characters dot "." by underscores "_"
|
||||
|
|
18
INSTALL
18
INSTALL
|
@ -1,4 +1,4 @@
|
|||
# $Id: INSTALL,v 1.21 2011/11/17 08:07:03 gilles Exp gilles $
|
||||
# $Id: INSTALL,v 1.22 2011/12/10 02:27:04 gilles Exp gilles $
|
||||
#
|
||||
# INSTALL file for imapsync
|
||||
# imapsync : IMAP sync or copy tool.
|
||||
|
@ -110,11 +110,23 @@ Here is some individual module help:
|
|||
- Perl Authen::NTLM
|
||||
perl -mAuthen::NTLM -e ''
|
||||
|
||||
Everything in one command:
|
||||
Test everything in one command:
|
||||
|
||||
perl -mMail::IMAPClient -mDigest::MD5 -mTerm::ReadKey -mIO::Socket::SSL \
|
||||
-mFile::Spec -mDigest::HMAC_MD5 -mAuthen::NTLM -e ''
|
||||
|
||||
You can install automatically those Perl modules via the
|
||||
following commands (with root permissions)
|
||||
|
||||
perl -MCPAN -e 'install Mail::IMAPClient'
|
||||
perl -MCPAN -e 'install Digest::MD5'
|
||||
perl -MCPAN -e 'install Term::ReadKey'
|
||||
perl -MCPAN -e 'install IO::Socket::SSL'
|
||||
perl -MCPAN -e 'install File::Spec'
|
||||
perl -MCPAN -e 'install Digest::HMAC_MD5'
|
||||
perl -MCPAN -e 'install Authen::NTLM'
|
||||
|
||||
|
||||
INSTALLING on Unix
|
||||
------------------
|
||||
|
||||
|
@ -122,7 +134,7 @@ To see what will be done, just run:
|
|||
|
||||
make -n install
|
||||
|
||||
To install imapsync, just run:
|
||||
To install imapsync, just run (as root):
|
||||
|
||||
make install
|
||||
|
||||
|
|
32
README
32
README
|
@ -1,9 +1,9 @@
|
|||
NAME
|
||||
imapsync - IMAP synchronisation, sync, copy or migration tool.
|
||||
Synchronise mailboxes between two imap servers. Good at IMAP migration.
|
||||
More than 36 different IMAP server softwares supported with success.
|
||||
More than 44 different IMAP server softwares supported with success.
|
||||
|
||||
$Revision: 1.468 $
|
||||
$Revision: 1.476 $
|
||||
|
||||
SYNOPSIS
|
||||
To synchronise imap account "foo" on "imap.truc.org" to imap account
|
||||
|
@ -111,9 +111,7 @@ DESCRIPTION
|
|||
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.
|
||||
later, imapsync works well with bad connections.
|
||||
|
||||
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,
|
||||
|
@ -125,6 +123,11 @@ DESCRIPTION
|
|||
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 (--delete2 may help)
|
||||
|
||||
imapsync is not adequate for maintaining two active imap accounts in
|
||||
synchronization where the user plays independently on both sides. Use
|
||||
offlineimap (written by John Goerzen) or mbsync (written by Michael R.
|
||||
Elkins) for 2 ways synchronizations.
|
||||
|
||||
OPTIONS
|
||||
To get a description of each option just invoke:
|
||||
|
||||
|
@ -423,25 +426,22 @@ Links
|
|||
|
||||
SIMILAR SOFTWARES
|
||||
imap_tools : http://www.athensfbc.com/imap_tools
|
||||
offlineimap : http://software.complete.org/offlineimap
|
||||
offlineimap : https://github.com/nicolas33/offlineimap
|
||||
mbsync : http://isync.sourceforge.net/
|
||||
mailsync : http://mailsync.sourceforge.net/
|
||||
imapxfer : http://www.washington.edu/imap/
|
||||
part of the imap-utils from UW.
|
||||
mailutil : replace imapxfer in
|
||||
part of the imap-utils from UW.
|
||||
http://www.gsp.com/cgi-bin/man.cgi?topic=mailutil
|
||||
mailutil : http://www.washington.edu/imap/
|
||||
part of the UW IMAP tookit.
|
||||
imaprepl : http://www.bl0rg.net/software/
|
||||
http://freshmeat.net/projects/imap-repl/
|
||||
imap_migrate : http://freshmeat.net/projects/imapmigration/
|
||||
http://freecode.com/projects/imap-repl/
|
||||
imapcopy : http://home.arcor.de/armin.diehl/imapcopy/imapcopy.html
|
||||
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
|
||||
isync : http://isync.sourceforge.net/
|
||||
see also file W/tools/wonko_ruby_imapsync
|
||||
exchange-away : http://exchange-away.sourceforge.net/
|
||||
pop2imap : http://www.linux-france.org/prj/pop2imap/
|
||||
|
||||
Feedback (good or bad) will often be welcome.
|
||||
|
||||
$Id: imapsync,v 1.468 2011/11/18 01:23:37 gilles Exp gilles $
|
||||
$Id: imapsync,v 1.476 2011/12/10 01:33:50 gilles Exp gilles $
|
||||
|
||||
|
|
3
TIME
3
TIME
|
@ -1,3 +1,6 @@
|
|||
|
||||
180 Release 1.476 --addheader
|
||||
15 Added start and end dates in the final statistics.
|
||||
210 Added statistics on ks and lfo, % Operating systems, ip per year .Updated index.shtml
|
||||
210 Added --nocacheaftercopy and played with dbmail (uids generation are +=2!)
|
||||
120 Statistics statistics_VERSION_synthesis
|
||||
|
|
48
TODO
48
TODO
|
@ -1,16 +1,12 @@
|
|||
#!/bin/cat
|
||||
# $Id: TODO,v 1.104 2011/11/17 15:45:57 gilles Exp gilles $
|
||||
# $Id: TODO,v 1.108 2011/12/07 23:59:32 gilles Exp gilles $
|
||||
|
||||
TODO file for imapsync
|
||||
----------------------
|
||||
|
||||
Post on newsgroup comp.mail.imap when a new release comes.
|
||||
http://groups.google.fr/group/comp.mail.imap
|
||||
|
||||
Post on imapsync mailing-list when a new release comes.
|
||||
|
||||
Start a wiki for imapsync.
|
||||
|
||||
Write a tutorial.
|
||||
Add a best practice migration tips document.
|
||||
|
||||
Write a Mail::imapsync package and use it.
|
||||
|
@ -22,15 +18,34 @@ http://www.linux-france.org/prj/imapsync_list/msg00307.html
|
|||
Evaluate
|
||||
http://www.rackspace.com/apps/email_hosting/migrations
|
||||
http://www.yippiemove.com/
|
||||
http://www.migrationwiz.com/
|
||||
|
||||
Consider /var/tmp/ instead of /tmp (/tmp is destoyed
|
||||
on some Unix at reboot)
|
||||
|
||||
Add a FAQ entry about long path over than 260 character on Win32.
|
||||
|
||||
Fix long path over than 260 character on Win32.
|
||||
Think about Digest::SHA or Digest::SHA::PurePerl.
|
||||
|
||||
Try to use imapsync with cygwin.
|
||||
|
||||
Change default --useheader 'Message-ID' --useheader Date to
|
||||
--useheader 'Message-ID' --useheader 'Received'
|
||||
because Exchange changes Date header! (but not Received:)
|
||||
|
||||
Add an option to solve syncing Sent folder when no good header
|
||||
are available:
|
||||
http://www.linux-france.org/prj/imapsync_list/msg01151.html
|
||||
http://www.linux-france.org/prj/imapsync_list/msg01158.html
|
||||
|
||||
|
||||
Check message exists before fetching it (could have been deleted recently)
|
||||
|
||||
Find a way to avoid passwords in --debugimap unless needed.
|
||||
|
||||
Explain that users can win time/bandwidth by using --expunge
|
||||
|
||||
Fix long path over than 256 character on Win32.
|
||||
Think about Digest::SHA or Digest::SHA::PurePerl.
|
||||
|
||||
Fix "\Forwarded" flag bug in courier.
|
||||
Does \lalala can be forbidden (courier does a
|
||||
"16 NO Error in IMAP command received by server"
|
||||
|
@ -152,6 +167,21 @@ http://asg.web.cmu.edu/cyrus/download/imapd/altnamespace.html
|
|||
|
||||
===========================================================================
|
||||
|
||||
DONE. Add a script to install automaticaly all needed Perl modules
|
||||
if needed. Not a script but command lines in INSTALL file.
|
||||
|
||||
DONE. Post on imapsync mailing-list when a new release comes.
|
||||
No since I no longer distribute it gratis, imapsync detects
|
||||
itself a new release and buyers are informed by a specific
|
||||
list. I know some packagers (FreeBSD) use the Changelog file
|
||||
to detect an update.
|
||||
|
||||
DONE. Subscribe users to imapsync_update mailing-list automatically after the payment.
|
||||
(done in paypal_send)
|
||||
|
||||
DONE. NO became porn! Post on newsgroup comp.mail.imap when a new release comes.
|
||||
http://groups.google.fr/group/comp.mail.imap
|
||||
|
||||
DONE. The --search option allows this (and many other things)
|
||||
Add option --exclude_messages_with_flag
|
||||
|
||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
|||
1.468
|
||||
1.476
|
||||
|
|
|
@ -1 +1 @@
|
|||
1.468
|
||||
1.476
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
# $Id: paypal_bilan,v 1.37 2011/09/17 22:54:31 gilles Exp gilles $
|
||||
# $Id: paypal_bilan,v 1.39 2011/11/30 07:59:11 gilles Exp gilles $
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
@ -453,7 +453,7 @@ sub compute_line {
|
|||
my $IND_flag = '' ;
|
||||
$IND_flag = ' IND' if ('imapsync usage' eq $Nom_Option_1 and 'individual' eq $Valeur_Option_1 ) ;
|
||||
print "FE $invoice$FR_flag$IND_flag\n" ;
|
||||
print "Facture $invoice imapsync$FR_flag $Nom\n" ;
|
||||
print "FE $invoice$FR_flag$IND_flag imapsync $Nom\n" ;
|
||||
printf( "%.2f [EUR %.2f]\n", $Montant, $MontantEUR ) ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
#!/bin/sh
|
||||
|
||||
# usage: sh paypal_build_invoices /g/var/paypal_invoices/???
|
||||
# $Id: paypal_build_invoices,v 1.22 2011/12/02 04:08:46 gilles Exp gilles $
|
||||
|
||||
# usage: sh paypal_build_invoices /g/var/paypal_invoices/????
|
||||
|
||||
lyx -e latex /home/gilles/public_html/AGIL/factures/000/facture_imapsync-000.lyx
|
||||
cp /home/gilles/public_html/AGIL/factures/000/facture_imapsync-000.tex /g/var/paypal_invoices/
|
||||
|
@ -19,11 +21,19 @@ set -x
|
|||
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 999 /g/paypal/paypal_2011_09_complet.csv
|
||||
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 1094 /g/paypal/paypal_2011_10_complet.csv
|
||||
/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 1185 /g/paypal/paypal_2011_11_complet.csv
|
||||
/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 1263 /g/paypal/paypal_2011_12_complet.csv
|
||||
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 294 --usdeur 1.3385 /g/paypal/paypal_2011_01_complet.csv
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 382 /g/paypal/paypal_2011_02_complet.csv
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 473 /g/paypal/paypal_2011_03_complet.csv
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 570 /g/paypal/paypal_2011_04_complet.csv
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 645 /g/paypal/paypal_2011_05_complet.csv
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 733 /g/paypal/paypal_2011_06_complet.csv
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 824 /g/paypal/paypal_2011_07_complet.csv
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 917 /g/paypal/paypal_2011_08_complet.csv
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 1094 /g/paypal/paypal_2011_10_complet.csv
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 1185 /g/paypal/paypal_2011_11_complet.csv
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 1263 /g/paypal/paypal_2011_12_complet.csv
|
||||
set +x
|
||||
|
||||
# La totale
|
||||
|
@ -35,6 +45,9 @@ set +x
|
|||
--first_in 147 --avoid_numbers '292 293 643 644 731 732 1093' \
|
||||
/g/paypal/paypal_201?_??_complet.csv
|
||||
|
||||
echo 'sh paypal_build_invoices /g/var/paypal_invoices/1???'
|
||||
|
||||
|
||||
|
||||
# USD de 147 à 340
|
||||
# EUR de 341 à ...
|
||||
|
@ -81,8 +94,6 @@ set +x
|
|||
# 556 TVA 4,92
|
||||
# 563 TVA 4,92
|
||||
|
||||
echo 'sh paypal_build_invoices /g/var/paypal_invoices/???'
|
||||
|
||||
for d in "$@"; do
|
||||
echo "==== $d ===="
|
||||
cd $d
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
# $Id: paypal_build_reply,v 1.16 2011/05/31 21:25:48 gilles Exp gilles $
|
||||
# $Id: paypal_build_reply,v 1.17 2011/12/07 23:47:03 gilles Exp gilles $
|
||||
|
||||
use warnings;
|
||||
use strict;
|
||||
|
@ -99,15 +99,18 @@ while(<>) {
|
|||
|
||||
my $address = 'gilles.lamiral@laposte.net';
|
||||
my $address2 = 'gilles@lamiral.info';
|
||||
my $rcstag = '$Id: paypal_build_reply,v 1.16 2011/05/31 21:25:48 gilles Exp gilles $';
|
||||
my $rcstag = '$Id: paypal_build_reply,v 1.17 2011/12/07 23:47:03 gilles Exp gilles $';
|
||||
|
||||
my $download_info = "You will find the latest imapsync.exe binary (release $release_exe)
|
||||
and the latest imapsync source code (release $release) at the following link:
|
||||
$url" ;
|
||||
|
||||
my $next_releases ="Next imapsync releases will be available for one year without extra payment.
|
||||
Just keep this message and ask for the new links.
|
||||
(I will build an automatic subscription tool soon)" ;
|
||||
my $next_releases =
|
||||
"Next imapsync releases will be available to you for one year without extra payment.
|
||||
You'll be subscribed to a newsletter [imapsync_update] announcing new releases.
|
||||
Just keep this message and ask for the new links in case you miss the newsletter.
|
||||
Run imapsync without any argument to know if a new release is available." ;
|
||||
|
||||
|
||||
my $thanks_software = "I thank you for buying and using imapsync,
|
||||
I wish you successful transfers!" ;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
# $Id: paypal_functions,v 1.17 2011/05/31 21:26:24 gilles Exp gilles $
|
||||
# $Id: paypal_functions,v 1.18 2011/12/02 01:56:55 gilles Exp gilles $
|
||||
|
||||
paypal_prerequisites() {
|
||||
perl -mMIME::Lite -e '' || echo 'sudo aptitude install libmime-lite-perl'
|
||||
|
@ -154,7 +154,7 @@ send_reply() {
|
|||
debug_mode && echo "paypal_send $f"
|
||||
test -f "$d_sent/$b" && continue
|
||||
mkdir -p "$d_sent"
|
||||
test X"--send" = X"$1" && paypal_send --send "$f" && touch "$d_sent/$b"
|
||||
test X"--send" = X"$1" && paypal_send --send --subscribe "$f" && touch "$d_sent/$b"
|
||||
#test X"--send" = X"$1" && touch "$d_sent/$b"
|
||||
test X"" = X"$1" && paypal_send "$f"
|
||||
done
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
# $Id: paypal_send,v 1.3 2010/12/29 23:50:24 gilles Exp gilles $
|
||||
# $Id: paypal_send,v 1.7 2011/12/02 02:36:28 gilles Exp gilles $
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
@ -11,6 +11,7 @@ my (
|
|||
$help,
|
||||
$debug,
|
||||
$send,
|
||||
$subscribe,
|
||||
);
|
||||
|
||||
my $numopt = scalar(@ARGV);
|
||||
|
@ -18,6 +19,7 @@ my $opt_ret = GetOptions(
|
|||
"help" => \$help,
|
||||
"debug!" => \$debug,
|
||||
"send!" => \$send,
|
||||
"subscribe!" => \$subscribe,
|
||||
);
|
||||
|
||||
usage() and exit if ($help or ! $numopt or ! $opt_ret) ;
|
||||
|
@ -46,10 +48,18 @@ $message->build(%header);
|
|||
$message->build(Data => $data);
|
||||
$message->print(\*STDOUT);
|
||||
|
||||
my $dest = $header{ 'To:' } ;
|
||||
|
||||
if ($send) {
|
||||
$message->send;
|
||||
print "Sent to ", $header{'To:'},"\n";
|
||||
if ( $send ) {
|
||||
$message->send ;
|
||||
print "\nSent to $dest\n" ;
|
||||
}
|
||||
|
||||
if ( $subscribe ) {
|
||||
print "\necho '$dest' | add_members --regular-members-file=- --welcome-msg=y imapsync_update\n" ;
|
||||
my $out = `echo '$dest' | sudo add_members --regular-members-file=- --welcome-msg=y imapsync_update` ;
|
||||
print $out ;
|
||||
print "Subscribed $dest\n" ;
|
||||
}
|
||||
|
||||
|
||||
|
|
103
imapsync
103
imapsync
|
@ -17,10 +17,10 @@
|
|||
|
||||
imapsync - IMAP synchronisation, sync, copy or migration tool.
|
||||
Synchronise mailboxes between two imap servers.
|
||||
Good at IMAP migration. More than 36 different IMAP server softwares
|
||||
Good at IMAP migration. More than 44 different IMAP server softwares
|
||||
supported with success.
|
||||
|
||||
$Revision: 1.468 $
|
||||
$Revision: 1.476 $
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
|
@ -140,9 +140,7 @@ 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.
|
||||
connections.
|
||||
|
||||
You can decide to delete the messages from the source mailbox
|
||||
after a successful transfer (it is a good feature when migrating).
|
||||
|
@ -156,6 +154,12 @@ 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 (--delete2
|
||||
may help)
|
||||
|
||||
imapsync is not adequate for maintaining two active imap accounts
|
||||
in synchronization where the user plays independently on both sides.
|
||||
Use offlineimap (written by John Goerzen) or mbsync (written by
|
||||
Michael R. Elkins) for 2 ways synchronizations.
|
||||
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
To get a description of each option just invoke:
|
||||
|
@ -496,28 +500,25 @@ Entries for imapsync:
|
|||
=head1 SIMILAR SOFTWARES
|
||||
|
||||
imap_tools : http://www.athensfbc.com/imap_tools
|
||||
offlineimap : http://software.complete.org/offlineimap
|
||||
offlineimap : https://github.com/nicolas33/offlineimap
|
||||
mbsync : http://isync.sourceforge.net/
|
||||
mailsync : http://mailsync.sourceforge.net/
|
||||
imapxfer : http://www.washington.edu/imap/
|
||||
part of the imap-utils from UW.
|
||||
mailutil : replace imapxfer in
|
||||
part of the imap-utils from UW.
|
||||
http://www.gsp.com/cgi-bin/man.cgi?topic=mailutil
|
||||
mailutil : http://www.washington.edu/imap/
|
||||
part of the UW IMAP tookit.
|
||||
imaprepl : http://www.bl0rg.net/software/
|
||||
http://freshmeat.net/projects/imap-repl/
|
||||
imap_migrate : http://freshmeat.net/projects/imapmigration/
|
||||
http://freecode.com/projects/imap-repl/
|
||||
imapcopy : http://home.arcor.de/armin.diehl/imapcopy/imapcopy.html
|
||||
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
|
||||
isync : http://isync.sourceforge.net/
|
||||
see also file W/tools/wonko_ruby_imapsync
|
||||
exchange-away : http://exchange-away.sourceforge.net/
|
||||
pop2imap : http://www.linux-france.org/prj/pop2imap/
|
||||
|
||||
|
||||
Feedback (good or bad) will often be welcome.
|
||||
|
||||
$Id: imapsync,v 1.468 2011/11/18 01:23:37 gilles Exp gilles $
|
||||
$Id: imapsync,v 1.476 2011/12/10 01:33:50 gilles Exp gilles $
|
||||
|
||||
=cut
|
||||
|
||||
|
@ -571,7 +572,7 @@ my(
|
|||
@folder, @include, @exclude, @folderrec,
|
||||
$prefix1, $prefix2,
|
||||
@regextrans2, @regexmess, @regexflag,
|
||||
$flagsCase,
|
||||
$flagsCase, $filterflags,
|
||||
$sep1, $sep2,
|
||||
$syncinternaldates,
|
||||
$idatefromheader,
|
||||
|
@ -625,13 +626,14 @@ my(
|
|||
$delete2folders, $delete2foldersonly, $delete2foldersbutnot,
|
||||
$usecache, $debugcache, $cacheaftercopy,
|
||||
$wholeheaderifneeded, %h1_msgs_copy_by_uid, $useuid, $h2_uidguess,
|
||||
$addheader,
|
||||
);
|
||||
|
||||
# main program
|
||||
|
||||
# global variables initialisation
|
||||
|
||||
$rcs = '$Id: imapsync,v 1.468 2011/11/18 01:23:37 gilles Exp gilles $ ';
|
||||
$rcs = '$Id: imapsync,v 1.476 2011/12/10 01:33:50 gilles Exp gilles $ ';
|
||||
|
||||
$total_bytes_transferred = 0;
|
||||
$total_bytes_skipped = 0;
|
||||
|
@ -695,6 +697,9 @@ $wholeheaderifneeded = defined( $wholeheaderifneeded ) ? $wholeheaderifneeded
|
|||
# turn on RFC standard flags correction like \SEEN -> \Seen
|
||||
$flagsCase = defined( $flagsCase ) ? $flagsCase : 1 ;
|
||||
|
||||
# Use PERMANENTFLAGS if available
|
||||
$filterflags = defined( $filterflags ) ? $filterflags : 1 ;
|
||||
|
||||
# turn on relogin 5 by default
|
||||
$relogin1 = defined( $relogin1 ) ? $relogin1 : 5 ;
|
||||
$relogin2 = defined( $relogin2 ) ? $relogin2 : 5 ;
|
||||
|
@ -723,8 +728,8 @@ check_lib_version() or
|
|||
exit_clean(0) if ($justbanner);
|
||||
|
||||
# By default, 1000 at a time, not more.
|
||||
$split1 ||= 1000;
|
||||
$split2 ||= 1000;
|
||||
$split1 ||= 500;
|
||||
$split2 ||= 500;
|
||||
|
||||
$host1 || missing_option("--host1") ;
|
||||
$port1 ||= (defined $ssl1 and !defined $tls1) ? 993 : 143;
|
||||
|
@ -848,7 +853,7 @@ $fastio2 = (defined($fastio2)) ? $fastio2 : 0;
|
|||
$reconnectretry1 = (defined($reconnectretry1)) ? $reconnectretry1 : 3;
|
||||
$reconnectretry2 = (defined($reconnectretry2)) ? $reconnectretry2 : 3;
|
||||
|
||||
@useheader = ( "Message-Id", "Message-ID", "Date" ) unless ( @useheader ) ;
|
||||
@useheader = ( "Message-Id", "Message-ID", "Received" ) unless ( @useheader ) ;
|
||||
|
||||
my %useheader ;
|
||||
|
||||
|
@ -1188,7 +1193,7 @@ FOLDER: foreach my $h1_fold (@h1_folders_wanted) {
|
|||
$debug and print "Host1 getting flags idate and sizes of folder [$h1_fold] took ", timenext(), " s\n";
|
||||
unless ($h1_fir_ref) {
|
||||
print
|
||||
"Host1 folder $h1_fold: Could not fetch_hash_2 ",
|
||||
"Host1 folder $h1_fold: Could not fetch_hash ",
|
||||
scalar(@h1_msgs), " msgs: ", $imap1->LastError, "\n";
|
||||
$nb_errors++;
|
||||
next FOLDER;
|
||||
|
@ -1223,7 +1228,7 @@ FOLDER: foreach my $h1_fold (@h1_folders_wanted) {
|
|||
$debug and print "Host2 parsing headers of folder [$h2_fold] took ", timenext(), " s\n" ;
|
||||
|
||||
$debug and print "Host2 getting flags idate and sizes of folder [$h2_fold]\n" ;
|
||||
@$h2_fir_ref{@h2_msgs} = ( ); # fetch_hash_2 can select by uid with last arg as ref
|
||||
@$h2_fir_ref{@h2_msgs} = ( ); # fetch_hash can select by uid with last arg as ref
|
||||
$h2_fir_ref = $imap2->fetch_hash("FLAGS", "INTERNALDATE", "RFC822.SIZE", $h2_fir_ref)
|
||||
if (@h2_msgs);
|
||||
$debug and print "Host2 getting flags idate and sizes of folder [$h2_fold] took ", timenext(), " s\n" ;
|
||||
|
@ -1407,11 +1412,14 @@ sub sync_flags {
|
|||
my $h1_flags = $h1_fir_ref->{ $h1_msg }->{ "FLAGS" } || '' ;
|
||||
my $h2_flags = $h2_fir_ref->{ $h2_msg }->{ "FLAGS" } || '' ;
|
||||
|
||||
( $debug or $debugflags ) and
|
||||
print "init msg h1 $h1_fold/$h1_msg flags( $h1_flags ) h2 $h2_fold/$h2_msg flags( $h2_flags )\n" ;
|
||||
|
||||
# RFC 2060: This flag can not be altered by any client
|
||||
$h1_flags =~ s@\\Recent\s?@@gi ;
|
||||
$h1_flags = flags_regex( $h1_flags ) if @regexflag;
|
||||
$h1_flags = flagsCase( $h1_flags ) if $flagsCase ;
|
||||
$h1_flags = flags_filter( $h1_flags, $permanentflags2) if ( $permanentflags2 ) ;
|
||||
$h1_flags = flags_filter( $h1_flags, $permanentflags2) if ( $permanentflags2 and $filterflags ) ;
|
||||
|
||||
# compare flags - set flags if there a difference
|
||||
my @h1_flags = sort split(' ', $h1_flags );
|
||||
|
@ -1419,7 +1427,7 @@ sub sync_flags {
|
|||
my $diff = compare_lists( \@h1_flags, \@h2_flags );
|
||||
|
||||
#$diff = 1 ;
|
||||
$debugflags and print "msg h1 $h1_fold/$h1_msg flags( $h1_flags ) h2 $h2_fold/$h2_msg flags( $h2_flags )\n" ;
|
||||
( $debug or $debugflags ) and print "filt msg h1 $h1_fold/$h1_msg flags( $h1_flags ) h2 $h2_fold/$h2_msg flags( $h2_flags )\n" ;
|
||||
$diff and ( $debug or $debugflags )
|
||||
and print "msg $h2_fold/$h2_msg replacing h2 flags( $h2_flags ) with h1 flags( $h1_flags )\n";
|
||||
# This sets flags so flags can be removed with this
|
||||
|
@ -1837,8 +1845,8 @@ sub banner_imapsync {
|
|||
my @argv_copy = @_;
|
||||
my $banner_imapsync = join("",
|
||||
'$RCSfile: imapsync,v $ ',
|
||||
'$Revision: 1.468 $ ',
|
||||
'$Date: 2011/11/18 01:23:37 $ ',
|
||||
'$Revision: 1.476 $ ',
|
||||
'$Date: 2011/12/10 01:33:50 $ ',
|
||||
"\n",localhost_info(), "\n",
|
||||
"Command line used:\n",
|
||||
"$0 ", command_line_nopassword(@argv_copy), "\n",
|
||||
|
@ -2289,7 +2297,7 @@ sub foldersizes {
|
|||
printf ( "Nb messages: %11s\n", $total_nb ) ;
|
||||
printf ( "Total size: %11s bytes\n", $total_size ) ;
|
||||
printf ( "Biggest message: %11s bytes\n", $biggest ) ;
|
||||
printf ( "Time: %11s secondes\n", timenext( ) ) ;
|
||||
printf ( "Time: %11s seconds\n", timenext( ) ) ;
|
||||
}
|
||||
|
||||
sub timenext {
|
||||
|
@ -2693,6 +2701,11 @@ sub copy_message {
|
|||
$debug and print "header date from host1: [$h1_date] (fixed)\n";
|
||||
}
|
||||
|
||||
if ( $addheader and defined $h1_fir_ref->{$h1_msg}->{"NO_HEADER"} ) {
|
||||
my $header = add_header( $h1_msg ) ;
|
||||
$debug and print "msg $h1_fold/$h1_msg adding custom header [$header]\n" ;
|
||||
$string = $header . "\r\n" . $string ;
|
||||
}
|
||||
# RFC 2060: This flag can not be altered by any client
|
||||
$h1_flags =~ s@\\Recent\s?@@gi;
|
||||
$h1_flags = flags_regex($h1_flags) if @regexflag;
|
||||
|
@ -3260,6 +3273,9 @@ sub stats {
|
|||
$timeend = time();
|
||||
$timediff = $timeend - $timestart;
|
||||
|
||||
my $timestart_str = localtime( $timestart ) ;
|
||||
my $timeend_str = localtime( $timeend ) ;
|
||||
|
||||
my $memory_consumption = memory_consumption();
|
||||
my $memory_ratio = ($max_msg_size_in_bytes) ?
|
||||
sprintf('%.1f', $memory_consumption / $max_msg_size_in_bytes) : "NA";
|
||||
|
@ -3268,6 +3284,8 @@ sub stats {
|
|||
my $host2_reconnect_count = $imap2->Reconnect_counter() || 0;
|
||||
|
||||
print "++++ Statistics\n";
|
||||
print "Transfer started on : $timestart_str\n";
|
||||
print "Transfer ended on : $timeend_str\n";
|
||||
print "Transfer time : $timediff sec\n";
|
||||
print "Messages transferred : $nb_msg_transferred ";
|
||||
print "(could be $nb_msg_skipped_dry_mode without dry mode)" if ($dry);
|
||||
|
@ -3355,6 +3373,7 @@ sub get_options {
|
|||
"regextrans2=s" => \@regextrans2,
|
||||
"regexmess=s" => \@regexmess,
|
||||
"regexflag=s" => \@regexflag,
|
||||
"filterflags!" => \$filterflags,
|
||||
"flagsCase!" => \$flagsCase,
|
||||
"delete!" => \$delete,
|
||||
"delete2!" => \$delete2,
|
||||
|
@ -3424,6 +3443,7 @@ sub get_options {
|
|||
"cacheaftercopy!" => \$cacheaftercopy,
|
||||
"debugcache!" => \$debugcache,
|
||||
"useuid!" => \$useuid,
|
||||
"addheader!" => \$addheader,
|
||||
);
|
||||
|
||||
$debug and print "get options: [$opt_ret]\n";
|
||||
|
@ -3518,6 +3538,13 @@ sub parse_header_msg {
|
|||
}
|
||||
}
|
||||
|
||||
if ( ( ! $headstr) and ( $addheader ) and ( $s eq "Host1" )){
|
||||
my $header = add_header( $m_uid ) ;
|
||||
print "Host1 uid $m_uid no header found so adding our own [$header]\n";
|
||||
$headstr .= uc( $header ) ;
|
||||
$s_fir->{$m_uid}->{"NO_HEADER"} = 1;
|
||||
}
|
||||
|
||||
return() if ( ! $headstr );
|
||||
|
||||
my $size = $s_fir->{$m_uid}->{"RFC822.SIZE"};
|
||||
|
@ -3606,7 +3633,7 @@ sub check_last_release {
|
|||
}
|
||||
|
||||
sub imapsync_version {
|
||||
my $rcs = '$Id: imapsync,v 1.468 2011/11/18 01:23:37 gilles Exp gilles $ ';
|
||||
my $rcs = '$Id: imapsync,v 1.476 2011/12/10 01:33:50 gilles Exp gilles $ ';
|
||||
$rcs =~ m/,v (\d+\.\d+)/;
|
||||
my $VERSION = ($1) ? $1: "UNKNOWN";
|
||||
return($VERSION);
|
||||
|
@ -3896,7 +3923,7 @@ sub usage_complete {
|
|||
--reconnectretry2 <int>: same as --reconnectretry1 but for host2
|
||||
--split1 <int> : split the requests in several parts on host1.
|
||||
<int> is the number of messages handled per request.
|
||||
default is like --split1 1000.
|
||||
default is like --split1 500.
|
||||
--split2 <int> : same thing on host2.
|
||||
--timeout <int> : imap connect timeout.
|
||||
|
||||
|
@ -4382,12 +4409,24 @@ sub tests_epoch {
|
|||
ok( '1282658400' eq epoch( '24-Aug-2010 14:01:00 +0001' ), 'epoch 24-Aug-2010 14:01:00 +0001 -> 1282658400' ) ;
|
||||
}
|
||||
|
||||
sub add_header {
|
||||
my $uid = shift || 'mistake' ;
|
||||
my $header = 'Message-Id: <' . $uid . '@imapsync>' ;
|
||||
return( $header ) ;
|
||||
}
|
||||
|
||||
sub tests_add_header {
|
||||
ok( 'Message-Id: <mistake@imapsync>' eq add_header(), 'add_header no arg' ) ;
|
||||
ok( 'Message-Id: <123456789@imapsync>' eq add_header(123456789), 'add_header 123456789' ) ;
|
||||
|
||||
}
|
||||
|
||||
|
||||
sub tests_debug {
|
||||
|
||||
SKIP: {
|
||||
skip "No test in normal run" if ( not $tests_debug );
|
||||
tests_good_date();
|
||||
tests_epoch( ) ;
|
||||
tests_add_header( ) ;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
131
index.shtml
131
index.shtml
|
@ -5,7 +5,7 @@
|
|||
<title>Imapsync: an IMAP migration tool ( release <!--#exec cmd="cat VERSION"--> )</title>
|
||||
<meta name="generator" content="Bluefish 1.0.7"/>
|
||||
<meta name="author" content="Gilles LAMIRAL"/>
|
||||
<meta name="date" content="2011-11-18T17:10:31+0100"/>
|
||||
<meta name="date" content="2011-11-24T10:37:23+0100"/>
|
||||
<meta name="copyright" content="None"/>
|
||||
<meta name="keywords" content="imap, transfert, migration"/>
|
||||
<meta name="description" content="imap migration tool"/>
|
||||
|
@ -31,7 +31,7 @@
|
|||
<ul class="none">
|
||||
<li>Buy <a href="#buy_source"><b>imapsync source code</b></a> (any OS)</li>
|
||||
<li>Buy <a href="#buy_exe"><b>standalone win32</b></a> <b>imapsync.exe</b> (also <b>works on win64</b>)</li>
|
||||
<li>Buy <a href="#buy_support">imapsync <b>support</b></a> to succeed your migration</li>
|
||||
<li>Buy professional <a href="#buy_support">imapsync <b>support</b></a> to succeed your migration</li>
|
||||
<li>Are your <a href="#imap_server_success">imap servers <b>supported</b></a> by imapsync?</li>
|
||||
</ul>
|
||||
|
||||
|
@ -44,23 +44,27 @@
|
|||
<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, both anywhere on the internet
|
||||
or in your local network.
|
||||
recursive <b>IMAP</b> transfers from one mailbox to another, both anywhere on the internet
|
||||
or in your local network. Incremental means you can stop the transfer at any time
|
||||
and restart it later efficiently. Recursive means all folders hierarchy can be copied.
|
||||
</p>
|
||||
|
||||
<p><b>imapsync</b> is useful for imap account <b>migration</b> or imap account <b>backup</b>.
|
||||
</p>
|
||||
|
||||
<p><b>imapsync</b> is <b>not adequate</b> for maintaining two active imap accounts in synchronization
|
||||
where the user plays independently on both sides. Use <b>offlineimap</b>
|
||||
(written by John Goerzen) for this purpose.
|
||||
|
||||
<p><b>imapsync</b> is <b>not adequate</b> for maintaining two active imap accounts
|
||||
in synchronization where the user plays independently on both sides.
|
||||
Use <a href="https://github.com/nicolas33/offlineimap"><b>offlineimap</b></a> (written by John Goerzen)
|
||||
or <a href="http://isync.sourceforge.net/"><b>mbsync</b></a> (written by Michael R. Elkins)
|
||||
for <b>2 ways synchronizations</b>.
|
||||
</p>
|
||||
|
||||
<h2><a id="NUMBERS"></a>Some numbers for 2011</h2>
|
||||
|
||||
<ul>
|
||||
<li>Number of <b>imapsync users</b> per month: between <b>2 and 3 thousands </b>users</li>
|
||||
<li>Number of <b>imapsync transfers</b> per month: between <b>3 and 11 millions </b>transfers </li>
|
||||
<li>Number of <b>imapsync transfers</b> per month: between <b>3 and 11 millions mailboxes </b>transfers </li>
|
||||
<li>Pourcentage between <b>operating systems</b> users running imapsync:
|
||||
<ul>
|
||||
<li><b>Linux: 65 %</b></li>
|
||||
|
@ -142,18 +146,26 @@ where the user plays independently on both sides. Use <b>offlineimap</b>
|
|||
imapsync mailing-list (see below section <a href="#MAILING-LIST">Mailing-List</a>).
|
||||
</p>
|
||||
|
||||
<h2><a id="buy_source"></a>Buy imapsync source code</h2>
|
||||
|
||||
<p>
|
||||
The Perl <b>imapsync</b> source code will run anywhere a <b>Perl interpreter can run</b>: any Unix, Linux, Windows, or Mac OS operating system.
|
||||
</p>
|
||||
|
||||
<h2><a id="buy_source"></a>Buy imapsync source code</h2>
|
||||
|
||||
<p>Buy <b>latest</b> imapsync Perl <b>source code</b> for <b>30 EUR</b>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>+ One year</b> of imapsync <b>updates</b> without extra payment.<br/>
|
||||
<b>+ 30 days money-back guarantee!</b><br/>
|
||||
<b>+ A little support</b>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
30 EUR is equal to around <b>45 USD</b>, no problem to pay in USD (or any currency) with paypal:
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The Perl <b>imapsync</b> source code will run anywhere a <b>Perl interpreter can run</b>: any Unix, Linux, Windows, or Mac OS operating system.
|
||||
</p>
|
||||
|
||||
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
|
||||
<p>
|
||||
|
@ -170,14 +182,14 @@ name="submit" alt="PayPal - The safer, easier way to pay online!"/>
|
|||
</p>
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
<p>You will receive a download link <b>just after</b> the payment.<br/>
|
||||
<b>One year</b> of imapsync <b>updates</b> without extra payment.<br/>
|
||||
<b>30 days money-back guarantee!</b></p>
|
||||
<p>You will receive a download link <b>just after</b> the payment.
|
||||
</p>
|
||||
|
||||
<h2><a id="buy_support"></a>Buy professional support for imapsync</h2>
|
||||
|
||||
<p>You will be able to expose your issues by email or phone and to converse until your issues are solved.
|
||||
</p>
|
||||
|
||||
<p>For <b>180 EUR</b> buy imapsync <b>support</b> by the developper who wrote and maintains imapsync.
|
||||
</p>
|
||||
<p>
|
||||
|
@ -197,14 +209,22 @@ name="submit" alt="PayPal - The safer, easier way to pay online!"/>
|
|||
</p>
|
||||
</form>
|
||||
|
||||
<p>Then you will be able to expose your issues by email or phone and to converse until your issues are solved.
|
||||
</p>
|
||||
|
||||
<h2><a id="buy_exe"></a>Buy standalone imapsync.exe for win32</h2>
|
||||
|
||||
|
||||
|
||||
<p>Struggle free from source code and Perl installation by<br/>
|
||||
buying the latest win32 <b>standalone imapsync.exe</b> for <b>30 EUR</b>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>+ One year</b> of imapsync <b>updates</b> without extra payment.<br/>
|
||||
<b>+ 30 days money-back guarantee!</b><br/>
|
||||
<b>+ A little support</b>.
|
||||
</p>
|
||||
|
||||
|
||||
<p>
|
||||
30 EUR is equal to around <b>45 USD</b>, no problem to pay in USD (or any currency) with paypal:
|
||||
</p>
|
||||
|
@ -225,8 +245,7 @@ name="submit" alt="PayPal - The safer, easier way to pay online!"/>
|
|||
</form>
|
||||
|
||||
<p>You will receive a download link <b>just after</b> the payment.<br/>
|
||||
<b>One year</b> of imapsync <b>updates</b> without extra payment.<br/>
|
||||
<b>30 days money-back guarantee!</b></p>
|
||||
</p>
|
||||
|
||||
|
||||
<!--
|
||||
|
@ -308,42 +327,17 @@ See also the <a href="#WANTED">wanted</a> section.
|
|||
|
||||
<h2><a id="WANTED"></a>WANTED!</h2>
|
||||
|
||||
<p>I code new features and fix bugs for free when I have time and when I find it useful.<br/>
|
||||
If you really want a feature or a fix you can donate money and my next development time
|
||||
will be to code it or fix it.<br/>
|
||||
<p>I fix bugs as soon as possible and I code new features when I find them useful.<br/>
|
||||
Don't hesitate to ask for them.
|
||||
</p>
|
||||
|
||||
<p>On april 2011: <b>1 EUR ~ 1.48 USD</b>.</p>
|
||||
|
||||
|
||||
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
|
||||
<p>
|
||||
<input type="hidden" name="cmd" value="_s-xclick"/>
|
||||
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----
|
||||
"/>
|
||||
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif" name="submit" alt="PayPal - The safer, easier way to pay online!"/>
|
||||
<img alt="" src="https://www.paypal.com/fr_FR/i/scr/pixel.gif" width="1" height="1"/>
|
||||
</p>
|
||||
</form>
|
||||
|
||||
|
||||
<p>Some features and their time/money to be done evaluation:</p>
|
||||
<p>Some features and their time to be done evaluation:</p>
|
||||
|
||||
<table cellpadding="10" cellspacing="0" border="1">
|
||||
<tr align="right"><th>DONE</th><th>Feature </th><th>Time guessed</th><th>Time spent</th><th>Money received</th><th>Money still needed</th></tr>
|
||||
<tr align="right"><td> <b>No</b></td><td>Backup to files </td><td>20 hours </td><td> 60 min </td><td> 0 $ </td><td>800 $ </td></tr>
|
||||
<tr align="right"><td> <b>No</b></td><td>Efficient Gmail backup </td><td>20 hours </td><td> 80 min </td><td> 0 $ </td><td>800 $ </td></tr>
|
||||
<tr align="right"><td> <b>No</b></td><td>Better error reporting </td><td> 5 hours </td><td> 0 min </td><td> 0 $ </td><td>200 $ </td></tr>
|
||||
<tr align="right"><td> Yes</td><td>Add cache </td><td>10 hours </td><td>1310 min </td><td>400 $ </td><td> 0 $ </td></tr>
|
||||
<tr align="right"><td> Yes</td><td>Speedup 50% </td><td>10 hours </td><td> 80 min </td><td> 10 $ </td><td> 0 $ </td></tr>
|
||||
<tr align="right"><td> Yes</td><td>--delete2folders </td><td> 3 hours </td><td> 270 min </td><td> 90 $ </td><td> 0 $ </td></tr>
|
||||
<tr align="right"><td> Yes</td><td>NTLM auth </td><td> 3 hours </td><td> 300 min </td><td> 15 $ </td><td> 0 $ </td></tr>
|
||||
<tr align="right"><td> Yes</td><td>Win32 imapsync.exe </td><td> 8 hours </td><td> 520 min </td><td> 45 $ </td><td> 0 $ </td></tr>
|
||||
<tr align="right"><td> Yes</td><td>Win32 bug fixes </td><td> various </td><td> 370 min </td><td>100 $ </td><td> 0 $ </td></tr>
|
||||
<tr align="right"><td> Yes</td><td>Fix capability changes </td><td> 1 hour </td><td> 80 min </td><td> 0 $ </td><td> 0 $ </td></tr>
|
||||
<tr align="right"><td> Yes</td><td>Large mailbox --maxage </td><td> 4 hours </td><td> 270 min </td><td> 0 $ </td><td> 0 $ </td></tr>
|
||||
<tr align="right"><td> Yes</td><td>dkimap support </td><td> 3 hours </td><td> 120 min </td><td> 0 $ </td><td> 0 $ </td></tr>
|
||||
|
||||
<tr align="right"><th>DONE</th><th>Feature </th><th>Time guessed</th><th>Time spent</th></tr>
|
||||
<tr align="right"><td> <b>No</b></td><td>Backup to files </td><td>20 hours </td><td> 60 min </td></tr>
|
||||
<tr align="right"><td> <b>No</b></td><td>Efficient Gmail backup </td><td>20 hours </td><td> 80 min </td></tr>
|
||||
<tr align="right"><td> <b>No</b></td><td>Better error reporting </td><td> 5 hours </td><td> 0 min </td></tr>
|
||||
</table>
|
||||
|
||||
<h2><a id="imap_server_success"></a>Lists of imap server software failures and success stories</h2>
|
||||
|
@ -434,6 +428,35 @@ Don't hesitate to have a try, I will help you and make efforts to switch them to
|
|||
Zimbra 5.0.24_GA_3356.RHEL4 [host1], 5.5, 6.x</li>
|
||||
</ul>
|
||||
|
||||
<h2>Similar softwares</h2>
|
||||
|
||||
|
||||
<ul>
|
||||
<li> imap_tools: <a href="http://www.athensfbc.com/imap_tools">http://www.athensfbc.com/imap_tools</a></li>
|
||||
<li> <b>offlineimap</b>: <a href="https://github.com/nicolas33/offlineimap">https://github.com/nicolas33/offlineimap</a></li>
|
||||
<li> <b>mbsync</b>: <a href="http://isync.sourceforge.net/">http://isync.sourceforge.net/</a></li>
|
||||
<li> mailsync: <a href="http://mailsync.sourceforge.net/">http://mailsync.sourceforge.net/</a></li>
|
||||
<li> mailutil: <a href="http://www.washington.edu/imap/">http://www.washington.edu/imap/</a>
|
||||
part of the UW IMAP tookit.</li>
|
||||
<li> imaprepl: <a href="http://www.bl0rg.net/software/">http://www.bl0rg.net/software/</a>
|
||||
<a href="http://freecode.com/projects/imap-repl/">http://freecode.com/projects/imap-repl/</a></li>
|
||||
<li> imapcopy: <a href="http://home.arcor.de/armin.diehl/imapcopy/imapcopy.html">http://home.arcor.de/armin.diehl/imapcopy/imapcopy.html</a></li>
|
||||
<li> migrationtool: <a href="http://sourceforge.net/projects/migrationtool/">http://sourceforge.net/projects/migrationtool/</a></li>
|
||||
<li> imapmigrate: <a href="http://sourceforge.net/projects/cyrus-utils/">http://sourceforge.net/projects/cyrus-utils/</a></li>
|
||||
<li> wonko_imapsync: <a href="http://wonko.com/article/554">http://wonko.com/article/554</a></li>
|
||||
<li> pop2imap: <a href="http://www.linux-france.org/prj/pop2imap/">http://www.linux-france.org/prj/pop2imap/</a></li>
|
||||
<li> exchange-away: <a href="http://exchange-away.sourceforge.net/">http://exchange-away.sourceforge.net/</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>Online IMAP migration services</h2>
|
||||
|
||||
<ul>
|
||||
<li> ovh imapcopy (French) 0 USD: <a href="https://ssl0.ovh.net/fr/imapcopy/">https://ssl0.ovh.net/fr/imapcopy/</a></li>
|
||||
<li> yippiemove 15 USD: <a href="http://www.yippiemove.com">http://www.yippiemove.com/</a></li>
|
||||
<li> migrationwiz 10 USD: <a href="http://www.migrationwiz.com/">http://www.migrationwiz.com/</a></li>
|
||||
<li> rackspace migration 10 USD: <a href="http://www.rackspace.com/apps/email_hosting/migrations/">http://www.rackspace.com/apps/email_hosting/migrations/</a></li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
<p>
|
||||
<a href="http://validator.w3.org/check?uri=referer">
|
||||
|
@ -460,7 +483,7 @@ alt="Viewable With Any Browser" />
|
|||
<!--#config timefmt="%D" -->
|
||||
<!--#config timefmt="%A %B %d, %Y" -->
|
||||
<b>This document last modified on <!--#echo var="LAST_MODIFIED" --></b>
|
||||
($Id: index.shtml,v 1.97 2011/11/18 16:11:33 gilles Exp gilles $)
|
||||
($Id: index.shtml,v 1.99 2011/11/24 09:38:35 gilles Exp gilles $)
|
||||
</p>
|
||||
|
||||
</body>
|
||||
|
|
58
tests.sh
58
tests.sh
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
# $Id: tests.sh,v 1.183 2011/11/17 22:13:27 gilles Exp gilles $
|
||||
# $Id: tests.sh,v 1.186 2011/12/10 01:37:20 gilles Exp gilles $
|
||||
|
||||
# Example 1:
|
||||
# CMD_PERL='perl -I./Mail-IMAPClient-3.25/lib' sh -x tests.sh
|
||||
|
@ -325,7 +325,7 @@ ll_noheader() {
|
|||
--passfile1 ../../var/pass/secret.tata \
|
||||
--host2 $HOST2 --user2 titi \
|
||||
--passfile2 ../../var/pass/secret.titi \
|
||||
--folder INBOX.few_emails --useheader ''
|
||||
--folder INBOX.few_emails --useheader '' --debug
|
||||
}
|
||||
|
||||
ll_noheader_force() {
|
||||
|
@ -339,6 +339,15 @@ ll_noheader_force() {
|
|||
--skipheader 'Message-Id|Date'
|
||||
}
|
||||
|
||||
ll_addheader() {
|
||||
$CMD_PERL ./imapsync \
|
||||
--host1 $HOST1 --user1 tata \
|
||||
--passfile1 ../../var/pass/secret.tata \
|
||||
--host2 $HOST2 --user2 titi \
|
||||
--passfile2 ../../var/pass/secret.titi \
|
||||
--folder INBOX.addheader --delete2 --expunge2 --addheader
|
||||
}
|
||||
|
||||
|
||||
|
||||
ll_usecachemaxage() {
|
||||
|
@ -1083,8 +1092,8 @@ ll_regextrans2_subfolder()
|
|||
--justfolders \
|
||||
--nofoldersize \
|
||||
--folder 'INBOX.yop.yap' \
|
||||
--regextrans2 's,${h1_prefix}(.*),${h2_prefix}FOO${h2_sep}$1,' --dry
|
||||
|
||||
--prefix1 'INBOX.yop.' \
|
||||
--regextrans2 's,^${h2_prefix}(.*),${h2_prefix}FOO${h2_sep}$1,' --dry
|
||||
}
|
||||
|
||||
|
||||
|
@ -1162,6 +1171,20 @@ ll_useheader()
|
|||
echo 'rm /home/vmail/titi/.yop.yap/cur/*'
|
||||
}
|
||||
|
||||
|
||||
ll_useheader_Received()
|
||||
{
|
||||
$CMD_PERL ./imapsync \
|
||||
--host1 $HOST1 --user1 tata \
|
||||
--passfile1 ../../var/pass/secret.tata \
|
||||
--host2 $HOST2 --user2 titi \
|
||||
--passfile2 ../../var/pass/secret.titi \
|
||||
--folder INBOX.yop.yap \
|
||||
--useheader 'Received' \
|
||||
--dry --debug --fast
|
||||
echo 'rm /home/vmail/titi/.yop.yap/cur/*'
|
||||
}
|
||||
|
||||
ll_useheader_noheader()
|
||||
{
|
||||
$CMD_PERL ./imapsync \
|
||||
|
@ -2258,7 +2281,13 @@ exchange_1() {
|
|||
--passfile1 ../../var/pass/secret.tata \
|
||||
--host2 mail.ethz.ch --ssl2 --user2 glamiral \
|
||||
--passfile2 ../../var/pass/secret.ethz.ch \
|
||||
--folder INBOX.oneemail --folder INBOX.few_emails --folder INBOX -maxage 1
|
||||
--folder INBOX.few_emails \
|
||||
--debugflags \
|
||||
--useheader 'MESSAGE-ID' --delete2 --expunge2 \
|
||||
--nofilterflags \
|
||||
|
||||
#--regexflag 's/\$\w+//g'
|
||||
#-maxage 1
|
||||
}
|
||||
|
||||
exchange_2() {
|
||||
|
@ -2279,6 +2308,25 @@ exchange_3_delete2() {
|
|||
--folder INBOX.Junk --useuid --delete2
|
||||
}
|
||||
|
||||
|
||||
exchange_4_useheader_Received() {
|
||||
$CMD_PERL ./imapsync \
|
||||
--host1 $HOST1 --user1 tata \
|
||||
--passfile1 ../../var/pass/secret.tata \
|
||||
--host2 mail.ethz.ch --ssl2 --user2 glamiral \
|
||||
--passfile2 ../../var/pass/secret.ethz.ch \
|
||||
--folder INBOX.yop.yap \
|
||||
--delete2 --expunge2 \
|
||||
--useheader 'Received'
|
||||
|
||||
|
||||
# --useheader 'Received'
|
||||
|
||||
#--regexflag 's/\$\w+//g'
|
||||
#-maxage 1
|
||||
}
|
||||
|
||||
|
||||
jong_1() {
|
||||
$CMD_PERL ./imapsync \
|
||||
--host1 mail.y-publicaties.nl --user1 gillesl --passfile1 ../../var/pass/secret.jong \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue