1
0
mirror of https://github.com/imapsync/imapsync.git synced 2024-11-16 15:52:47 +01:00
This commit is contained in:
Nick Bebout 2013-09-26 17:00:32 -05:00
parent c555c31229
commit 4c70a807bd
22 changed files with 8546 additions and 2419 deletions

17
CREDITS
View File

@ -1,5 +1,5 @@
#!/bin/cat
# $Id: CREDITS,v 1.174 2013/06/07 10:05:12 gilles Exp gilles $
# $Id: CREDITS,v 1.175 2013/08/28 22:44:09 gilles Exp gilles $
If you want to make a donation to the author, Gilles LAMIRAL,
use any of the following ways:
@ -19,7 +19,7 @@ d) If you prefer making your donation with
cash or cheque then my postal address is:
Gilles LAMIRAL
4 La Billais
La Billais
35580 Baulon
FRANCE
@ -30,6 +30,14 @@ 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.
Bowman Gillianne
Contributed by giving the book
8.60 EUR "L'Épreuve de l'étranger: Culture et traduction dans l'Allemagne romantique"
Paul Heller
Contributed by giving the book
28.54 "Practical Packet Analysis: Using Wireshark to Solve Real-World Network Problems"
Jim Klimov
Gave patch to handle proxyauth failures.
@ -40,7 +48,7 @@ Marc Weber
Suggested --mark-as-deleted1 --mark-as-deleted2
Jeff Verheyen
Contributed by giving an 32GB microSDHC card and the book
Contributed by giving a 32GB micro SDHC card and the book
29.69 "Design by Nature: Using Universal Forms and Principles in Design"
David Abrahams
@ -1074,6 +1082,7 @@ Eric Yung
Total amount of book prices :
c \
28.54+\
30.86+\
87.18+\
19.90+\
@ -1209,4 +1218,4 @@ c \
31.20+\
40.00
=
3050.41
3196.99

View File

@ -1,17 +1,30 @@
RCS file: RCS/imapsync,v
Working file: imapsync
head: 1.564
head: 1.567
branch:
locks: strict
gilles: 1.564
gilles: 1.567
access list:
symbolic names:
keyword substitution: kv
total revisions: 564; selected revisions: 564
total revisions: 567; selected revisions: 567
description:
----------------------------
revision 1.564 locked by: gilles;
revision 1.567 locked by: gilles;
date: 2013/09/18 20:38:10; author: gilles; state: Exp; lines: +8 -7
Fixed a warning when RFC822.SIZE is null or undef.
----------------------------
revision 1.566
date: 2013/09/13 13:23:41; author: gilles; state: Exp; lines: +11 -12
Added --authmech EXTERNAL. Not tested yet.
----------------------------
revision 1.565
date: 2013/09/13 01:16:20; author: gilles; state: Exp; lines: +8 -6
Fusemail success.
RackSpace success.
----------------------------
revision 1.564
date: 2013/08/18 19:28:47; author: gilles; state: Exp; lines: +114 -22
Adapted behavior for allowing --maxdate --mindate with --noabletosearch. Use internat date instead of Date: header.
----------------------------

100
FAQ
View File

