mirror of
https://github.com/imapsync/imapsync.git
synced 2025-07-22 10:15:54 +02:00
1.500
This commit is contained in:
parent
2ca1ed54cb
commit
495d5a9526
15 changed files with 207 additions and 99 deletions
3
COPYING
3
COPYING
|
@ -10,5 +10,6 @@ France
|
||||||
Terms and conditions for copying, distribution, modification
|
Terms and conditions for copying, distribution, modification
|
||||||
or anything else.
|
or anything else.
|
||||||
|
|
||||||
0. No limit to do anything with this work and this license.
|
0 No limit to do anything with this work and this license.
|
||||||
|
1 GOTO 0
|
||||||
|
|
||||||
|
|
6
CREDITS
6
CREDITS
|
@ -1,5 +1,5 @@
|
||||||
#!/bin/cat
|
#!/bin/cat
|
||||||
# $Id: CREDITS,v 1.169 2012/07/19 09:43:09 gilles Exp gilles $
|
# $Id: CREDITS,v 1.170 2012/08/10 11:29:41 gilles Exp gilles $
|
||||||
|
|
||||||
If you want to make a donation to the author, Gilles LAMIRAL,
|
If you want to make a donation to the author, Gilles LAMIRAL,
|
||||||
use any of the following ways:
|
use any of the following ways:
|
||||||
|
@ -30,6 +30,10 @@ I thank very much all of these people.
|
||||||
I thank also very much all people who bought imapsync from the homepage
|
I thank also very much all people who bought imapsync from the homepage
|
||||||
but I don't cite them here.
|
but I don't cite them here.
|
||||||
|
|
||||||
|
|
||||||
|
David Abrahams
|
||||||
|
Gave a patch for --authmech PREAUTH
|
||||||
|
|
||||||
Peter Fuchs
|
Peter Fuchs
|
||||||
Contributed by giving the book
|
Contributed by giving the book
|
||||||
30.86 "Designed for Use: Create Usable Interfaces for Applications and the Web"
|
30.86 "Designed for Use: Create Usable Interfaces for Applications and the Web"
|
||||||
|
|
18
ChangeLog
18
ChangeLog
|
@ -1,17 +1,27 @@
|
||||||
|
|
||||||
RCS file: RCS/imapsync,v
|
RCS file: RCS/imapsync,v
|
||||||
Working file: imapsync
|
Working file: imapsync
|
||||||
head: 1.498
|
head: 1.500
|
||||||
branch:
|
branch:
|
||||||
locks: strict
|
locks: strict
|
||||||
gilles: 1.498
|
gilles: 1.500
|
||||||
access list:
|
access list:
|
||||||
symbolic names:
|
symbolic names:
|
||||||
keyword substitution: kv
|
keyword substitution: kv
|
||||||
total revisions: 498; selected revisions: 498
|
total revisions: 500; selected revisions: 500
|
||||||
description:
|
description:
|
||||||
----------------------------
|
----------------------------
|
||||||
revision 1.498 locked by: gilles;
|
revision 1.500 locked by: gilles;
|
||||||
|
date: 2012/08/10 04:58:46; author: gilles; state: Exp; lines: +40 -28
|
||||||
|
Bugfix. The cache system didn't work in Win32 (problem with \ transformation)
|
||||||
|
Added option --nocheckselectable to fix INBOX issue with Jana-server.
|
||||||
|
Documentation. Example for --delete2foldersbutnot
|
||||||
|
----------------------------
|
||||||
|
revision 1.499
|
||||||
|
date: 2012/07/30 10:56:26; author: gilles; state: Exp; lines: +45 -31
|
||||||
|
Bugfix. Check the return of touch calls.
|
||||||
|
----------------------------
|
||||||
|
revision 1.498
|
||||||
date: 2012/07/20 14:28:45; author: gilles; state: Exp; lines: +22 -6
|
date: 2012/07/20 14:28:45; author: gilles; state: Exp; lines: +22 -6
|
||||||
Added several connection ckecks like old good imapsync-1.181 to imapsync-1.398
|
Added several connection ckecks like old good imapsync-1.181 to imapsync-1.398
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
8
Makefile
8
Makefile
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
# $Id: Makefile,v 1.95 2012/07/19 05:58:22 gilles Exp gilles $
|
# $Id: Makefile,v 1.96 2012/07/29 22:03:29 gilles Exp gilles $
|
||||||
|
|
||||||
.PHONY: help usage all
|
.PHONY: help usage all
|
||||||
|
|
||||||
|
@ -284,9 +284,9 @@ upload_lfo:
|
||||||
|
|
||||||
upload_index: index.shtml FAQ paypal.shtml
|
upload_index: index.shtml FAQ paypal.shtml
|
||||||
validate --verbose index.shtml paypal.shtml
|
validate --verbose index.shtml paypal.shtml
|
||||||
rcsdiff index.shtml paypal.shtml FAQ
|
rcsdiff index.shtml paypal.shtml FAQ COPYING
|
||||||
rsync -avH index.shtml FAQ paypal.shtml root@ks.lamiral.info:/var/www/imapsync/
|
rsync -avH index.shtml FAQ paypal.shtml COPYING root@ks.lamiral.info:/var/www/imapsync/
|
||||||
rsync -avH index.shtml FAQ paypal.shtml \
|
rsync -avH index.shtml FAQ paypal.shtml COPYING \
|
||||||
../../public_html/www.linux-france.org/html/prj/imapsync/
|
../../public_html/www.linux-france.org/html/prj/imapsync/
|
||||||
sh $(HOME)/memo/lfo-rsync
|
sh $(HOME)/memo/lfo-rsync
|
||||||
|
|
||||||
|
|
4
README
4
README
|
@ -3,7 +3,7 @@ NAME
|
||||||
Synchronise mailboxes between two imap servers. Good at IMAP migration.
|
Synchronise mailboxes between two imap servers. Good at IMAP migration.
|
||||||
More than 44 different IMAP server softwares supported with success.
|
More than 44 different IMAP server softwares supported with success.
|
||||||
|
|
||||||
$Revision: 1.498 $
|
$Revision: 1.500 $
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
To synchronise imap account "foo" on "imap.truc.org" to imap account
|
To synchronise imap account "foo" on "imap.truc.org" to imap account
|
||||||
|
@ -440,5 +440,5 @@ SIMILAR SOFTWARES
|
||||||
|
|
||||||
Feedback (good or bad) will often be welcome.
|
Feedback (good or bad) will often be welcome.
|
||||||
|
|
||||||
$Id: imapsync,v 1.498 2012/07/20 14:28:45 gilles Exp gilles $
|
$Id: imapsync,v 1.500 2012/08/10 04:58:46 gilles Exp gilles $
|
||||||
|
|
||||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
||||||
1.498
|
1.500
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
1.498
|
1.500
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# $Id: memo,v 1.9 2012/07/05 20:37:53 gilles Exp gilles $
|
# $Id: memo,v 1.10 2012/08/10 22:25:31 gilles Exp gilles $
|
||||||
|
|
||||||
|
|
||||||
echo paypal_bilan_todo
|
echo paypal_bilan_todo
|
||||||
|
@ -28,7 +28,28 @@ Europe a un autre assujetti : Article 262 ter => Exoneration
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
echo paypal_bilan_tests_tva
|
echo paypal_bilan_tests_tva_2
|
||||||
|
paypal_bilan_tests_tva_2() {
|
||||||
|
# DID output no diff between paypal_bilan_1.56 and 1.5?
|
||||||
|
(
|
||||||
|
#set -x
|
||||||
|
/g/public_html/imapsync/W/paypal_reply/paypal_bilan_1.56 --bnc --debug --debug_invoice --first_in 147 \
|
||||||
|
--avoid_numbers '292 293 643 644 731 732 1093 1330 1331 1332 1333 1334 1652 1653' \
|
||||||
|
/g/paypal/paypal_201?_??_complet.csv \
|
||||||
|
> /g/var/paypal_bilan/tests/paypal_invoice.out1 2>&1
|
||||||
|
|
||||||
|
/g/public_html/imapsync/W/paypal_reply/paypal_bilan --bnc --debug --debug_invoice --first_in 147 \
|
||||||
|
--avoid_numbers '292 293 643 644 731 732 1093 1330 1331 1332 1333 1334 1652 1653' \
|
||||||
|
/g/paypal/paypal_201?_??_complet.csv \
|
||||||
|
> /g/var/paypal_bilan/tests/paypal_invoice.out2 2>&1
|
||||||
|
|
||||||
|
echo diff /g/var/paypal_bilan/tests/paypal_invoice.out1 /g/var/paypal_bilan/tests/paypal_invoice.out2
|
||||||
|
diff /g/var/paypal_bilan/tests/paypal_invoice.out1 /g/var/paypal_bilan/tests/paypal_invoice.out2
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#echo paypal_bilan_tests_tva
|
||||||
paypal_bilan_tests_tva() {
|
paypal_bilan_tests_tva() {
|
||||||
# DID output no diff between paypal_bilan_1.55 and 1.5?
|
# DID output no diff between paypal_bilan_1.55 and 1.5?
|
||||||
(
|
(
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/usr/bin/perl
|
#!/usr/bin/perl
|
||||||
|
|
||||||
# $Id: paypal_bilan,v 1.56 2012/07/16 21:57:51 gilles Exp gilles $
|
# $Id: paypal_bilan,v 1.58 2012/08/11 00:01:46 gilles Exp gilles $
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
@ -13,7 +13,7 @@ use Test::More 'no_plan' ;
|
||||||
|
|
||||||
die unless (utf8_supported_charset('ISO-8859-1'));
|
die unless (utf8_supported_charset('ISO-8859-1'));
|
||||||
|
|
||||||
my $rcs = '$Id: paypal_bilan,v 1.56 2012/07/16 21:57:51 gilles Exp gilles $ ' ;
|
my $rcs = '$Id: paypal_bilan,v 1.58 2012/08/11 00:01:46 gilles Exp gilles $ ' ;
|
||||||
$rcs =~ m/,v (\d+\.\d+)/ ;
|
$rcs =~ m/,v (\d+\.\d+)/ ;
|
||||||
my $VERSION = ($1) ? $1: "UNKNOWN" ;
|
my $VERSION = ($1) ? $1: "UNKNOWN" ;
|
||||||
|
|
||||||
|
@ -103,10 +103,10 @@ foreach my $file ( @files ) {
|
||||||
#print $action->{ Nom }, "\n" ;
|
#print $action->{ Nom }, "\n" ;
|
||||||
my( $Date, $Heure, $Fuseau_horaire, $Nom, $Type, $Etat,
|
my( $Date, $Heure, $Fuseau_horaire, $Nom, $Type, $Etat,
|
||||||
$Devise, $Montant, $Numero_davis_de_reception, $Solde,
|
$Devise, $Montant, $Numero_davis_de_reception, $Solde,
|
||||||
$Pays, $Nom_Option_1, $Valeur_Option_1, $Hors_taxe, $Titre_de_l_objet )
|
$Pays, $Nom_Option_1, $Valeur_Option_1, $Hors_taxe, $Titre_de_l_objet, $Nom_Option_2, $Option_2_Valeur )
|
||||||
= @action{ ( 'Date', 'Heure', 'Fuseau horaire', 'Nom', 'Type', 'Etat',
|
= @action{ ( 'Date', 'Heure', 'Fuseau horaire', 'Nom', 'Type', 'Etat',
|
||||||
'Devise', 'Montant', "Numéro d'avis de réception", 'Solde',
|
'Devise', 'Montant', "Numéro d'avis de réception", 'Solde',
|
||||||
'Pays', 'Nom Option 1', 'Valeur Option 1', 'Hors taxe', "Titre de l'objet") } ;
|
'Pays', 'Nom Option 1', 'Valeur Option 1', 'Hors taxe', "Titre de l'objet", 'Nom Option 2', 'Option 2 Valeur') } ;
|
||||||
#print "$Nom\n" ;
|
#print "$Nom\n" ;
|
||||||
( $Etat ) = @action{ ( 'Etat', ) } || @action{ ( 'État' ) } ;
|
( $Etat ) = @action{ ( 'Etat', ) } || @action{ ( 'État' ) } ;
|
||||||
my $invoice = 'NONE' ;
|
my $invoice = 'NONE' ;
|
||||||
|
@ -509,12 +509,14 @@ sub build_invoice {
|
||||||
$De_l_adresse_email, $A_l_adresse_email, $N_de_transaction, $Titre_de_l_objet,
|
$De_l_adresse_email, $A_l_adresse_email, $N_de_transaction, $Titre_de_l_objet,
|
||||||
$TVA, $Nom_Option_1, $Valeur_Option_1, $N_de_transaction_de_reference,
|
$TVA, $Nom_Option_1, $Valeur_Option_1, $N_de_transaction_de_reference,
|
||||||
$Adresse_1, $Adresse_2_district_quartier, $Ville,
|
$Adresse_1, $Adresse_2_district_quartier, $Ville,
|
||||||
$Etat_Province, $Code_postal, $Pays, $line_number, $line_csv, $file_csv )
|
$Etat_Province, $Code_postal, $Pays, $line_number, $line_csv, $file_csv,
|
||||||
|
$Nom_Option_2, $Option_2_Valeur )
|
||||||
= @action{ ( 'Date', 'Heure', 'Nom', 'Type', 'Etat', 'Devise', 'Hors taxe', 'Commission', 'Net',
|
= @action{ ( 'Date', 'Heure', 'Nom', 'Type', 'Etat', 'Devise', 'Hors taxe', 'Commission', 'Net',
|
||||||
"De l'adresse email", "A l'adresse email", 'N° de transaction', "Titre de l'objet",
|
"De l'adresse email", "A l'adresse email", 'N° de transaction', "Titre de l'objet",
|
||||||
'TVA', 'Nom Option 1', 'Valeur Option 1', 'Nº de transaction de référence',
|
'TVA', 'Nom Option 1', 'Valeur Option 1', 'Nº de transaction de référence',
|
||||||
'Adresse 1', 'Adresse 2/district/quartier', 'Ville',
|
'Adresse 1', 'Adresse 2/district/quartier', 'Ville',
|
||||||
'Etat/Province/Région/Comté/Territoire/Préfecture/République', 'Code postal', 'Pays', 'line_number', 'line_csv', 'file_csv' ) } ;
|
'Etat/Province/Région/Comté/Territoire/Préfecture/République', 'Code postal', 'Pays', 'line_number', 'line_csv', 'file_csv',
|
||||||
|
'Nom Option 2', 'Option 2 Valeur' ) } ;
|
||||||
|
|
||||||
my( $Etat_Province1 ) = @action{ ( 'Etat/Province/Région/Comté/Territoire/Préfecture/République' ) } ;
|
my( $Etat_Province1 ) = @action{ ( 'Etat/Province/Région/Comté/Territoire/Préfecture/République' ) } ;
|
||||||
my( $Etat_Province2 ) = @action{ ( 'État/Province/Région/Comté/Territoire/Préfecture/République' ) } ;
|
my( $Etat_Province2 ) = @action{ ( 'État/Province/Région/Comté/Territoire/Préfecture/République' ) } ;
|
||||||
|
@ -609,6 +611,13 @@ sub build_invoice {
|
||||||
#print "ZZZ $object_type ( $urlSrc, $urlExe )\n" ;
|
#print "ZZZ $object_type ( $urlSrc, $urlExe )\n" ;
|
||||||
|
|
||||||
my ( $Nom1 ) = cut( $Nom, 42 ) ;
|
my ( $Nom1 ) = cut( $Nom, 42 ) ;
|
||||||
|
|
||||||
|
my $clientVAT = '' ;
|
||||||
|
|
||||||
|
if ( ( 'VAT if professional in Europe' eq $Nom_Option_2 ) and $Option_2_Valeur ) {
|
||||||
|
$clientVAT = $Option_2_Valeur ;
|
||||||
|
}
|
||||||
|
|
||||||
my $tex_variables = qq{
|
my $tex_variables = qq{
|
||||||
%% Begin input from paypal_bilan $VERSION
|
%% Begin input from paypal_bilan $VERSION
|
||||||
\\providecommand{\\invoiceNumber}{$invoice}
|
\\providecommand{\\invoiceNumber}{$invoice}
|
||||||
|
@ -620,7 +629,7 @@ sub build_invoice {
|
||||||
\\providecommand{\\clientAdrD}{$clientAdrD}
|
\\providecommand{\\clientAdrD}{$clientAdrD}
|
||||||
\\providecommand{\\clientAdrE}{$clientAdrE}
|
\\providecommand{\\clientAdrE}{$clientAdrE}
|
||||||
\\providecommand{\\clientAdrF}{$clientAdrF}
|
\\providecommand{\\clientAdrF}{$clientAdrF}
|
||||||
\\providecommand{\\clientVAT}{}
|
\\providecommand{\\clientVAT}{$clientVAT}
|
||||||
\\providecommand{\\invoiceDate}{$Date}
|
\\providecommand{\\invoiceDate}{$Date}
|
||||||
\\providecommand{\\invoiceHour}{$Heure}
|
\\providecommand{\\invoiceHour}{$Heure}
|
||||||
|
|
||||||
|
@ -1031,8 +1040,8 @@ sub tva_stuff {
|
||||||
$priceTVA = 'néant (none)' ;
|
$priceTVA = 'néant (none)' ;
|
||||||
$priceTTC = $priceHT ;
|
$priceTTC = $priceHT ;
|
||||||
$HTorTTC = 'HT' ;
|
$HTorTTC = 'HT' ;
|
||||||
$messageTVAFR = 'Exonération de TVA, articles 262 1-2 du Code Général des Impôts';
|
$messageTVAFR = 'Exonération de TVA, articles 262 1-2 et ter du Code Général des Impôts';
|
||||||
$messageTVAEN = '(VAT tax-exempt, articles 262 1-2 French General Tax Code)';
|
$messageTVAEN = '(VAT tax-exempt, articles 262 1-2 and ter of French General Tax Code)';
|
||||||
}
|
}
|
||||||
foreach my $price ( $priceHT, $priceTVA, $priceTTC, $priceTTCusd ) {
|
foreach my $price ( $priceHT, $priceTVA, $priceTTC, $priceTTCusd ) {
|
||||||
#print "[$price]\n" ;
|
#print "[$price]\n" ;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/usr/bin/perl
|
#!/usr/bin/perl
|
||||||
|
|
||||||
# $Id: paypal_bilan,v 1.55 2012/07/16 19:33:46 gilles Exp gilles $
|
# $Id: paypal_bilan,v 1.56 2012/07/16 21:57:51 gilles Exp gilles $
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
@ -13,7 +13,7 @@ use Test::More 'no_plan' ;
|
||||||
|
|
||||||
die unless (utf8_supported_charset('ISO-8859-1'));
|
die unless (utf8_supported_charset('ISO-8859-1'));
|
||||||
|
|
||||||
my $rcs = '$Id: paypal_bilan,v 1.55 2012/07/16 19:33:46 gilles Exp gilles $ ' ;
|
my $rcs = '$Id: paypal_bilan,v 1.56 2012/07/16 21:57:51 gilles Exp gilles $ ' ;
|
||||||
$rcs =~ m/,v (\d+\.\d+)/ ;
|
$rcs =~ m/,v (\d+\.\d+)/ ;
|
||||||
my $VERSION = ($1) ? $1: "UNKNOWN" ;
|
my $VERSION = ($1) ? $1: "UNKNOWN" ;
|
||||||
|
|
||||||
|
@ -620,6 +620,7 @@ sub build_invoice {
|
||||||
\\providecommand{\\clientAdrD}{$clientAdrD}
|
\\providecommand{\\clientAdrD}{$clientAdrD}
|
||||||
\\providecommand{\\clientAdrE}{$clientAdrE}
|
\\providecommand{\\clientAdrE}{$clientAdrE}
|
||||||
\\providecommand{\\clientAdrF}{$clientAdrF}
|
\\providecommand{\\clientAdrF}{$clientAdrF}
|
||||||
|
\\providecommand{\\clientVAT}{}
|
||||||
\\providecommand{\\invoiceDate}{$Date}
|
\\providecommand{\\invoiceDate}{$Date}
|
||||||
\\providecommand{\\invoiceHour}{$Heure}
|
\\providecommand{\\invoiceHour}{$Heure}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# $Id: paypal_build_invoices,v 1.34 2012/07/16 14:00:28 gilles Exp gilles $
|
# $Id: paypal_build_invoices,v 1.36 2012/08/10 22:37:18 gilles Exp gilles $
|
||||||
|
|
||||||
# usage: sh paypal_build_invoices /g/var/paypal_invoices/????
|
# usage: sh paypal_build_invoices /g/var/paypal_invoices/????
|
||||||
|
|
||||||
|
@ -27,8 +27,9 @@ set -x
|
||||||
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 1508 /g/paypal/paypal_2012_03_complet.csv
|
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 1508 /g/paypal/paypal_2012_03_complet.csv
|
||||||
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 1575 /g/paypal/paypal_2012_04_complet.csv
|
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 1575 /g/paypal/paypal_2012_04_complet.csv
|
||||||
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 1654 /g/paypal/paypal_2012_05_complet.csv
|
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 1654 /g/paypal/paypal_2012_05_complet.csv
|
||||||
/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 1743 /g/paypal/paypal_2012_06_complet.csv
|
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 1743 /g/paypal/paypal_2012_06_complet.csv
|
||||||
/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 1824 /g/paypal/paypal_2012_07_complet.csv
|
/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 1824 /g/paypal/paypal_2012_07_complet.csv
|
||||||
|
/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 1891 /g/paypal/paypal_2012_08_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 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
|
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 214 /g/paypal/paypal_2010_12_complet.csv
|
||||||
|
@ -51,6 +52,7 @@ set -x
|
||||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 1654 /g/paypal/paypal_2012_05_complet.csv
|
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 1654 /g/paypal/paypal_2012_05_complet.csv
|
||||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 1743 /g/paypal/paypal_2012_06_complet.csv
|
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 1743 /g/paypal/paypal_2012_06_complet.csv
|
||||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 1824 /g/paypal/paypal_2012_07_complet.csv
|
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 1824 /g/paypal/paypal_2012_07_complet.csv
|
||||||
|
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 1891 /g/paypal/paypal_2012_08_complet.csv
|
||||||
|
|
||||||
set +x
|
set +x
|
||||||
|
|
||||||
|
|
120
imapsync
120
imapsync
|
@ -20,7 +20,7 @@ Synchronise mailboxes between two imap servers.
|
||||||
Good at IMAP migration. More than 44 different IMAP server softwares
|
Good at IMAP migration. More than 44 different IMAP server softwares
|
||||||
supported with success.
|
supported with success.
|
||||||
|
|
||||||
$Revision: 1.498 $
|
$Revision: 1.500 $
|
||||||
|
|
||||||
=head1 SYNOPSIS
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
|
@ -515,7 +515,7 @@ Entries for imapsync:
|
||||||
|
|
||||||
Feedback (good or bad) will often be welcome.
|
Feedback (good or bad) will often be welcome.
|
||||||
|
|
||||||
$Id: imapsync,v 1.498 2012/07/20 14:28:45 gilles Exp gilles $
|
$Id: imapsync,v 1.500 2012/08/10 04:58:46 gilles Exp gilles $
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
|
@ -626,13 +626,14 @@ my(
|
||||||
$wholeheaderifneeded, %h1_msgs_copy_by_uid, $useuid, $h2_uidguess,
|
$wholeheaderifneeded, %h1_msgs_copy_by_uid, $useuid, $h2_uidguess,
|
||||||
$addheader,
|
$addheader,
|
||||||
%h1, %h2,
|
%h1, %h2,
|
||||||
|
$checkselectable,
|
||||||
);
|
);
|
||||||
|
|
||||||
# main program
|
# main program
|
||||||
|
|
||||||
# global variables initialisation
|
# global variables initialisation
|
||||||
|
|
||||||
$rcs = '$Id: imapsync,v 1.498 2012/07/20 14:28:45 gilles Exp gilles $ ';
|
$rcs = '$Id: imapsync,v 1.500 2012/08/10 04:58:46 gilles Exp gilles $ ';
|
||||||
|
|
||||||
$total_bytes_transferred = 0;
|
$total_bytes_transferred = 0;
|
||||||
$total_bytes_skipped = 0;
|
$total_bytes_skipped = 0;
|
||||||
|
@ -712,6 +713,8 @@ if ( $fast ) {
|
||||||
$usecache = 1 if ( $useuid and ( ! defined( $usecache ) ) ) ;
|
$usecache = 1 if ( $useuid and ( ! defined( $usecache ) ) ) ;
|
||||||
$cacheaftercopy = 1 if ( $usecache and ( ! defined( $cacheaftercopy ) ) ) ;
|
$cacheaftercopy = 1 if ( $usecache and ( ! defined( $cacheaftercopy ) ) ) ;
|
||||||
|
|
||||||
|
$checkselectable = defined( $checkselectable ) ? $checkselectable : 1 ;
|
||||||
|
|
||||||
print banner_imapsync(@argv_copy);
|
print banner_imapsync(@argv_copy);
|
||||||
|
|
||||||
print "Temp directory is $tmpdir\n";
|
print "Temp directory is $tmpdir\n";
|
||||||
|
@ -882,17 +885,6 @@ $password2 = ( defined( $passfile2 ) ) ? firstline ( $passfile2 ) : $password2 ;
|
||||||
my $dry_message = '' ;
|
my $dry_message = '' ;
|
||||||
$dry_message = "\t(not really since --dry mode)" if $dry ;
|
$dry_message = "\t(not really since --dry mode)" if $dry ;
|
||||||
|
|
||||||
if ( ! ( 1
|
|
||||||
or ( $maxsize
|
|
||||||
or $minsize
|
|
||||||
or $maxage
|
|
||||||
or $minage )
|
|
||||||
and $usecache
|
|
||||||
and ! $delete ) ) {
|
|
||||||
die_clean(
|
|
||||||
"Problem --usecache can not be used safely with options --maxsize --minsize --maxage --minage
|
|
||||||
Use --nousecache or suppress the --max* --min* options\n" ) ;
|
|
||||||
}
|
|
||||||
|
|
||||||
my $imap1 = ();
|
my $imap1 = ();
|
||||||
my $imap2 = ();
|
my $imap2 = ();
|
||||||
|
@ -999,13 +991,14 @@ if (scalar(@exclude)) {
|
||||||
|
|
||||||
# Remove no selectable folders
|
# Remove no selectable folders
|
||||||
|
|
||||||
foreach my $folder (keys(%requested_folder)) {
|
$checkselectable and do {
|
||||||
|
foreach my $folder (keys(%requested_folder)) {
|
||||||
if ( not $imap1->selectable($folder)) {
|
if ( not $imap1->selectable($folder)) {
|
||||||
print "Warning: ignoring folder $folder because it is not selectable\n";
|
print "Warning: ignoring folder $folder because it is not selectable\n";
|
||||||
remove_from_requested_folders($folder);
|
remove_from_requested_folders($folder);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
my @requested_folder = sort(keys(%requested_folder));
|
my @requested_folder = sort(keys(%requested_folder));
|
||||||
|
|
||||||
|
@ -1143,12 +1136,14 @@ FOLDER: foreach my $h1_fold (@h1_folders_wanted) {
|
||||||
|
|
||||||
( $debug or $debugLIST ) and print "Host2 LIST: $h2_msgs_nb messages [@h2_msgs]\n";
|
( $debug or $debugLIST ) and print "Host2 LIST: $h2_msgs_nb messages [@h2_msgs]\n";
|
||||||
|
|
||||||
my $cache_base = "$tmpdir/imapsync_cache/$host1/$user1/$host2/$user2";
|
my $cache_base = "$tmpdir/imapsync_cache/$host1/$user1/$host2/$user2" ;
|
||||||
my $cache_dir = cache_folder( $cache_base, $h1_fold, $h2_fold );
|
my $cache_dir = cache_folder( $cache_base, $h1_fold, $h2_fold ) ;
|
||||||
my ( $cache_1_2_ref, $cache_2_1_ref ) = ( {}, {} );
|
my ( $cache_1_2_ref, $cache_2_1_ref ) = ( {}, {} ) ;
|
||||||
|
my $h1_uidvalidity = $imap1->uidvalidity( ) || '' ;
|
||||||
|
my $h2_uidvalidity = $imap2->uidvalidity( ) || '' ;
|
||||||
|
|
||||||
last FOLDER if $imap1->IsUnconnected();
|
last FOLDER if $imap1->IsUnconnected() ;
|
||||||
last FOLDER if $imap2->IsUnconnected();
|
last FOLDER if $imap2->IsUnconnected() ;
|
||||||
|
|
||||||
if ( $usecache ) {
|
if ( $usecache ) {
|
||||||
print "cache directory: $cache_dir\n" ;
|
print "cache directory: $cache_dir\n" ;
|
||||||
|
@ -1361,8 +1356,11 @@ FOLDER: foreach my $h1_fold (@h1_folders_wanted) {
|
||||||
$debug and print "Host1 found msg $h1_fold/$h1_msg equals Host2 $h2_fold/$h2_msg\n" ;
|
$debug and print "Host1 found msg $h1_fold/$h1_msg equals Host2 $h2_fold/$h2_msg\n" ;
|
||||||
$total_bytes_skipped += $h1_size ;
|
$total_bytes_skipped += $h1_size ;
|
||||||
$nb_msg_skipped += 1 ;
|
$nb_msg_skipped += 1 ;
|
||||||
$debugcache and print "touch $cache_dir/${h1_msg}_$h2_msg\n" if ( $usecache ) ;
|
if ( $usecache ) {
|
||||||
touch( "$cache_dir/${h1_msg}_$h2_msg" ) if ( $usecache ) ;
|
$debugcache and print "touch $cache_dir/${h1_msg}_$h2_msg\n" ;
|
||||||
|
touch( "$cache_dir/${h1_msg}_$h2_msg" )
|
||||||
|
or die( "Couldn't touch $cache_dir/${h1_msg}_$h2_msg" ) ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#$debug and print "MESSAGE $m_id\n";
|
#$debug and print "MESSAGE $m_id\n";
|
||||||
|
@ -1901,8 +1899,8 @@ sub banner_imapsync {
|
||||||
my @argv_copy = @_;
|
my @argv_copy = @_;
|
||||||
my $banner_imapsync = join("",
|
my $banner_imapsync = join("",
|
||||||
'$RCSfile: imapsync,v $ ',
|
'$RCSfile: imapsync,v $ ',
|
||||||
'$Revision: 1.498 $ ',
|
'$Revision: 1.500 $ ',
|
||||||
'$Date: 2012/07/20 14:28:45 $ ',
|
'$Date: 2012/08/10 04:58:46 $ ',
|
||||||
"\n",localhost_info(), "\n",
|
"\n",localhost_info(), "\n",
|
||||||
"Command line used:\n",
|
"Command line used:\n",
|
||||||
"$0 ", command_line_nopassword(@argv_copy), "\n",
|
"$0 ", command_line_nopassword(@argv_copy), "\n",
|
||||||
|
@ -2808,8 +2806,12 @@ sub copy_message {
|
||||||
$h2_uidguess += 1 ;
|
$h2_uidguess += 1 ;
|
||||||
$total_bytes_transferred += $h1_size;
|
$total_bytes_transferred += $h1_size;
|
||||||
$nb_msg_transferred += 1;
|
$nb_msg_transferred += 1;
|
||||||
$debugcache and print "touch $cache_dir/${h1_msg}_$new_id\n" if ( $usecache and $cacheaftercopy and $new_id =~ m{^\d+$} ) ;
|
|
||||||
touch( "$cache_dir/${h1_msg}_$new_id" ) if ( $usecache and $cacheaftercopy and $new_id =~ m{^\d+$} ) ;
|
if ( $usecache and $cacheaftercopy and $new_id =~ m{^\d+$} ) {
|
||||||
|
$debugcache and print "touch $cache_dir/${h1_msg}_$new_id\n" ;
|
||||||
|
touch( "$cache_dir/${h1_msg}_$new_id" )
|
||||||
|
or die( "Couldn't touch $cache_dir/${h1_msg}_$new_id" ) ;
|
||||||
|
}
|
||||||
if ( $delete ) {
|
if ( $delete ) {
|
||||||
print "msg $h1_fold/$h1_msg deleted on host1\n";
|
print "msg $h1_fold/$h1_msg deleted on host1\n";
|
||||||
unless($dry) {
|
unless($dry) {
|
||||||
|
@ -2906,6 +2908,20 @@ sub tests_cache_map {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub cache_dir_fix {
|
||||||
|
my $cache_dir = shift ;
|
||||||
|
$cache_dir =~ s/([;<>\*\|`&\$!#\(\)\[\]\{\}:'"\\])/\\$1/g ;
|
||||||
|
#print "cache_dir_fix: $cache_dir\n" ;
|
||||||
|
return( $cache_dir ) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub tests_cache_dir_fix {
|
||||||
|
ok( 'lalala' eq cache_dir_fix('lalala'), 'cache_dir_fix: lalala -> lalala' );
|
||||||
|
ok( 'ii\\\\ii' eq cache_dir_fix('ii\ii'), 'cache_dir_fix: ii\ii -> ii\\\\ii' );
|
||||||
|
ok( 'ii@ii' eq cache_dir_fix('ii@ii'), 'cache_dir_fix: ii@ii -> ii@ii' );
|
||||||
|
ok( 'ii@ii\\:ii' eq cache_dir_fix('ii@ii:ii'), 'cache_dir_fix: ii@ii:ii -> ii@ii\\:ii' );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
sub get_cache {
|
sub get_cache {
|
||||||
$debugcache and print "Entering get_cache\n";
|
$debugcache and print "Entering get_cache\n";
|
||||||
|
@ -2915,12 +2931,14 @@ sub get_cache {
|
||||||
$debugcache and print "cache_dir : $cache_dir\n";
|
$debugcache and print "cache_dir : $cache_dir\n";
|
||||||
|
|
||||||
#$cache_dir =~ s{\\}{\\\\}g;
|
#$cache_dir =~ s{\\}{\\\\}g;
|
||||||
$cache_dir =~ s/([;<>\*\|`&\$!#\(\)\[\]\{\}:'"\\])/\\$1/g ;
|
$cache_dir = cache_dir_fix( $cache_dir ) if ( 'MSWin32' ne $OSNAME ) ;
|
||||||
|
|
||||||
$debugcache and print "cache_dir fix: $cache_dir\n";
|
$debugcache and print "cache_dir_fix: $cache_dir\n" ;
|
||||||
|
|
||||||
my @cache_files = bsd_glob( "$cache_dir/*" ) ;
|
my @cache_files = bsd_glob( "$cache_dir/*" ) ;
|
||||||
#$debugcache and print "cache_files: [@cache_files]\n";
|
#$debugcache and print "cache_files: [@cache_files]\n" ;
|
||||||
|
|
||||||
|
$debugcache and print( "cache_files: ", scalar( @cache_files ), " files found\n" ) ;
|
||||||
|
|
||||||
my( $cache_1_2_ref, $cache_2_1_ref )
|
my( $cache_1_2_ref, $cache_2_1_ref )
|
||||||
= cache_map( \@cache_files, $h1_msgs_ref, $h2_msgs_ref ) ;
|
= cache_map( \@cache_files, $h1_msgs_ref, $h2_msgs_ref ) ;
|
||||||
|
@ -3200,16 +3218,6 @@ sub tests_clean_cache_2 {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
sub tests_touch {
|
|
||||||
|
|
||||||
ok( (-d 'tmp/tests/' or mkpath( 'tmp/tests/' )), 'tests_touch: mkpath tmp/tests/' ) ;
|
|
||||||
ok( 1 == touch( 'tmp/tests/lala'), 'tests_touch: tmp/tests/lala') ;
|
|
||||||
ok( 1 == touch( 'tmp/tests/\y'), 'tests_touch: tmp/tests/\y') ;
|
|
||||||
ok( 0 == touch( '/aaa'), 'tests_touch: not /aaa') ;
|
|
||||||
ok( 2 == touch( 'tmp/tests/lili', 'tmp/tests/lolo'), 'tests_touch: 2 files') ;
|
|
||||||
ok( 1 == touch( 'tmp/tests/\y', '/aaa'), 'tests_touch: 2 files, 1 fails' ) ;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
sub tests_mkpath {
|
sub tests_mkpath {
|
||||||
|
|
||||||
|
@ -3219,18 +3227,32 @@ sub tests_mkpath {
|
||||||
ok( 1 == 1, 'tests_mkpath: 1 == 1' ) ;
|
ok( 1 == 1, 'tests_mkpath: 1 == 1' ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub tests_touch {
|
||||||
|
|
||||||
|
ok( (-d 'tmp/tests/' or mkpath( 'tmp/tests/' )), 'tests_touch: mkpath tmp/tests/' ) ;
|
||||||
|
ok( 1 == touch( 'tmp/tests/lala'), 'tests_touch: tmp/tests/lala') ;
|
||||||
|
ok( 1 == touch( 'tmp/tests/\y'), 'tests_touch: tmp/tests/\y') ;
|
||||||
|
ok( 0 == touch( '/aaa'), 'tests_touch: not /aaa') ;
|
||||||
|
ok( 1 == touch( 'tmp/tests/lili', 'tmp/tests/lolo'), 'tests_touch: 2 files') ;
|
||||||
|
ok( 0 == touch( 'tmp/tests/\y', '/aaa'), 'tests_touch: 2 files, 1 fails' ) ;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
sub touch {
|
sub touch {
|
||||||
my @files = @_ ;
|
my @files = @_ ;
|
||||||
my @result;
|
my $failures = 0 ;
|
||||||
|
|
||||||
foreach my $file ( @files ) {
|
foreach my $file ( @files ) {
|
||||||
my $fh = new IO::File ;
|
my $fh = new IO::File ;
|
||||||
if ($fh->open(">> $file")) {
|
if ( $fh->open(">> $file" ) ) {
|
||||||
$fh->close ;
|
$fh->close ;
|
||||||
push(@result, $file) ;
|
}else{
|
||||||
|
print "Could not open file $file in write/append mode\n" ;
|
||||||
|
$failures++ ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return(@result);
|
return( ! $failures );
|
||||||
}
|
}
|
||||||
|
|
||||||
sub cache_folder {
|
sub cache_folder {
|
||||||
|
@ -3545,6 +3567,7 @@ sub get_options {
|
||||||
"useuid!" => \$useuid,
|
"useuid!" => \$useuid,
|
||||||
"addheader!" => \$addheader,
|
"addheader!" => \$addheader,
|
||||||
"exitwhenover=i" => \$exitwhenover,
|
"exitwhenover=i" => \$exitwhenover,
|
||||||
|
"checkselectable!" => \$checkselectable,
|
||||||
);
|
);
|
||||||
|
|
||||||
$debug and print "get options: [$opt_ret]\n";
|
$debug and print "get options: [$opt_ret]\n";
|
||||||
|
@ -3734,7 +3757,7 @@ sub check_last_release {
|
||||||
}
|
}
|
||||||
|
|
||||||
sub imapsync_version {
|
sub imapsync_version {
|
||||||
my $rcs = '$Id: imapsync,v 1.498 2012/07/20 14:28:45 gilles Exp gilles $ ';
|
my $rcs = '$Id: imapsync,v 1.500 2012/08/10 04:58:46 gilles Exp gilles $ ';
|
||||||
$rcs =~ m/,v (\d+\.\d+)/;
|
$rcs =~ m/,v (\d+\.\d+)/;
|
||||||
my $VERSION = ($1) ? $1: "UNKNOWN";
|
my $VERSION = ($1) ? $1: "UNKNOWN";
|
||||||
return($VERSION);
|
return($VERSION);
|
||||||
|
@ -3928,6 +3951,7 @@ Several options are mandatory.
|
||||||
--delete2folders --dry --justfolders --nofoldersizes
|
--delete2folders --dry --justfolders --nofoldersizes
|
||||||
--delete2foldersonly <regex>: delete only folders matching regex.
|
--delete2foldersonly <regex>: delete only folders matching regex.
|
||||||
--delete2foldersbutnot <regex>: do not delete folders matching regex.
|
--delete2foldersbutnot <regex>: do not delete folders matching regex.
|
||||||
|
Example: --delete2foldersbutnot "/Tasks|Contacts|Foo/"
|
||||||
--noexpunge : Do not expunge messages on host1.
|
--noexpunge : Do not expunge messages on host1.
|
||||||
Expunge really deletes messages marked deleted.
|
Expunge really deletes messages marked deleted.
|
||||||
Expunge is made at the beginning, on host1 only.
|
Expunge is made at the beginning, on host1 only.
|
||||||
|
@ -4532,7 +4556,7 @@ sub tests_debug {
|
||||||
|
|
||||||
SKIP: {
|
SKIP: {
|
||||||
skip "No test in normal run" if ( not $tests_debug );
|
skip "No test in normal run" if ( not $tests_debug );
|
||||||
tests_add_header( ) ;
|
tests_cache_dir_fix( ) ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4568,6 +4592,8 @@ sub tests {
|
||||||
tests_extract_header( ) ;
|
tests_extract_header( ) ;
|
||||||
tests_decompose_header( ) ;
|
tests_decompose_header( ) ;
|
||||||
tests_epoch( ) ;
|
tests_epoch( ) ;
|
||||||
|
tests_add_header( ) ;
|
||||||
|
tests_cache_dir_fix( ) ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
49
index.shtml
49
index.shtml
|
@ -5,7 +5,7 @@
|
||||||
<title>Imapsync: an IMAP migration tool ( release <!--#exec cmd="cat VERSION"--> )</title>
|
<title>Imapsync: an IMAP migration tool ( release <!--#exec cmd="cat VERSION"--> )</title>
|
||||||
<meta name="generator" content="Bluefish 1.0.7"/>
|
<meta name="generator" content="Bluefish 1.0.7"/>
|
||||||
<meta name="author" content="Gilles LAMIRAL"/>
|
<meta name="author" content="Gilles LAMIRAL"/>
|
||||||
<meta name="date" content="2012-07-20T16:47:33+0200"/>
|
<meta name="date" content="2012-08-11T03:39:57+0200"/>
|
||||||
<meta name="copyright" content="None"/>
|
<meta name="copyright" content="None"/>
|
||||||
<meta name="keywords" content="imap, transfert, migration"/>
|
<meta name="keywords" content="imap, transfert, migration"/>
|
||||||
<meta name="description" content="imap migration tool"/>
|
<meta name="description" content="imap migration tool"/>
|
||||||
|
@ -94,6 +94,15 @@ total is 93 millions for 2011</li>
|
||||||
|
|
||||||
<p>New features or bugfixes since previous releases:</p>
|
<p>New features or bugfixes since previous releases:</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><b>1.500</b></li>
|
||||||
|
<li><b>Enhancement</b>: Added option --nocheckselectable to fix INBOX issue with Jana-server.</li>
|
||||||
|
<li><b>Bug fix</b>: The cache system didn't work in Win32 (problem with \ transformation).</li>
|
||||||
|
<li><b>Bug fix</b>: Check the return of touch calls for the cache. </li>
|
||||||
|
<li><b>Usability</b>: Example for --delete2foldersbutnot "m/Contacts|Agenda|Trash/"</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><b>1.498</b></li>
|
<li><b>1.498</b></li>
|
||||||
<li><b>Usability</b>: Use KiB MiB GiB etc in result summary. Patch from Mark Atwood.</li>
|
<li><b>Usability</b>: Use KiB MiB GiB etc in result summary. Patch from Mark Atwood.</li>
|
||||||
|
@ -215,7 +224,7 @@ any Unix, Linux, Windows, or Mac OS operating system.
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<b>+ One year</b> of imapsync <b>updates</b> without extra payment.<br/>
|
<b>+ One year</b> of imapsync <b>updates</b> without extra payment.<br/>
|
||||||
<b>+ 30 days money-back guarantee!</b><br/>
|
<b>+ 30 days money-back guarantee!</b> (any reason qualifies)<br/>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
@ -232,7 +241,12 @@ Price <b>42 EUR</b> is equal to around <b>50 USD</b>, no problem to pay in USD (
|
||||||
<select name="os0">
|
<select name="os0">
|
||||||
<option value="professional">professional </option>
|
<option value="professional">professional </option>
|
||||||
<option value="individual">individual </option>
|
<option value="individual">individual </option>
|
||||||
</select><br/>
|
</select>
|
||||||
|
<br/>
|
||||||
|
<input type="hidden" name="on1" value="VAT if professional in Europe"/>
|
||||||
|
Enter your <b>VAT</b> <input type="text" name="os1" size="13" maxlength="13"/> <b> if you're a European professional</b> (for accounting). It's 2 letters followed by 11 digits, for example mine is FR74429303332.
|
||||||
|
<br/>
|
||||||
|
<input type="hidden" name="currency_code" value="EUR"/>
|
||||||
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif"
|
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif"
|
||||||
name="submit" alt="PayPal - The safer, easier way to pay online!"/>
|
name="submit" alt="PayPal - The safer, easier way to pay online!"/>
|
||||||
<img alt="" src="https://www.paypalobjects.com/fr_FR/i/scr/pixel.gif" width="1" height="1"/>
|
<img alt="" src="https://www.paypalobjects.com/fr_FR/i/scr/pixel.gif" width="1" height="1"/>
|
||||||
|
@ -241,7 +255,7 @@ name="submit" alt="PayPal - The safer, easier way to pay online!"/>
|
||||||
|
|
||||||
<p>You will receive a <b>download link just after</b> the payment.<br/>
|
<p>You will receive a <b>download link just after</b> the payment.<br/>
|
||||||
You will also receive a gpg signed <b>invoice</b> within <b>a few days by email</b>.<br/>
|
You will also receive a gpg signed <b>invoice</b> within <b>a few days by email</b>.<br/>
|
||||||
Please give a <b>postal address where the invoice will be needed</b> (your company for example),
|
Please give a <b>delivery postal address where the invoice will be needed</b> (your company for example),
|
||||||
since reedit is not easy (and forbidden by law).
|
since reedit is not easy (and forbidden by law).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -256,7 +270,7 @@ buying the latest win32 <b>standalone imapsync.exe</b> for <b>42 EUR</b>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<b>+ One year</b> of imapsync <b>updates</b> without extra payment.<br/>
|
<b>+ One year</b> of imapsync <b>updates</b> without extra payment.<br/>
|
||||||
<b>+ 30 days money-back guarantee!</b><br/>
|
<b>+ 30 days money-back guarantee!</b> (any reason qualifies)<br/>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
@ -272,7 +286,12 @@ Price <b>42 EUR</b> is equal to around <b>50 USD</b>, no problem to pay in USD (
|
||||||
<select name="os0">
|
<select name="os0">
|
||||||
<option value="professional">professional </option>
|
<option value="professional">professional </option>
|
||||||
<option value="individual">individual </option>
|
<option value="individual">individual </option>
|
||||||
</select> <br/>
|
</select>
|
||||||
|
<br/>
|
||||||
|
<input type="hidden" name="on1" value="VAT if professional in Europe"/>
|
||||||
|
Enter your <b>VAT</b> <input type="text" name="os1" size="13" maxlength="13"/> <b> if you're a European professional</b> (for accounting). It's 2 letters followed by 11 digits, for example mine is FR74429303332.
|
||||||
|
<br/>
|
||||||
|
<input type="hidden" name="currency_code" value="EUR"/>
|
||||||
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif"
|
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif"
|
||||||
name="submit" alt="PayPal - The safer, easier way to pay online!"/>
|
name="submit" alt="PayPal - The safer, easier way to pay online!"/>
|
||||||
<img alt="" src="https://www.paypalobjects.com/fr_FR/i/scr/pixel.gif" width="1" height="1"/>
|
<img alt="" src="https://www.paypalobjects.com/fr_FR/i/scr/pixel.gif" width="1" height="1"/>
|
||||||
|
@ -281,7 +300,7 @@ name="submit" alt="PayPal - The safer, easier way to pay online!"/>
|
||||||
|
|
||||||
<p>You will receive a download link <b>just after</b> the payment.<br/>
|
<p>You will receive a download link <b>just after</b> the payment.<br/>
|
||||||
You will also receive a gpg signed <b>invoice</b> within <b>a few days by email</b>.<br/>
|
You will also receive a gpg signed <b>invoice</b> within <b>a few days by email</b>.<br/>
|
||||||
Please give a <b>postal address where the invoice will be needed</b> (your company for example),
|
Please give a <b>delivery postal address where the invoice will be needed</b> (your company for example),
|
||||||
since reedit is not easy (and forbidden by law).
|
since reedit is not easy (and forbidden by law).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -308,6 +327,16 @@ Payment by Paypal account and credit card accepted. <br/>
|
||||||
<p>
|
<p>
|
||||||
<input type="hidden" name="cmd" value="_s-xclick" />
|
<input type="hidden" name="cmd" value="_s-xclick" />
|
||||||
<input type="hidden" name="hosted_button_id" value="E25UVGFNDJWW8" />
|
<input type="hidden" name="hosted_button_id" value="E25UVGFNDJWW8" />
|
||||||
|
<input type="hidden" name="on0" value="imapsync usage"/>imapsync usage
|
||||||
|
<select name="os0">
|
||||||
|
<option value="professional">professional </option>
|
||||||
|
<option value="individual">individual </option>
|
||||||
|
</select>
|
||||||
|
<br/>
|
||||||
|
<input type="hidden" name="on1" value="VAT if professional in Europe"/>
|
||||||
|
Enter your <b>VAT</b> <input type="text" name="os1" size="13" maxlength="13"/> <b> if you're a European professional</b> (for accounting). It's 2 letters followed by 11 digits, for example mine is FR74429303332.
|
||||||
|
<br/>
|
||||||
|
<input type="hidden" name="currency_code" value="EUR"/>
|
||||||
<input type="image"
|
<input type="image"
|
||||||
src="https://www.paypalobjects.com/WEBSCR-640-20110401-1/en_US/i/btn/btn_buynowCC_LG.gif"
|
src="https://www.paypalobjects.com/WEBSCR-640-20110401-1/en_US/i/btn/btn_buynowCC_LG.gif"
|
||||||
name="submit"
|
name="submit"
|
||||||
|
@ -318,7 +347,7 @@ Payment by Paypal account and credit card accepted. <br/>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<p>You will also receive a gpg signed <b>invoice</b> within <b>a few days by email</b>.<br/>
|
<p>You will also receive a gpg signed <b>invoice</b> within <b>a few days by email</b>.<br/>
|
||||||
Please give a <b>postal address where the invoice will be needed</b> (your company for example),
|
Please give a <b>delivery postal address where the invoice will be needed</b> (your company for example),
|
||||||
since reedit is not easy (and forbidden by law).
|
since reedit is not easy (and forbidden by law).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -492,6 +521,7 @@ Don't hesitate to have a try, I will help you and make efforts to switch them to
|
||||||
<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> 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> 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> imapmigrate: <a href="http://sourceforge.net/projects/cyrus-utils/">http://sourceforge.net/projects/cyrus-utils/</a></li>
|
||||||
|
<li> larch: <a href="https://github.com/rgrove/larch">https://github.com/rgrove/larch</a> (derived from wonko_imapsync)</li>
|
||||||
<li> wonko_imapsync: <a href="http://wonko.com/article/554">http://wonko.com/article/554</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> 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>
|
<li> exchange-away: <a href="http://exchange-away.sourceforge.net/">http://exchange-away.sourceforge.net/</a></li>
|
||||||
|
@ -540,8 +570,9 @@ alt="Viewable With Any Browser" />
|
||||||
<!--#config timefmt="%D" -->
|
<!--#config timefmt="%D" -->
|
||||||
<!--#config timefmt="%A %B %d, %Y" -->
|
<!--#config timefmt="%A %B %d, %Y" -->
|
||||||
<b>This document last modified on <!--#echo var="LAST_MODIFIED" --></b>
|
<b>This document last modified on <!--#echo var="LAST_MODIFIED" --></b>
|
||||||
($Id: index.shtml,v 1.122 2012/07/20 15:24:40 gilles Exp gilles $)
|
($Id: index.shtml,v 1.127 2012/08/11 01:40:17 gilles Exp gilles $)
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
REM $Id: test2.bat,v 1.8 2012/02/25 14:42:23 gilles Exp gilles $
|
REM $Id: test2.bat,v 1.9 2012/08/10 11:28:30 gilles Exp gilles $
|
||||||
|
|
||||||
cd C:\msys\1.0\home\Admin\imapsync
|
cd C:\msys\1.0\home\Admin\imapsync
|
||||||
REM perl ./imapsync --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --delete2 --expunge2 --folder INBOX
|
REM perl ./imapsync --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --delete2 --expunge2 --folder INBOX
|
||||||
|
@ -26,6 +26,9 @@ REM --host2 imap.side2.org --user2 %%I --password2 %%J
|
||||||
REM imapsync --host1 p --user1 tata --passfile1 secret.tata ^
|
REM imapsync --host1 p --user1 tata --passfile1 secret.tata ^
|
||||||
REM --host2 p --user2 dollar --password2 "$%%&<>|^"^" --justlogin
|
REM --host2 p --user2 dollar --password2 "$%%&<>|^"^" --justlogin
|
||||||
|
|
||||||
imapsync --host1 p --user1 tata --passfile1 secret.tata ^
|
REM imapsync --host1 p --user1 tata --passfile1 secret.tata ^
|
||||||
--host2 p --user2 equal --password2 "==lalala" --justlogin --debugimap2
|
REM --host2 p --user2 equal --password2 "==lalala" --justlogin --debugimap2
|
||||||
|
|
||||||
|
perl ./imapsync --host1 p --user1 tata --passfile1 secret.tata ^
|
||||||
|
--host2 p --user2 titi --passfile2 secret.titi ^
|
||||||
|
--folder INBOX.useuid --useuid --debugcache --delete2
|
||||||
|
|
4
tests.sh
4
tests.sh
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# $Id: tests.sh,v 1.195 2012/07/18 11:10:00 gilles Exp gilles $
|
# $Id: tests.sh,v 1.196 2012/08/10 11:29:11 gilles Exp gilles $
|
||||||
|
|
||||||
# Example 1:
|
# Example 1:
|
||||||
# CMD_PERL='perl -I./Mail-IMAPClient-3.25/lib' sh -x tests.sh
|
# CMD_PERL='perl -I./Mail-IMAPClient-3.25/lib' sh -x tests.sh
|
||||||
|
@ -486,7 +486,7 @@ ll_delete2foldersbutnot() {
|
||||||
--host2 $HOST2 --user2 titi \
|
--host2 $HOST2 --user2 titi \
|
||||||
--passfile2 ../../var/pass/secret.titi \
|
--passfile2 ../../var/pass/secret.titi \
|
||||||
--justfolders --nofoldersizes \
|
--justfolders --nofoldersizes \
|
||||||
--delete2foldersbutnot '/NEW_2|NEW_3|\[abc\]/' \
|
--delete2foldersbutnot 'm{NEW_2|NEW_3|\[abc\]}' \
|
||||||
--dry
|
--dry
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue