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-08-03 20:27:37 -05:00
parent ce6842565f
commit ce9d0bd3d8
17 changed files with 187 additions and 106 deletions

16
FAQ
View File

@ -1,5 +1,5 @@
#!/bin/cat
# $Id: FAQ,v 1.135 2013/07/23 11:28:22 gilles Exp gilles $
# $Id: FAQ,v 1.136 2013/08/03 02:07:30 gilles Exp gilles $
+------------------+
| FAQ for imapsync |
@ -818,6 +818,18 @@ b) Use stunnel
stunnel -c -d 143 -r imap.foo.org:993
then use imapsync on localhost (or bar machine) imap (143) port.
=======================================================================
Q. On windows ssl use to work with imapsync.exe 1.536 or previous then
an upgrade to next release makes it fail.
R. The I0::Socket::SSL can have SSL_version set by default to
"SSLv23:!SSLv2" but the auto-negociation can fail with
some ssl servers. Use --ssl1_SSL_version or
--ssl2_SSL_version to change SSL_version.
Try:
imapsync ... --ssl1 --ssl1_SSL_version "SSLv3"
=======================================================================
Q: How to have an imaps server?
@ -839,7 +851,7 @@ Imapsync appears to require IO::Socket::SSL. What can I do?
R1: use standalone imapsync.exe, it contains IO::Socket::SSL
Perl module embeded.
R2: IO::Socket::SSLio-socket-ssl is available on Win32
R2: Module IO::Socket::SSL is available on Win32
with Strawberry Perl.
=======================================================================

View File

@ -1,5 +1,5 @@
# $Id: Makefile,v 1.123 2013/07/23 11:27:18 gilles Exp gilles $
# $Id: Makefile,v 1.125 2013/08/03 17:25:50 gilles Exp gilles $
.PHONY: help usage all
@ -14,7 +14,7 @@ usage:
@echo "make tests_win32 # run --test and W/test.bat on win32"
@echo "make tests_win32_dev # run W/test2.bat on win32"
@echo "make tests_win32_dev3 # run W/test3.bat on win32"
@echo "make prereq_win32 # run examples/install_modules.bat on win32"
@echo "make .prereq_win32 # run examples/install_modules.bat on win32"
@echo "make all "
@echo "make upload_index"
@echo "make upload_ks"
@ -166,11 +166,12 @@ test_imapsync_exe: dosify_bat
scp W/test_exe.bat Admin@c:'C:/msys/1.0/home/Admin/imapsync/'
time ssh Admin@c 'C:/msys/1.0/home/Admin/imapsync/test_exe.bat'
prereq_win32: examples/install_modules.bat .dosify_bat
.prereq_win32: examples/install_modules.bat .dosify_bat
scp examples/install_modules.bat Admin@c:'C:/msys/1.0/home/Admin/imapsync/'
ssh Admin@c 'C:/msys/1.0/home/Admin/imapsync/install_modules.bat'
touch .prereq_win32
imapsync.exe: imapsync prereq_win32 build_exe.bat .dosify_bat
imapsync.exe: imapsync .prereq_win32
rcsdiff imapsync
ssh Admin@c 'perl -V'
(date "+%s"| tr "\n" " "; echo -n "BEGIN " $(VERSION) ": "; date) >> W/.BUILD_EXE_TIME
@ -293,7 +294,22 @@ ksa:
rsync -avHz --delete -P \
. imapsync@ks.lamiral.info:public_html/imapsync/
publish: ksa upload_ks ml
upload_ks: ci tarball
rsync -lptvHzP $(PUBLIC_FILES) \
root@ks.lamiral.info:/var/www/imapsync/
rsync -lptvHzP $(PUBLIC_FILES_W) \
root@ks.lamiral.info:/var/www/imapsync/W/
rsync -lptvHzP $(PUBLIC_FILES_IMAGES) \
root@ks.lamiral.info:/var/www/imapsync/W/images/
rsync -lptvHzP ./W/ks.htaccess \
root@ks.lamiral.info:/var/www/imapsync/.htaccess
rsync -lptvHzrP ./dist/ \
root@ks.lamiral.info:/var/www/imapsync/dist/
rsync -lptvHzrP ./examples/ \
root@ks.lamiral.info:/var/www/imapsync/examples/
publish: upload_ks ksa
echo Now ou can do make ml
PUBLIC_FILES = ./ChangeLog ./NOLIMIT ./LICENSE ./CREDITS ./FAQ \
./index.shtml ./INSTALL \
@ -312,20 +328,6 @@ ml: dist_dir
mailq
upload_ks: ci
rsync -lptvHzP $(PUBLIC_FILES) \
root@ks.lamiral.info:/var/www/imapsync/
rsync -lptvHzP $(PUBLIC_FILES_W) \
root@ks.lamiral.info:/var/www/imapsync/W/
rsync -lptvHzP $(PUBLIC_FILES_IMAGES) \
root@ks.lamiral.info:/var/www/imapsync/W/images/
rsync -lptvHzP ./W/ks.htaccess \
root@ks.lamiral.info:/var/www/imapsync/.htaccess
rsync -lptvHzrP ./dist/ \
root@ks.lamiral.info:/var/www/imapsync/dist/
rsync -lptvHzrP ./examples/ \
root@ks.lamiral.info:/var/www/imapsync/examples/
upload_lfo:
#rm -rf /home/gilles/public_html/www.linux-france.org/html/prj/imapsync/
#rm -rf /home/gilles/public_html/www.linux-france.org/ftp/prj/imapsync/

