mirror of
https://github.com/imapsync/imapsync.git
synced 2024-11-17 08:12:48 +01:00
132 lines
3.0 KiB
Perl
Executable File
132 lines
3.0 KiB
Perl
Executable File
#!/usr/local/bin/perl
|
|
#
|
|
# This is an example demonstrating the use of the migrate method.
|
|
# Note that the migrate method is considered experimental and should
|
|
# be used with caution.
|
|
#
|
|
#$Id$
|
|
#
|
|
|
|
use Mail::IMAPClient;
|
|
use IO::File;
|
|
use File::Basename ;
|
|
use Getopt::Std;
|
|
use warnings;
|
|
use vars qw/$opt_h $opt_H
|
|
$opt_s $opt_u $opt_p $opt_d $opt_b $opt_o
|
|
$opt_S $opt_U $opt_P $opt_D $opt_B $opt_O
|
|
/;
|
|
|
|
getopts('Hhs:S:u:U:p:P:d:D:b:B:o:O:');
|
|
if ($opt_h or $opt_H ) {
|
|
print << "HELP";
|
|
|
|
|
|
Usage:
|
|
|
|
$0 -[h|H] -- prints this message
|
|
|
|
Lower-case options are for source server; upper-case options are for the target server.
|
|
|
|
$0 -s server -S server -u uid -U uid -p passwd -P passwd \
|
|
-b buffersize -B buffersize -o debugFile -O debugFile > error_file
|
|
|
|
All uppercase options except -O default to the lowercase option that was specified.
|
|
If you don't specify any uppercase options at all then God help you, I don't know
|
|
what will happen.
|
|
|
|
Always capture STDERR so that you'll be able to resolve any problems that come up.
|
|
|
|
|
|
HELP
|
|
|
|
exit;
|
|
}
|
|
|
|
my $imap = Mail::IMAPClient->new(
|
|
Server => $opt_s,
|
|
User => $opt_u,
|
|
Password=> $opt_p,
|
|
Uid => 1,
|
|
Debug => $opt_d,
|
|
Buffer => $opt_b||4096,
|
|
Fast_io => 1,
|
|
Timeout => 160, # True value
|
|
Debug_fh=> (
|
|
$opt_o ? IO::File->new(">$opt_o")||die "can't open $opt_o: $!\n" : undef )
|
|
) or die "Error opening source connection: $@\n";
|
|
|
|
my $imap2 = Mail::IMAPClient->new(
|
|
Server => $opt_S||$opt_s,
|
|
User => $opt_U||$opt_u,
|
|
Password=> $opt_P||$opt_p,
|
|
Uid => 1,
|
|
Debug => $opt_D||$opt_d,
|
|
Buffer => $opt_B||$opt_b||4096,
|
|
Fast_io => 1,
|
|
Timeout => 160,
|
|
Debug_fh=> (
|
|
$opt_O ? IO::File->new(">$opt_O")||die "can't open $opt_O: $!\n" : undef )
|
|
) or die "Error opening target connection: $@\n";
|
|
|
|
|
|
$imap->Debug_fh->autoflush;
|
|
$imap2->Debug_fh->autoflush;
|
|
|
|
for my $f ($imap->folders) { $imap->select($f) ; $imap->migrate($imap2,"ALL") ;}
|
|
|
|
|
|
=head1 AUTHOR
|
|
|
|
David J. Kernen
|
|
|
|
The Kernen Group, Inc.
|
|
|
|
imap@kernengroup.com
|
|
|
|
=head1 COPYRIGHT
|
|
|
|
This example and Mail::IMAPClient are Copyright (c) 2003
|
|
by The Kernen Group, Inc. All rights reserved.
|
|
|
|
This example is distributed with Mail::IMAPClient and
|
|
subject to the same licensing requirements as Mail::IMAPClient.
|
|
|
|
imtest is a utility distributed with Cyrus IMAP server,
|
|
Copyright (c) 1994-2000 Carnegie Mellon University.
|
|
All rights reserved.
|
|
|
|
=cut
|
|
|
|
#
|
|
#$Log: migrate_mbox.pl,v $
|
|
#Revision 19991216.2 2003/06/12 21:38:33 dkernen
|
|
#
|
|
#Preparing 2.2.8
|
|
#Added Files: COPYRIGHT
|
|
#Modified Files: Parse.grammar
|
|
#Added Files: Makefile.old
|
|
# Makefile.PL Todo sample.perldb
|
|
# BodyStructure.pm
|
|
# Parse.grammar Parse.pod
|
|
# range.t
|
|
# Thread.grammar
|
|
# draft-crispin-imapv-17.txt rfc1731.txt rfc2060.txt rfc2062.txt
|
|
# rfc2221.txt rfc2359.txt rfc2683.txt
|
|
#
|
|
#Revision 1.1 2003/06/12 21:38:15 dkernen
|
|
#
|
|
#Preparing 2.2.8
|
|
#Added Files: COPYRIGHT
|
|
#Modified Files: Parse.grammar
|
|
#Added Files: Makefile.old
|
|
# Makefile.PL Todo sample.perldb
|
|
# BodyStructure.pm
|
|
# Parse.grammar Parse.pod
|
|
# range.t
|
|
# Thread.grammar
|
|
# draft-crispin-imapv-17.txt rfc1731.txt rfc2060.txt rfc2062.txt
|
|
# rfc2221.txt rfc2359.txt rfc2683.txt
|
|
#
|
|
#
|