@ -1,5 +1,5 @@
#!/bin/cat
# $Id: FAQ,v 1.138 2013/08/16 01:03:32 gilles Exp gilles $
# $Id: FAQ,v 1.145 2013/09/21 21:56:33 gilles Exp gilles $
+------------------+
| FAQ for imapsync |
@ -183,6 +183,21 @@ Q. Is is legal to find imapsync gratis (or not) elsewhere?
R. Yes, the license permits it
http://imapsync.lamiral.info/NOLIMIT
=======================================================================
Q. How "Facts and figures" are known on http://imapsync.lamiral.info/
R. To know wether a newer imapsync exists or not imapsync does a http
GET to http://imapsync.lamiral.info/VERSION
Via the User-agent parameter it also send:
* imapsync release
* Perl version
* Mail::IMAPClient version
* Operating System
You can remove this behavior by adding option --noreleasecheck on the
command line (or by setting $releasecheck = 0 in the source code)
=======================================================================
Q. I use --useuid which uses a cache in /tmp or --tmpdir, the hostnames
host1 or host2 has changed but mailboxes are the same. Will imapsync
@ -296,7 +311,40 @@ R2. Use --useuid then imapsync will avoid dealing with headers.
imapsync ... --useuid
=======================================================================
Q. How can I try imapsync with Mail::IMAPClient 3.xx perl module?
Q. On Windows, with --useuid or --usecache a problem occurs with long
nested folder names. The error message is:
"No such file or directory; The filename or extension is too long"
R. This comes from a Windows limitation on pathnames.
No more than 260 characters are allowed for pathnames.
See more details on page
http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247.aspx#maxpath
Two workarounds to reduce the cache directory name:
1) Use --tmpdir "D:\\temp" or simply --tmpdir "D:"
2) add two equivalent entries in the etc/hosts for host1 imap.truc.org
and host2 imap.trac.org.
If you map the ip of imap.truc.org just with the letter a
and same thing for imap.trac.org then you gain characters
etc/hosts
192.168.12.1 a
192.168.55.3 b
Then use:
imapsync --host1 a --host2 b ...
You can get the ip of a host with the ping command line
C:\> ping imap.truc.org
Fixing the long path problem directly in imapsync is in the TODO file.
=======================================================================
Q. How can I try imapsync with latest Mail::IMAPClient 3.xx perl module?
R. The answer R2 deals with any Perl module use.
@ -681,6 +729,13 @@ For example to convert flag IMPORTANT to flag CANWAIT
option --debugflags is usefull to see in details what imapsync
does with flags.
=======================================================================
Q. How to fix this error: BAD Invalid system flag \FORWARDED
R. Filter flag \FORWARDED with
imapsync ... --regexflag "s/\\FORWARDED//g"
=======================================================================
Q. How to convert flags with $ to \ character?
@ -1202,7 +1257,7 @@ R.
imapsync \
...
--regextrans2 "s/INBOX(.*)/INBOX.Braunschweig$1/" \
--regextrans2 "s/INBOX(.*)/INBOX.Braunschweig\$1/" \
--dry --justfolders
2) See if the output says everything you want imapsync to do,
@ -1384,6 +1439,31 @@ format issues. And now it works fine. (Thanks to Hansjoerg.Maurer)
Server specific issues and solutions
=======================================================================
=======================================================================
Q. From XXX to Exchange 2013 or Office365 I get this error message
sometimes: "BAD Command Argument Error 11"
R. This error message comes from Exchange IMAP server when it
encounters any problem. Most of the time it is one of the following:
* Some messages are bigger than the size limit. 10 MB by default
on Exchange. It can be upped by configuration.
Or use option --maxsize 10000000 (for 10 MB, change it if needed)
to tell imapsync to skip those messages.
imapsync ... --maxsize 10000000
* Quota reached. The whole account is full.
It can be upped by configuration.
* Some messages have some lines too long. Use option --maxlinelength
to skip messages whose max line length is over a number of bytes.
--maxlinelength 1000 is a RFC2822 must but most server support
higher values.
imapsync ... --maxlinelength 1000
=======================================================================
Q. From Zimbra to XXX
@ -1438,7 +1518,10 @@ imapsync --host1 mail.oldhost.com \
--exitwhenover 500000000 \
--exclude "\[Gmail\]$" \
--addheader \
--regextrans2 "s,^Sent$,[Gmail]/Sent Mail,"
--regextrans2 "s,^Sent$,[Gmail]/Sent Mail," \
--regextrans2 "s/[ ]+/_/g" \
--regextrans2 "s/[\^]/_/g" \
--regextrans2 "s/['\"\\\\]/_/g"
If you're using a different language in Gmail you might adapt
@ -1465,6 +1548,15 @@ See http://support.google.com/a/bin/answer.py?hl=en&answer=1071518
"Could not examine: 43 NO [NONEXISTENT] Unknown Mailbox: [Gmail]
(now in authenticated state) (Failure)".
--regextrans2 "s/[ ]+/_/g" is there to convert blank characters not
accepted by gmail to character _ underscore. In fact only leading
and trailing blank characters are problems with gmail.
--regextrans2 "s/[\^]/_/g" is mandatory. It converts, since
not accepted by gmail, character ^ to character _ underscore.
--regextrans2 "s/['\"\\\\]/_/g" is optional. It converts
characters ' or " or \ to character _ underscore.
You can select folders exported to imap within the gmail preferences,
unselect all "System labels" depending on your needs.

7
README
View File