29
TODO
View File

@ -1,5 +1,5 @@
#!/bin/cat
# $Id: TODO,v 1.120 2013/07/22 07:40:44 gilles Exp gilles $
# $Id: TODO,v 1.122 2013/08/03 02:08:33 gilles Exp gilles $
TODO file for imapsync
----------------------
@ -11,17 +11,15 @@ Add a best practice migration tips document.
Write a Mail::imapsync package and use it.
Fix the mailing-list archive bug with From at
the beginning of a line
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/
http://www.microsoft.com/download/en/details.aspx?id=1329 "Microsoft Transporter Suite"
Print the timeout value.
Inform --timeout is is seconds.
Add an exit value when exiting because of --exitwhenover
The goal is to know easily why to restart later.
@ -43,9 +41,15 @@ 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.
Fix long path over than 260 character on Win32 with --usecache
Fix inode crunching with --usecache
Think about Digest::SHA or Digest::SHA::PurePerl.
Think about a file database like DBM instead.
Look at https://en.wikipedia.org/wiki/Radix_tree (David M advice)
Look at leveldb (Simon Th actux advice)
Look at http://fallabs.com/kyotocabinet/ (JYB advice)
Also Redis (Ludovic Danigo advice)
Find a way to avoid passwords in --debugimap unless needed.
@ -124,9 +128,7 @@ vs 250s avec la version 1.217". Marc Jauvin
Add LITERAL+ [RFC 2088] support to imapsync.
Add an entry to
http://lsm.execpc.com/lsm/
See template lsm.imapsync
Make a m4 file for lsm.imapsync and generate it at each public release.
Add an option to tell imapsync that the domain
is changing and have it replace the domain in all user names that are
@ -150,6 +152,13 @@ http://asg.web.cmu.edu/cyrus/download/imapd/altnamespace.html
===========================================================================
DONE. Add an entry to http://lsm.qqx.org/lsm/
See lsm.imapsync
DONE. Fix the mailing-list archive bug with From at
the beginning of a line
http://www.linux-france.org/prj/imapsync_list/msg00307.html
DONE. Remove 2.2.9 Mail::IMAPClient support.
DONE. Add OAUTH autentication support

View File

@ -1 +1 @@
1.555
1.558

View File

@ -214,3 +214,13 @@
1374581003 END 1.555 : mardi 23 juillet 2013, 14:03:23 (UTC+0200)
1374582566 BEGIN 1.555 : mardi 23 juillet 2013, 14:29:26 (UTC+0200)
1374583297 END 1.555 : mardi 23 juillet 2013, 14:41:37 (UTC+0200)
1375316925 BEGIN 1.556 : jeudi 1 août 2013, 02:28:45 (UTC+0200)
1375317443 END 1.556 : jeudi 1 août 2013, 02:37:23 (UTC+0200)
1375488764 BEGIN 1.557 : samedi 3 août 2013, 02:12:44 (UTC+0200)
1375489277 END 1.557 : samedi 3 août 2013, 02:21:17 (UTC+0200)
1375492828 BEGIN 1.558 : samedi 3 août 2013, 03:20:28 (UTC+0200)
1375494466 END 1.558 : samedi 3 août 2013, 03:47:46 (UTC+0200)
1375495357 BEGIN 1.558 : samedi 3 août 2013, 04:02:37 (UTC+0200)
1375497013 END 1.558 : samedi 3 août 2013, 04:30:13 (UTC+0200)
1375534760 BEGIN 1.558 : samedi 3 août 2013, 14:59:20 (UTC+0200)
1375536286 END 1.558 : samedi 3 août 2013, 15:24:46 (UTC+0200)