@ -4,7 +4,7 @@ NAME
More than 52 different IMAP server softwares supported with success, few
failures.
$Revision: 1.564 $
$Revision: 1.567 $
SYNOPSIS
To synchronize imap account "foo" on "imap.truc.org" to imap account
@ -349,6 +349,7 @@ IMAP SERVERS
- Dovecot 0.99.10.4, 0.99.14, 0.99.14-8.fc4, 1.0-0.beta2.7,
1.0.0 [dest/source] (LGPL) (http://www.dovecot.org/)
- Eudora WorldMail v2
- Fusemail imap.fusemail.net:143 (https://www.fusemail.com/).
- Gimap (Gmail imap)
- GMX IMAP4 StreamProxy.
- Groupwise IMAP (Novell) 6.x and 7.0. Buggy so see the FAQ.
@ -375,9 +376,11 @@ IMAP SERVERS
- Oracle Beehive [host1]
- Qualcomm Worldmail (NT)
- QQMail IMAP4Server [host1] [host2] https://en.mail.qq.com/
- RackSpace hoster secure.emailsrvr.com:993 http://www.rackspace.com/
- Rockliffe Mailsite 5.3.11, 4.5.6
- Samsung Contact IMAP server 8.5.0
- Scalix v10.1, 10.0.1.3, 11.0.0.431, 11.4.6
- Sendmail Mail Store IMAP4rev1 (5.5.6/mstore-5-5-build-1874 [host1].
- SmarterMail, Smarter Mail 5.0 Enterprise, Smarter Mail 5.5 [host1], SmarterMail Professional 10.2 [host1].
- Softalk Workgroup Mail 7.6.4 [host1].
- SunONE Messaging server 5.2, 6.0 (SUN JES - Java Enterprise System)
@ -466,5 +469,5 @@ SIMILAR SOFTWARES
Feedback (good or bad) will often be welcome.
$Id: imapsync,v 1.564 2013/08/18 19:28:47 gilles Exp gilles $
$Id: imapsync,v 1.567 2013/09/18 20:38:10 gilles Exp gilles $

View File

@ -1 +1 @@
1.564
1.567

View File

@ -1 +1 @@
1.564
1.567

View File

@ -228,3 +228,21 @@
1376618294 END 1.563 : vendredi 16 août 2013, 03:58:14 (UTC+0200)
1376856084 BEGIN 1.564 : dimanche 18 août 2013, 22:01:24 (UTC+0200)
1376856924 END 1.564 : dimanche 18 août 2013, 22:15:24 (UTC+0200)
1379035013 BEGIN 1.565 : vendredi 13 septembre 2013, 03:16:53 (UTC+0200)
1379036258 END 1.565 : vendredi 13 septembre 2013, 03:37:38 (UTC+0200)
1379036858 BEGIN 1.565 : vendredi 13 septembre 2013, 03:47:38 (UTC+0200)
1379038028 END 1.565 : vendredi 13 septembre 2013, 04:07:08 (UTC+0200)
1379067300 BEGIN 1.565 : vendredi 13 septembre 2013, 12:15:00 (UTC+0200)
1379068253 END 1.565 : vendredi 13 septembre 2013, 12:30:53 (UTC+0200)
1379068512 BEGIN 1.565 : vendredi 13 septembre 2013, 12:35:12 (UTC+0200)
1379069423 BEGIN 1.565 : vendredi 13 septembre 2013, 12:50:23 (UTC+0200)
1379069895 END 1.565 : vendredi 13 septembre 2013, 12:58:15 (UTC+0200)
1379070862 BEGIN 1.565 : vendredi 13 septembre 2013, 13:14:22 (UTC+0200)
1379071364 END 1.565 : vendredi 13 septembre 2013, 13:22:44 (UTC+0200)
1379541254 BEGIN 1.567 : mercredi 18 septembre 2013, 23:54:14 (UTC+0200)
1379541678 BEGIN 1.567 : jeudi 19 septembre 2013, 00:01:18 (UTC+0200)
1379544193 BEGIN 1.567 : jeudi 19 septembre 2013, 00:43:13 (UTC+0200)
1379549519 BEGIN 1.567 : jeudi 19 septembre 2013, 02:11:59 (UTC+0200)
1379550371 END 1.567 : jeudi 19 septembre 2013, 02:26:11 (UTC+0200)
1379803429 BEGIN 1.567 : dimanche 22 septembre 2013, 00:43:49 (UTC+0200)
1379804324 END 1.567 : dimanche 22 septembre 2013, 00:58:44 (UTC+0200)

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
#!/bin/sh
# $Id: paypal_build_invoices,v 1.55 2013/08/17 23:43:38 gilles Exp gilles $
# $Id: paypal_build_invoices,v 1.56 2013/09/13 10:55:46 gilles Exp gilles $
# usage: sh paypal_build_invoices /g/var/paypal_invoices/????
@ -40,7 +40,8 @@ cp /home/gilles/public_html/AGIL/factures/000/facture_imapsync-000.tex /g/var/pa
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 2572 /g/paypal/paypal_2013_05_complet.csv
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 2627 /g/paypal/paypal_2013_06_complet.csv
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 2682 /g/paypal/paypal_2013_07_complet.csv
/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 2741 /g/paypal/paypal_2013_08_complet.csv
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 2741 /g/paypal/paypal_2013_08_complet.csv
/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 2820 /g/paypal/paypal_2013_09_complet.csv
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 147 /g/paypal/paypal_2010_11_complet.csv
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 214 /g/paypal/paypal_2010_12_complet.csv
@ -75,9 +76,10 @@ cp /home/gilles/public_html/AGIL/factures/000/facture_imapsync-000.tex /g/var/pa
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 2572 /g/paypal/paypal_2013_05_complet.csv
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 2627 /g/paypal/paypal_2013_06_complet.csv
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 2682 /g/paypal/paypal_2013_07_complet.csv
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 2741 /g/paypal/paypal_2013_08_complet.csv
set -x
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 2741 /g/paypal/paypal_2013_08_complet.csv
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 2820 /g/paypal/paypal_2013_09_complet.csv
set +x
# La totale

View File

@ -1,6 +1,6 @@
#!/bin/sh
# $Id: paypal_functions,v 1.20 2013/02/08 14:57:33 gilles Exp gilles $
# $Id: paypal_functions,v 1.21 2013/08/21 21:46:16 gilles Exp gilles $
paypal_prerequisites() {
perl -mMIME::Lite -e '' || echo 'sudo aptitude install libmime-lite-perl'
@ -178,7 +178,7 @@ send_reply() {
#test X"--send" = X"$1" && touch "$d_sent/$b"
test X"" = X"$1" && paypal_send "$f"
done
mailq
#mailq
}
paypal_all() {

View File

@ -1,6 +1,6 @@
#!/usr/bin/perl -w
# $Id: paypal_imapget,v 1.9 2013/03/20 23:59:41 gilles Exp gilles $
# $Id: paypal_imapget,v 1.10 2013/08/21 22:19:35 gilles Exp gilles $
use Getopt::Long;
use Mail::IMAPClient;
@ -58,7 +58,8 @@ print "@search\n" ;
@search = ('TEXT', 'PP341') if not @search ;
my @uids_01 = $imap->search('HEADER', 'Return-Path','<payment@paypal.com>', @search );
my @uids_02 = $imap->search('HEADER', 'Return-Path','<member@paypal.fr>', @search );
my @uids = ( @uids_01, @uids_02 ) ;
my @uids_03 = $imap->search('HEADER', 'Return-Path','<member@paypal.com>', @search );
my @uids = ( @uids_01, @uids_02, @uids_03 ) ;
print "Search: [@uids]\n";
foreach $msg (@uids) {

View File

@ -7,7 +7,7 @@ set -e
# Add path to commands at home
PATH=$PATH:/g/public_html/imapsync/W/paypal_reply
PERL5LIB=/g/public_html/imapsync/W/Mail-IMAPClient-3.32/lib
PERL5LIB=/g/public_html/imapsync/W/Mail-IMAPClient-3.33/lib
export PERL5LIB
test -f /g/public_html/imapsync/W/paypal_reply/paypal_functions \

View File

@ -1,18 +1,9 @@
cd C:\msys\1.0\home\Admin\imapsync
cd /D %~dp0
perl imapsync --host1 p --user1 toto --passfile1 secret.toto --host2 p --user2 titi --passfile2 secret.titi --ssl1 --ssl2 --folder INBOX
REM .\imapsync.exe --host1 p --user1 toto --passfile1 secret.toto --host2 p --user2 titi --passfile2 secret.titi --ssl1 --ssl2 --justconnect
REM PAUSE
REM cmail.cmich.edu has address 207.75.116.61
.\imapsync.exe --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --ssl1 --ssl2 --delete2 --folder INBOX --usecache --tmpdir "E:\\temp"
REM imapsync.exe --host1 cmail.cmich.edu --ssl1 --ssl1_SSL_version SSLv3 ^
REM --host2 cmail.cmich.edu --ssl2 --ssl2_SSL_version SSLv3 ^
REM --justconnect
PAUSE
REM .\imapsync.exe --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --ssl1 --ssl2 --delete2 --folder INBOX
REM .\imapsync.exe --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --ssl1 --ssl2 --delete2 --folder INBOX --usecache

20
W/test3_boxon.bat Normal file
View File

@ -0,0 +1,20 @@
cd /D %~dp0
REM .\imapsync.exe --host1 winmail1.webcows.se --user1 monica@fractus.net --password1 yaa --host2 winmail1.webcows.se --user2 monica@fractus.net --password2 yaa
REM perl imapsync --host1 winmail1.webcows.se --user1 monica@fractus.net --password1 yaa --host2 winmail1.webcows.se --user2 monica@fractus.net --password2 yaa
REM perl imapsync --host1 p --user1 toto --passfile1 secret.toto --host2 p --user2 titi --passfile2 secret.titi --ssl1 --ssl2 --folder INBOX
REM .\imapsync.exe --host1 p --user1 toto --passfile1 secret.toto --host2 p --user2 titi --passfile2 secret.titi --ssl1 --ssl2 --justconnect
REM PAUSE
REM cmail.cmich.edu has address 207.75.116.61
REM imapsync.exe --host1 cmail.cmich.edu --ssl1 --ssl1_SSL_version SSLv3 ^
REM --host2 cmail.cmich.edu --ssl2 --ssl2_SSL_version SSLv3 ^
REM --justconnect
REM .\imapsync.exe --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --ssl1 --ssl2 --delete2 --folder INBOX
REM .\imapsync.exe --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --ssl1 --ssl2 --delete2 --folder INBOX --usecache

View File

@ -1,5 +1,5 @@
REM $Id: build_exe.bat,v 1.19 2013/08/03 12:42:36 gilles Exp gilles $
REM $Id: build_exe.bat,v 1.20 2013/09/21 21:56:14 gilles Exp gilles $
@ECHO OFF
ECHO Building imapsync.exe
@ -12,7 +12,7 @@ perl -mMail::IMAPClient -mIO::Socket -mIO::Socket::SSL -mIO::Socket::IP ^
-mDigest::MD5 -mDigest::HMAC_MD5 -mDigest::HMAC_SHA1 ^
-mTerm::ReadKey -mFile::Spec -mAuthen::NTLM ^
-mTime::Local -mURI::Escape -mData::Uniqid ^
-e ''
-e ''
cd
@ECHO ON
@ -23,6 +23,7 @@ pp -o imapsync.exe ^
-M Digest::MD5 -M Digest::HMAC_MD5 -M Digest::HMAC_SHA1 ^
-M Term::ReadKey -M Authen::NTLM ^
-M Time::Local -M URI::Escape -M Data::Uniqid ^
^
imapsync
echo Done building imapsync.exe

View File

@ -1,5 +1,5 @@
REM $Id: install_modules.bat,v 1.7 2013/08/03 02:19:58 gilles Exp gilles $
REM $Id: install_modules.bat,v 1.8 2013/09/19 10:34:33 gilles Exp gilles $
@ECHO OFF
@ -12,7 +12,8 @@ IF ERRORLEVEL 1 ECHO Perl needed. Install Strawberry Perl. Get it at http://stra
REM perl is there
FOR %%M in ( IO::Socket::INET IO::Socket::INET6 IO::Socket::IP ^
FOR %%M in ( Test::Pod ^
IO::Socket::INET IO::Socket::INET6 IO::Socket::IP ^
Net::SSLeay ^
Crypt::SSLeay Net::SSL IO::Socket::SSL ^
Digest::MD5 Digest::HMAC_MD5 ^

View File

@ -22,7 +22,7 @@ Synchronises mailboxes between two imap servers.
Good at IMAP migration. More than 52 different IMAP server softwares
supported with success, few failures.
$Revision: 1.564 $
$Revision: 1.567 $
=head1 SYNOPSIS
@ -399,6 +399,7 @@ Success stories reported with the following 55 imap servers
- Dovecot 0.99.10.4, 0.99.14, 0.99.14-8.fc4, 1.0-0.beta2.7,
1.0.0 [dest/source] (LGPL) (http://www.dovecot.org/)
- Eudora WorldMail v2
- Fusemail imap.fusemail.net:143 (https://www.fusemail.com/).
- Gimap (Gmail imap)
- GMX IMAP4 StreamProxy.
- Groupwise IMAP (Novell) 6.x and 7.0. Buggy so see the FAQ.
@ -425,9 +426,11 @@ Success stories reported with the following 55 imap servers
- Oracle Beehive [host1]
- Qualcomm Worldmail (NT)
- QQMail IMAP4Server [host1] [host2] https://en.mail.qq.com/
- RackSpace hoster secure.emailsrvr.com:993 http://www.rackspace.com/
- Rockliffe Mailsite 5.3.11, 4.5.6
- Samsung Contact IMAP server 8.5.0
- Scalix v10.1, 10.0.1.3, 11.0.0.431, 11.4.6
- Sendmail Mail Store IMAP4rev1 (5.5.6/mstore-5-5-build-1874 [host1].
- SmarterMail, Smarter Mail 5.0 Enterprise, Smarter Mail 5.5 [host1], SmarterMail Professional 10.2 [host1].
- Softalk Workgroup Mail 7.6.4 [host1].
- SunONE Messaging server 5.2, 6.0 (SUN JES - Java Enterprise System)
@ -536,7 +539,7 @@ Entries for imapsync:
Feedback (good or bad) will often be welcome.
$Id: imapsync,v 1.564 2013/08/18 19:28:47 gilles Exp gilles $
$Id: imapsync,v 1.567 2013/09/18 20:38:10 gilles Exp gilles $
=cut
@ -664,7 +667,7 @@ my(
# global variables initialisation
$rcs = '$Id: imapsync,v 1.564 2013/08/18 19:28:47 gilles Exp gilles $ ';
$rcs = '$Id: imapsync,v 1.567 2013/09/18 20:38:10 gilles Exp gilles $ ';
$total_bytes_transferred = 0;
$total_bytes_skipped = 0;
@ -947,13 +950,13 @@ for ( @useheader ) { $useheader{ uc( $_ ) } = undef } ;
print "Host1: IMAP server [$host1] port [$port1] user [$user1]\n";
print "Host2: IMAP server [$host2] port [$port2] user [$user2]\n";
$password1 || $passfile1 || 'PREAUTH' eq $authmech1 || do {
$password1 || $passfile1 || 'PREAUTH' eq $authmech1 || 'EXTERNAL' eq $authmech1 || do {
$password1 = ask_for_password( $authuser1 || $user1, $host1 ) ;
} ;
$password1 = ( defined( $passfile1 ) ) ? firstline ( $passfile1 ) : $password1 ;
$password2 || $passfile2 || 'PREAUTH' eq $authmech2 || do {
$password2 || $passfile2 || 'PREAUTH' eq $authmech2 || 'EXTERNAL' eq $authmech2 || do {
$password2 = ask_for_password( $authuser2 || $user2, $host2 ) ;
} ;
@ -2065,10 +2068,9 @@ sub authenticate_imap {
$imap->User($user) ;
}
$imap->Authcallback(\&xoauth) if $authmech eq "XOAUTH" ;
$imap->Authcallback(\&plainauth) if $authmech eq "PLAIN" ;
$imap->Authcallback(\&xoauth) if ( 'XOAUTH' eq $authmech ) ;
$imap->Authcallback(\&plainauth) if ( ( 'PLAIN' eq $authmech ) or ( 'EXTERNAL' eq $authmech ) ) ;
$imap->Domain($domain) if (defined($domain)) ;
$imap->Authuser($authuser) ;
$imap->Password($password) ;
@ -2263,8 +2265,8 @@ sub banner_imapsync {
my @argv = @_ ;
my $banner_imapsync = join("",
'$RCSfile: imapsync,v $ ',
'$Revision: 1.564 $ ',
'$Date: 2013/08/18 19:28:47 $ ',
'$Revision: 1.567 $ ',
'$Date: 2013/09/18 20:38:10 $ ',
"\n",localhost_info(), "\n",
"Command line used:\n",
"$0 ", command_line_nopassword( @argv ), "\n",
@ -2315,7 +2317,7 @@ sub exit_clean {
sub die_clean {
my @messages = @_ ;
unlink( $pidfile ) ;
croak @messages ;
croak( @messages ) ;
}
sub missing_option {
@ -3344,7 +3346,7 @@ sub copy_message {
my ( $h1_msg, $h1_fold, $h2_fold, $h1_fir_ref, $permanentflags2, $cache_dir ) = @_ ;
( $debug or $dry) and print "msg $h1_fold/$h1_msg copying to $h2_fold $dry_message\n";
my $h1_size = $h1_fir_ref->{$h1_msg}->{"RFC822.SIZE"} || '' ;
my $h1_size = $h1_fir_ref->{$h1_msg}->{"RFC822.SIZE"} || 0 ;
my $h1_flags = $h1_fir_ref->{$h1_msg}->{"FLAGS"} || '' ;
my $h1_idate = $h1_fir_ref->{$h1_msg}->{"INTERNALDATE"} || '' ;
@ -4657,7 +4659,7 @@ sub check_last_release {
}
sub imapsync_version {
my $rcs_imapsync = '$Id: imapsync,v 1.564 2013/08/18 19:28:47 gilles Exp gilles $ ' ;
my $rcs_imapsync = '$Id: imapsync,v 1.567 2013/09/18 20:38:10 gilles Exp gilles $ ' ;
my $imapsync_version ;
if ( $rcs_imapsync =~ m{,v\s+(\d+\.\d+)}xo ) {

View File

@ -5,7 +5,7 @@
<title>Official imapsync 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="2013-08-04T22:34:47+0200"/>
<meta name="date" content="2013-09-22T00:28:13+0200"/>
<meta name="copyright" content="None"/>
<meta name="keywords" content="imap, transfert, migration"/>
<meta name="description" content="imap migration tool"/>
@ -73,7 +73,7 @@ No way via IMAP, no way via imapsync
<b>imapsync</b> is not suitable for maintaining a synchronization between two active imap accounts while the user
is working on both sides.
Use <a href="https://github.com/nicolas33/offlineimap"><b>offlineimap</b></a> (written by John Goerzen)
Use <a href="http://offlineimap.org/"><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>bidirectionnal (2 ways) synchronizations</b>.
</p>
@ -84,10 +84,10 @@ for <b>bidirectionnal (2 ways) synchronizations</b>.
<h2><a id="NUMBERS"></a>Facts and figures for 2011-2013</h2>
<ul>
<li><b>4000 to 5000 </b>users per month (34000 users a year)</li>
<li><b>4000 to 5000 </b>users per month (45000 users a year)</li>
<li><b>6 to 25 millions mailboxes </b>transfers per month,
total is 93 millions for 2011, 91 millions for 2012, 66 millions for half 2013</li>
<li><b>6 to 25 millions mailboxes transfers per month</b>,
total is 93 millions for 2011, 91 millions for 2012, should be <b>110 millions for end 2013</b></li>
<li><b>Operating systems</b> run by imapsync users:
<ul>
@ -102,14 +102,32 @@ total is 93 millions for 2011, 91 millions for 2012, 66 millions for half 2013</
</li>
<li><b>Highest use rate</b>: about <b>21 millions</b> of IMAP mailbox transfers (in a single month)</li>
</ul>
<p>
Where all those numbers come from?
To know wether a newer imapsync exists or not imapsync does a http GET to <a href="http://imapsync.lamiral.info/VERSION">VERSION</a>.
Via the <b>User-agent</b> parameter it also send:</p>
<ul>
<li>imapsync release</li>
<li>Perl version</li>
<li>Mail::IMAPClient version</li>
<li>Operating System</li>
</ul>
<p>You can <b>remove this behavior</b> by adding option <b>--noreleasecheck</b> on the command line (or by setting $releasecheck = 0 in the source code)
</p>
<h2><a id="latest"></a>Latest release is imapsync
<!--#exec cmd="cat ./VERSION" -->
</h2>
<p>Written on <!--#flastmod file="./VERSION" --></p>
<p>imapsync <!--#exec cmd="cat ./VERSION" --> was written on <!--#flastmod file="./VERSION" --></p>
<div id="osw_imapsync"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript"></script>
<script src="http://static.oswatershed.org/js/package_badge.js" type="text/javascript"></script>
<script type="text/javascript">$(document).ready(function(){ package_badge("imapsync", "#osw_imapsync"); });</script>
<p>See <b><a href="ChangeLog">ChangeLog</a></b> to know what's new in details since 2001.</p>
@ -117,7 +135,7 @@ total is 93 millions for 2011, 91 millions for 2012, 66 millions for half 2013</
<!--
<ul>
<li><b>1.564</b></li>
<li><b>1.567</b></li>
<li><b>Enhancement</b>: </li>
<li><b>Enhancement</b>: </li>
<li><b>Enhancement</b>: </li>
@ -127,7 +145,7 @@ total is 93 millions for 2011, 91 millions for 2012, 66 millions for half 2013</
<li><b>Usability</b>: </li>
<li><b>Usability</b>: </li>
<li><b>Bug fix</b>: </li>
<li><b><Bug fix</b>: </li>
<li><b>Bug fix</b>: </li>
<li><b>Bug fix</b>: </li>
<li><b>Bug fix</b>: </li>
<li><b>Refactoring</b>: </li>
@ -137,6 +155,13 @@ total is 93 millions for 2011, 91 millions for 2012, 66 millions for half 2013</
</ul>
-->
<ul>
<li><b>1.567</b> imapsync.exe crash fix</li>
<li><b>Enhancement</b>: Added --authmech EXTERNAL.</li>
<li><b>Bug fix</b>: Fixed a warning when RFC822.SIZE is null or undef.</li>
<li><b>Bug fix</b>: Fixed imapsync.exe crash with no error message when it exits on a error. Back to Perl 5.16</li>
</ul>
<ul>
<li><b>1.564</b> QQMail support</li>
<li><b>Enhancement</b>: Adapted behavior for allowing --maxdate --mindate with --noabletosearch.
@ -677,6 +702,7 @@ I like it.
<li><b>Dovecot</b> 0.99.10.4, 0.99.14, 0.99.14-8.fc4, 1.0-0.beta2.7,
1.0.0 [dest/source] (LGPL) (http://www.dovecot.org/) (<a href="http://www.dovecot.org/">http://www.dovecot.org/</a>) </li>
<li>Eudora WorldMail v2 (<a href="http://www.eudora.com/worldmail/">http://www.eudora.com/worldmail/</a>) </li>
<li>Fusemail imap.fusemail.net:143 (<a href="https://www.fusemail.com/">https://www.fusemail.com/</a>).</li>
<li><b>Gimap</b> (<b>Gmail</b> imap) [host1] [host2] (<a href="http://mail.google.com/">http://mail.google.com/</a>) </li>
<li>GMX IMAP4 StreamProxy. (<a href="http://www.gmx.com/">http://www.gmx.com/</a>) </li>
<li>Godaddy IMAP (since Godaddy runs Courier) (<a href="http://www.godaddy.com/">http://www.godaddy.com/</a>) </li>
@ -712,9 +738,11 @@ I like it.
(<a href="http://www.oracle.com/technetwork/middleware/beehive/">http://www.oracle.com/technetwork/middleware/beehive/</a>) </li>
<li>Qualcomm Worldmail (NT) (<a href="http://www.eudora.com/worldmail/">http://www.eudora.com/worldmail/</a>) </li>
<li>Rockliffe Mailsite 5.3.11, 4.5.6 (<a href="http://www.mailsite.com/">http://www.mailsite.com/</a>) </li>
<li>RackSpace hoster secure.emailsrvr.com:993 <a href="http://www.rackspace.com/">http://www.rackspace.com/</a>)</li>
<li>QQMail IMAP4Server [host1] [host2] (See FAQ) <a href="https://en.mail.qq.com/">https://en.mail.qq.com/</a> </li>
<li>Samsung Contact IMAP server 8.5.0 </li>
<li>Scalix v10.1, 10.0.1.3, 11.0.0.431, 11.4.6 (<a href="http://www.scalix.com/">http://www.scalix.com/</a>) </li>
<li>Sendmail Mail Store IMAP4rev1 (5.5.6/mstore-5-5-build-1874 [host1].</li>
<li>SmarterMail, Smarter Mail 5.0 Enterprise, Smarter Mail 5.5 [host1], SmarterMail Professional 10.2 [host1]. (<a href="http://www.smartertools.com/">http://www.smartertools.com/</a>) </li>
<li>Softalk Workgroup Mail 7.6.4 [host1] (<a href="http://www.softalkltd.com/products/download_wm_v7.asp">http://www.softalkltd.com/products/download_wm_v7.asp</a>).</li>
<li>SunONE Messaging server 5.2, 6.0 (SUN JES - Java Enterprise System) (<a href="http://www.oracle.com/">http://www.oracle.com/</a>) </li>
@ -737,7 +765,7 @@ I like it.
<ul>
<li> imap_tools: <a href="http://www.athensfbc.com/imap_tools">http://www.athensfbc.com/imap_tools</a></li>
<li> imaputils: <a href="http://code.google.com/p/imaputils/">http://code.google.com/p/imaputils/</a> (imap_tools fork)</li>
<li> <b>offlineimap</b>: <a href="https://github.com/nicolas33/offlineimap">https://github.com/nicolas33/offlineimap</a></li>
<li> <b>offlineimap</b>: <a href="http://offlineimap.org/">http://offlineimap.org/</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>
@ -772,7 +800,7 @@ Prices are given par mailbox and may be outdated (december 2011).</p>
</ul>
<hr/>
<p>
<div>
<a href="http://validator.w3.org/check?uri=referer">
<img
src="W/images/valid-xhtml10"
@ -790,14 +818,14 @@ Prices are given par mailbox and may be outdated (december 2011).</p>
src="W/images/ab_jlh.png"
alt="Viewable With Any Browser" />
</a>
</p>
</div>
<hr/>
<p>
<!--#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.180 2013/08/19 21:30:37 gilles Exp gilles $)
($Id: index.shtml,v 1.185 2013/09/21 22:28:26 gilles Exp gilles $)
</p>
</body>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,23 +1,23 @@
Main code has high complexity score (333) at line 1, column 1. Consider refactoring. (Severity: 3)
Code structure is deeply nested at line 1513, column 41. Consider refactoring. (Severity: 3)
Too many arguments at line 1680, column 1. See page 182 of PBP. (Severity: 3)
Too many arguments at line 1695, column 1. See page 182 of PBP. (Severity: 3)
Too many arguments at line 1705, column 1. See page 182 of PBP. (Severity: 3)
Too many arguments at line 1939, column 1. See page 182 of PBP. (Severity: 3)
Too many arguments at line 1994, column 1. See page 182 of PBP. (Severity: 3)
Too many arguments at line 2050, column 1. See page 182 of PBP. (Severity: 3)
Too many arguments at line 2141, column 1. See page 182 of PBP. (Severity: 3)
Expression form of "eval" at line 2766, column 13. See page 161 of PBP. (Severity: 5)
Expression form of "eval" at line 2984, column 13. See page 161 of PBP. (Severity: 5)
Subroutine "select_msgs" does not end with "return" at line 3125, column 1. See page 197 of PBP. (Severity: 4)
Subroutine "tests_msgs_from_maxmin" does not end with "return" at line 3264, column 1. See page 197 of PBP. (Severity: 4)
Subroutine "copy_message" with high complexity score (21) at line 3341, column 1. Consider refactoring. (Severity: 3)
Too many arguments at line 3341, column 1. See page 182 of PBP. (Severity: 3)
Too many arguments at line 3401, column 1. See page 182 of PBP. (Severity: 3)
Subroutine "tests_subject" does not end with "return" at line 3495, column 1. See page 197 of PBP. (Severity: 4)
Too many arguments at line 3558, column 1. See page 182 of PBP. (Severity: 3)
Expression form of "eval" at line 4315, column 13. See page 161 of PBP. (Severity: 5)
Too many arguments at line 4470, column 1. See page 182 of PBP. (Severity: 3)
Expression form of "eval" at line 5102, column 43. See page 161 of PBP. (Severity: 5)
Expression form of "eval" at line 5106, column 45. See page 161 of PBP. (Severity: 5)
"$i" is declared but not used at line 5370, column 9. Unused variables clutter code and make it harder to read. (Severity: 3)
Main code has high complexity score (335) at line 1, column 1. Consider refactoring. (Severity: 3)
Code structure is deeply nested at line 1516, column 41. Consider refactoring. (Severity: 3)
Too many arguments at line 1683, column 1. See page 182 of PBP. (Severity: 3)
Too many arguments at line 1698, column 1. See page 182 of PBP. (Severity: 3)
Too many arguments at line 1708, column 1. See page 182 of PBP. (Severity: 3)
Too many arguments at line 1942, column 1. See page 182 of PBP. (Severity: 3)
Too many arguments at line 1997, column 1. See page 182 of PBP. (Severity: 3)
Too many arguments at line 2053, column 1. See page 182 of PBP. (Severity: 3)
Too many arguments at line 2143, column 1. See page 182 of PBP. (Severity: 3)
Expression form of "eval" at line 2768, column 13. See page 161 of PBP. (Severity: 5)
Expression form of "eval" at line 2986, column 13. See page 161 of PBP. (Severity: 5)
Subroutine "select_msgs" does not end with "return" at line 3127, column 1. See page 197 of PBP. (Severity: 4)
Subroutine "tests_msgs_from_maxmin" does not end with "return" at line 3266, column 1. See page 197 of PBP. (Severity: 4)
Subroutine "copy_message" with high complexity score (21) at line 3343, column 1. Consider refactoring. (Severity: 3)
Too many arguments at line 3343, column 1. See page 182 of PBP. (Severity: 3)
Too many arguments at line 3403, column 1. See page 182 of PBP. (Severity: 3)
Subroutine "tests_subject" does not end with "return" at line 3497, column 1. See page 197 of PBP. (Severity: 4)
Too many arguments at line 3560, column 1. See page 182 of PBP. (Severity: 3)
Expression form of "eval" at line 4317, column 13. See page 161 of PBP. (Severity: 5)
Too many arguments at line 4472, column 1. See page 182 of PBP. (Severity: 3)
Expression form of "eval" at line 5104, column 43. See page 161 of PBP. (Severity: 5)
Expression form of "eval" at line 5108, column 45. See page 161 of PBP. (Severity: 5)
"$i" is declared but not used at line 5372, column 9. Unused variables clutter code and make it harder to read. (Severity: 3)

View File

@ -1,6 +1,6 @@
#!/bin/sh
# $Id: tests.sh,v 1.224 2013/08/18 19:30:46 gilles Exp gilles $
# $Id: tests.sh,v 1.225 2013/09/21 21:55:17 gilles Exp gilles $
# Example 1:
# CMD_PERL='perl -I./Mail-IMAPClient-3.33/lib' sh -x tests.sh
@ -468,6 +468,16 @@ ll_folderrec_star() {
--folderrec 'INBOX.yop.*' --justfolders
}
ll_change_blank() {
$CMD_PERL ./imapsync \
--host1 $HOST1 --user1 tata \
--passfile1 ../../var/pass/secret.tata \
--host2 $HOST2 --user2 titi \
--passfile2 ../../var/pass/secret.titi \
--justfolders --nofoldersizes
}
ll_folderrec_blank_bug() {
@ -2186,6 +2196,19 @@ msw2() {
ssh Admin@c 'C:/msys/1.0/home/Admin/imapsync/test_exe.bat'
}
ll_change_characters_gmail() {
$CMD_PERL ./imapsync \
--host1 $HOST1 --user1 tata \
--passfile1 ../../var/pass/secret.tata \
--host2 $HOST2 --user2 titi \
--passfile2 ../../var/pass/secret.titi \
--folder "INBOX. f g\h\"i'j " --justfolders \
--regextrans2 "s/['\"\\\\]/_/g" --regextrans2 's,(/|^) +,$1,g' --regextrans2 's, +(/|$),$1,g'
}
xxxxx_gmail() {
! ping -c1 imap.gmail.com || $CMD_PERL ./imapsync \
@ -2197,7 +2220,7 @@ xxxxx_gmail() {
--user2 gilles.lamiral@gmail.com \
--passfile2 ../../var/pass/secret.gilles_gmail \
--nofoldersizes \
--regextrans2 's/ +$//g' --regextrans2 's# +/#/#g' \
--regextrans2 's,(/|^) +,$1,g' --regextrans2 's, +(/|$),$1,g' \
--exclude 'INBOX.yop.YAP' \
--regextrans2 "s,^Messages envoy&AOk-s$,[Gmail]/Messages envoy&AOk-s," \
--regextrans2 "s,^Sent$,[Gmail]/Sent Mail," \
@ -2288,7 +2311,8 @@ xxxxx_gmail_5_justfolders() {
--ssl2 \
--user2 gilles.lamiral@gmail.com \
--passfile2 ../../var/pass/secret.gilles_gmail \
--justfolders
--justfolders --nofoldersizes \
--regextrans2 's,(/|^) +,$1,g' --regextrans2 's, +(/|$),$1,g'
}