View File

@ -13,7 +13,7 @@ my $X = tie %hash, 'DB_File', 'test_dbfile.db' ;
print ( scalar keys %hash, "\n" ) ;
#exit ;
@ARGV and exit ;
for my $num ( 0 .. 255 ) {
print "$num\n" ;

Binary file not shown.

View File

@ -1,16 +1,17 @@
Begin4
Title: imapsync
Version: 1.209
Entered-date: 2007-01-09
Description: 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.
Keywords: IMAP synchronisation mail
Author: lamiral@linux-france.org (Gilles LAMIRAL)
Maintained-by: lamiral@linux-france.org (Gilles LAMIRAL)
Primary-site: http://www.linux-france.org/prj/imapsync/dist/
Alternate-site:
Original-site: http://www.linux-france.org/prj/imapsync/dist/
Platforms: UNIX Windows
Copying-policy: GPL
Version: 1.555
Entered-date: 2013-07-30
Description: IMAP synchronization, backup, copy or migration tool.
Synchronizes mailboxes between two IMAP servers. Good at IMAP migration.
More than 52 different IMAP server softwares supported.
Keywords: email IMAP synchronization migration backup migration
Author: gilles.lamiral@laposte.net (Gilles LAMIRAL)
Maintained-by: gilles.lamiral@laposte.net (Gilles LAMIRAL)
Primary-site: http://imapsync.lamiral.info/
Alternate-site: https://github.com/imapsync/
Original-site: http://imapsync.lamiral.info/
Platforms: Any UNIX with Perl or Windows
Copying-policy: No limit to do anything with this work and this license.
50 EUR at http://imapsync.lamiral.info/ or gratis at github
End

View File

@ -1,6 +1,6 @@
#!/bin/sh
# $Id: paypal_build_invoices,v 1.53 2013/06/10 14:33:30 gilles Exp gilles $
# $Id: paypal_build_invoices,v 1.54 2013/07/28 04:19:32 gilles Exp gilles $
# usage: sh paypal_build_invoices /g/var/paypal_invoices/????
@ -38,7 +38,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 2451 /g/paypal/paypal_2013_03_complet.csv
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 2519 /g/paypal/paypal_2013_04_complet.csv
#/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 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 --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
@ -71,9 +72,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 2451 /g/paypal/paypal_2013_03_complet.csv
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 2519 /g/paypal/paypal_2013_04_complet.csv
: /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
set -x
: /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
set +x
# La totale
@ -89,12 +91,12 @@ set -v
set +v
# 2012
echo 2012
set -v
#echo 2012
#set -v
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan \
--first_in 1335 --usdeur 1.2952 --bnc --avoid_numbers '292 293 643 644 731 732 1093 1330 1331 1332 1333 1334 1652 1653 2131 2132 2295 2296 2297 2298' \
/g/paypal/paypal_2012_??_complet.csv
set +v
#set +v
echo 'sh paypal_build_invoices /g/var/paypal_invoices/2???'

View File

@ -2,7 +2,17 @@
cd C:\msys\1.0\home\Admin\imapsync
.\imapsync.exe --host1 p --user1 toto --passfile1 secret.toto --host2 p --user2 titi --passfile2 secret.titi --ssl1 --ssl2 --justconnect
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
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

View File

@ -1,5 +1,5 @@
REM $Id: test3.bat,v 1.2 2013/05/22 10:09:27 gilles Exp gilles $
REM $Id: test3_gmail.bat,v 1.1 2013/07/23 13:29:56 gilles Exp gilles $
cd /D %~dp0

View File

@ -5,6 +5,8 @@ perl -mMail::IMAPClient -mDigest::MD5 -mTerm::ReadKey -mIO::Socket::SSL -mFile::
.\imapsync.exe
.\imapsync.exe --host1 p --user1 toto --passfile1 secret.toto --host2 p --user2 titi --passfile2 secret.titi --ssl1 --ssl2 --justconnect
.\imapsync.exe --host1 p --user1 toto --passfile1 secret.toto --host2 p --user2 titi --passfile2 secret.titi --ssl1 --ssl1_SSL_version SSLv3 --ssl2 --justconnect
.\imapsync.exe --host1 p --user1 toto --passfile1 secret.toto --host2 p --user2 titi --passfile2 secret.titi --ssl1 --ssl1_SSL_version SSLv3 --ssl2 --justlogin
.\imapsync.exe --host1 p --user1 toto --passfile1 secret.toto --host2 p --user2 titi --passfile2 secret.titi --ssl1 --ssl2 --delete2
.\imapsync.exe --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --ssl1 --ssl2 --delete2 --folder INBOX
.\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,13 +1,13 @@
REM $Id: build_exe.bat,v 1.18 2013/07/23 11:27:50 gilles Exp gilles $
REM $Id: build_exe.bat,v 1.19 2013/08/03 12:42:36 gilles Exp gilles $
@ECHO OFF
ECHO Building imapsync.exe
CALL .\examples\install_modules.bat
cd /D %~dp0
CALL .\examples\install_modules.bat
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 ^

View File

@ -1,5 +1,5 @@
REM $Id: install_modules.bat,v 1.6 2013/07/23 11:30:58 gilles Exp gilles $
REM $Id: install_modules.bat,v 1.7 2013/08/03 02:19:58 gilles Exp gilles $
@ECHO OFF
@ -12,8 +12,9 @@ IF ERRORLEVEL 1 ECHO Perl needed. Install Strawberry Perl. Get it at http://stra
REM perl is there
FOR %%M in ( IO::Socket IO::Socket::IP ^
Net::SSLeay IO::Socket::SSL ^
FOR %%M in ( IO::Socket::INET IO::Socket::INET6 IO::Socket::IP ^
Net::SSLeay ^
Crypt::SSLeay Net::SSL IO::Socket::SSL ^
Digest::MD5 Digest::HMAC_MD5 ^
Term::ReadKey File::Spec ^
Time::HiRes ^
@ -21,8 +22,11 @@ FOR %%M in ( IO::Socket IO::Socket::IP ^
Authen::NTLM ^
Time::Local ^
Mail::IMAPClient ^
PAR::Packer ) DO ECHO Testing %%M ^
& perl -m%%M -e "" || perl -MCPAN -e "install %%M"
Getopt::ArgvFile Module::ScanDeps ^
PAR::Packer ) DO ECHO Updating %%M ^
& perl -MCPAN -e "install %%M"
REM & perl -m%%M -e "" || perl -MCPAN -e "install %%M"
ECHO Perl modules for imapsync installed

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.555 $
$Revision: 1.558 $
=head1 SYNOPSIS
@ -534,7 +534,7 @@ Entries for imapsync:
Feedback (good or bad) will often be welcome.
$Id: imapsync,v 1.555 2013/07/23 11:41:10 gilles Exp gilles $
$Id: imapsync,v 1.558 2013/08/03 01:13:37 gilles Exp gilles $
=cut
@ -626,7 +626,8 @@ my(
$timeout,
$timestart, $timestart_int, $timeend,
$timebefore,
$ssl1, $ssl2,
$ssl1, $ssl2,
$ssl1_SSL_version, $ssl2_SSL_version,
$tls1, $tls2,
$uid1, $uid2,
$authuser1, $authuser2,
@ -660,7 +661,7 @@ my(
# global variables initialisation
$rcs = '$Id: imapsync,v 1.555 2013/07/23 11:41:10 gilles Exp gilles $ ';
$rcs = '$Id: imapsync,v 1.558 2013/08/03 01:13:37 gilles Exp gilles $ ';
$total_bytes_transferred = 0;
$total_bytes_skipped = 0;
@ -972,13 +973,13 @@ $debugimap1 and print "Host1 connection\n";
$imap1 = login_imap($host1, $port1, $user1, $domain1, $password1,
$debugimap1, $timeout, $fastio1, $ssl1, $tls1,
$authmech1, $authuser1, $reconnectretry1,
$proxyauth1, $uid1, $split1, 'Host1');
$proxyauth1, $uid1, $split1, 'Host1', $ssl1_SSL_version );
$debugimap2 and print "Host2 connection\n";
$imap2 = login_imap($host2, $port2, $user2, $domain2, $password2,
$debugimap2, $timeout, $fastio2, $ssl2, $tls2,
$authmech2, $authuser2, $reconnectretry2,
$proxyauth2, $uid2, $split2, 'Host2');
$proxyauth2, $uid2, $split2, 'Host2', $ssl2_SSL_version );
$debug and print "Host1 Buffer I/O: ", $imap1->Buffer(), "\n";
@ -1911,9 +1912,9 @@ sub catch_continue {
sub connect_imap {
my($host, $port, $mydebugimap, $ssl, $tls) = @_;
my( $host, $port, $mydebugimap, $ssl, $tls, $SSL_version ) = @_;
my $imap = Mail::IMAPClient->new();
$imap->Ssl($ssl) if ($ssl);
if ( $ssl ) { set_ssl( $imap, $ssl, $SSL_version ) }
$imap->Tls($tls) if ($tls);
$imap->Server($host);
$imap->Port($port);
@ -1930,14 +1931,14 @@ sub connect_imap {
sub justconnect {
$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();
$imap1 = connect_imap( $host1, $port1, $debugimap1, $ssl1, $tls1, $ssl1_SSL_version ) ;
print "Host1 software: ", server_banner( $imap1 ) ;
print "Host1 capability: ", join(" ", $imap1->capability( ) ), "\n" ;
$imap2 = connect_imap( $host2, $port2, $debugimap2, $ssl2, $tls2, $ssl2_SSL_version ) ;
print "Host2 software: ", server_banner( $imap2 ) ;
print "Host2 capability: ", join(" ", $imap2->capability( ) ), "\n" ;
$imap1->logout() ;
$imap2->logout() ;
return( ) ;
}
@ -1991,7 +1992,7 @@ sub login_imap {
my($host, $port, $user, $domain, $password,
$mydebugimap, $mytimeout, $fastio,
$ssl, $tls, $authmech, $authuser, $reconnectretry,
$proxyauth, $uid, $split, $Side ) = @allargs ;
$proxyauth, $uid, $split, $Side, $SSL_version ) = @allargs ;
my $side = lc( $Side ) ;
my $imap = init_imap( @allargs ) ;
@ -2096,17 +2097,33 @@ sub check_capability {
return( ) ;
}
sub set_ssl {
my ( $imap, $ssl, $SSL_version ) = @_ ;
# SSL_version can be
# SSLv3 SSLv2 SSLv23 SSLv23:!SSLv2 (last one is the default in IO-Socket-SSL-1.953)
#
$SSL_version = $SSL_version || '' ;
#print "[$SSL_version]\n" ;
IO::Socket::SSL::set_ctx_defaults(
SSL_verify_mode => 'SSL_VERIFY_PEER',
SSL_verifycn_scheme => 'imap',
SSL_version => $SSL_version,
) ;
$imap->Ssl( $ssl ) ;
return( ) ;
}
sub init_imap {
my($host, $port, $user, $domain, $password,
$mydebugimap, $mytimeout, $fastio,
$ssl, $tls, $authmech, $authuser, $reconnectretry,
$proxyauth, $uid, $split ) = @_ ;
$proxyauth, $uid, $split, $Side, $SSL_version ) = @_ ;
my ( $imap ) ;
$imap = Mail::IMAPClient->new() ;
$imap->Ssl($ssl) if ($ssl);
if ( $ssl ) { set_ssl( $imap, $ssl, $SSL_version ) }
$imap->Tls($tls) if ($tls);
$imap->Clear(1);
$imap->Server($host);
@ -2117,7 +2134,7 @@ sub init_imap {
#$imap->Uid(0);
$imap->Peek(1);
$imap->Debug($mydebugimap);
$mytimeout and $imap->Timeout($mytimeout);
defined( $mytimeout ) and $imap->Timeout($mytimeout);
$imap->Reconnectretry($reconnectretry) if ($reconnectretry);
$imap->Ignoresizeerrors( $allowsizemismatch ) ;
@ -2221,8 +2238,8 @@ sub banner_imapsync {
my @argv = @_ ;
my $banner_imapsync = join("",
'$RCSfile: imapsync,v $ ',
'$Revision: 1.555 $ ',
'$Date: 2013/07/23 11:41:10 $ ',
'$Revision: 1.558 $ ',
'$Date: 2013/08/03 01:13:37 $ ',
"\n",localhost_info(), "\n",
"Command line used:\n",
"$0 ", command_line_nopassword( @argv ), "\n",
@ -4323,10 +4340,7 @@ sub load_modules {
if ( $ssl1 or $ssl2 or $tls1 or $tls2 ) {
require IO::Socket::SSL ;
#$IO::Socket::SSL::DEBUG = 3 ;
IO::Socket::SSL::set_ctx_defaults(
SSL_verify_mode => 0,
);
#$IO::Socket::SSL::DEBUG = 4 ;
}
require Term::ReadKey if (
@ -4530,7 +4544,7 @@ sub check_last_release {
}
sub imapsync_version {
my $rcs_imapsync = '$Id: imapsync,v 1.555 2013/07/23 11:41:10 gilles Exp gilles $ ' ;
my $rcs_imapsync = '$Id: imapsync,v 1.558 2013/08/03 01:13:37 gilles Exp gilles $ ' ;
my $imapsync_version ;
if ( $rcs_imapsync =~ m{,v\s+(\d+\.\d+)}xo ) {
@ -5235,7 +5249,7 @@ sub max_line_length {
my $string = shift ;
my $max = 0 ;
my $i ;
while ( $string =~ m/([^\n]*(?:\n|\E))/msxg ) {
while ( $string =~ m/([^\n]*\n?)/msxg ) {
$max = max( $max, length( $1 ) ) ;
#++$i ;
#print "max $max $i\n" ;
@ -5602,6 +5616,8 @@ sub get_options {
"fastio2!" => \$fastio2,
"ssl1!" => \$ssl1,
"ssl2!" => \$ssl2,
"ssl1_SSL_version=s" => \$ssl1_SSL_version,
"ssl2_SSL_version=s" => \$ssl2_SSL_version,
"tls1!" => \$tls1,
"tls2!" => \$tls2,
"uid1!" => \$uid1,

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-07-23T13:45:17+0200"/>
<meta name="date" content="2013-08-03T18:23:52+0200"/>
<meta name="copyright" content="None"/>
<meta name="keywords" content="imap, transfert, migration"/>
<meta name="description" content="imap migration tool"/>
@ -117,7 +117,7 @@ total is 93 millions for 2011, 91 millions for 2012, 66 millions for half 2013</
<!--
<ul>
<li><b>1.555</b></li>
<li><b>1.558</b></li>
<li><b>Enhancement</b>: </li>
<li><b>Enhancement</b>: </li>
<li><b>Enhancement</b>: </li>
@ -138,26 +138,22 @@ total is 93 millions for 2011, 91 millions for 2012, 66 millions for half 2013</
-->
<ul>
<li><b>1.555</b> Better Office365 and Mailenable handling</li>
<li><b>1.558</b> Better Office365 and Mailenable handling</li>
<li><b>Enhancement</b>: Added option --messageidnodomain to fix Mailenable bug changing the domain part of Message-Id header, and avoid duplicates</li>
<li><b>Enhancement</b>: Added option --syncflagsaftercopy to fix Mailenable bug not getting the flags with the APPEND</li>
<li><b>Enhancement</b>: Added option <b>--maxlinelength</b> to skip messages whose max line length is over a number of bytes.
Exchange 2013 and Office365 need <b>--maxlinelength 1000</b> (which is a RFC2822 must) to avoid disconnections.</li>
<li><b>Enhancement</b>: </li>
<li><b>Enhancement/Bug fix</b>: Added --ssl1_SSL_version and --ssl2_SSL_version to force the SSL_version
in case the default auto-negociation does not work. Example: <b>--ssl1 --ssl1_SSL_version SSLv3</b></li>
<li><b>Usability</b>: Added back the banner of IMAP servers, ie, the first line given after the connection established.</li>
<li><b>Usability</b>: Added --fixInboxINBOX, turned on by default, to map automatically Inbox INBOX folder names.</li>
<li><b>Usability</b>: IMAP server removing consecutive spaces on the header part doesn't generate duplicates (MailEnable does that)</li>
<li><b>Usability</b>: </li>
<li><b>Usability</b>: </li>
<li><b>Usability</b>: </li>
<li><b>Bug fix</b>: Better output of mailbox sizes in human style (could be 1024.00 Kib, now it is 1.000 Mib). Changed bytes_display_string(). </li>
<li><b>Bug fix</b>: Option --debugflags now prints flags on first sync (the copy) and also the PERMANENTFLAGS outpout.</li>
<li><b>Bug fix</b>: </li>
<li><b>Bug fix</b>: </li>
<li><b>Refactoring</b>: Fixed nearly 200 perlcritic at level 3, all level 4. Still 5 eval "" at level 5 and 12 critics at level 3. Nobody cares but me.</li>
<li><b>Refactoring</b>: </li>
<li><b>Refactoring</b>: </li>
<li><b>Refactoring</b>: </li>
</ul>
@ -746,7 +742,6 @@ I don't think they use imapsync.
Prices are given par mailbox and may be outdated (december 2011).</p>
<ul>
<li> Shuttlecloud <b>0 USD</b>: <a href="http://shuttlecloud.com/">http://shuttlecloud.com/</a></li>
<li> Ovh imapcopy (French) <b>0 USD</b>: <a href="https://ssl0.ovh.net/fr/imapcopy/">https://ssl0.ovh.net/fr/imapcopy/</a></li>
<li> Movemymail free for the first and 5 USD thereafter: <a href="https://movemymail.net">https://movemymail.net</a> .</li>
<li> Mailbox Mover 7 USD: <a href="https://mailboxmover.com/">https://mailboxmover.com/</a></li>
@ -755,6 +750,7 @@ Prices are given par mailbox and may be outdated (december 2011).</p>
<li> Audriga Gmbh 9.99 EUR: <a href="https://www.email-umzug.de/en.html">https://www.email-umzug.de/</a></li>
<li> Yippiemove 15 USD: <a href="http://www.yippiemove.com">http://www.yippiemove.com/</a></li>
<li> Trueswitch 29.5 USD: <a href="http://www.trueswitch.com">http://www.trueswitch.com</a></li>
<li> Shuttlecloud <b>0 USD</b> to google apps only: <a href="http://shuttlecloud.com/solutions/#email-migration">http://shuttlecloud.com/solutions/#email-migration</a></li>
</ul>
<hr/>
@ -783,7 +779,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.171 2013/07/23 11:45:36 gilles Exp gilles $)
($Id: index.shtml,v 1.175 2013/08/03 16:24:06 gilles Exp gilles $)
</p>
</body>

View File

@ -1,6 +1,6 @@
#!/bin/sh
# $Id: tests.sh,v 1.220 2013/07/23 11:22:50 gilles Exp gilles $
# $Id: tests.sh,v 1.222 2013/08/03 17:26:19 gilles Exp gilles $
# Example 1:
# CMD_PERL='perl -I./Mail-IMAPClient-3.33/lib' sh -x tests.sh
@ -1801,6 +1801,23 @@ ll_authmech_PLAIN() {
--authmech1 PLAIN --authmech2 PLAIN
}
ll_authmech_PLAIN_ssl() {
$CMD_PERL ./imapsync \
--host1 $HOST1 --ssl1 --user1 tata \
--passfile1 ../../var/pass/secret.tata \
--host2 $HOST2 --ssl2 --user2 titi \
--passfile2 ../../var/pass/secret.titi \
--justfoldersizes --nofoldersizes \
--authmech1 PLAIN --authmech2 PLAIN
}
ll_authmech_ssl_cmich() {
$CMD_PERL ./imapsync \
--host1 cmail.cmich.edu --ssl1 --ssl1_SSL_version SSLv3 \
--host2 imap.gmail.com --ssl2 \
--justconnect
}
ll_authmech_XOAUTH_gmail() {
! ping -c1 imap.gmail.com || $CMD_PERL ./imapsync \
@ -3361,6 +3378,7 @@ ll_authmech_PLAIN
ll_authmech_XOAUTH_gmail
ll_authmech_LOGIN
ll_authmech_CRAMMD5
ll_authmech_PREAUTH
ll_authuser
ll_delete_delete2
ll_delete2
@ -3384,7 +3402,6 @@ ll_useuid
ll_useuid_nousecache
ll_noheader_force
ll_noheader
ll_authmech_PREAUTH
'
other_tests='