#!/usr/bin/perl -w use strict; use Getopt::Std; use Mail::Box::Manager; my %opts = ( "i" => undef, "o" => undef, "c" => undef ); getopts("i:o:c:", \%opts); die "Usage: $0 -i -o -c <# messages to move>\n" unless ($opts{i} and $opts{o} and $opts{c}); my $mbm = Mail::Box::Manager->new(); my $inbox = $mbm->open($opts{i}, access => 'rw', remove_when_empty => 0) or die "Can't open $opts{i}\n"; my $outbox = $mbm->open($opts{o}, access => 'rw', create => 1) or die "Can't open $opts{o}\n"; my $num = $opts{c}; my $i = 0; for my $msg ($inbox->messages) { $mbm->moveMessage($outbox, $msg); last if ++$i >= $num; } $inbox->write(); $outbox->write(); print "Moved $i messages from $opts{i} to $opts{o}\n"; print "$opts{i} contains " . $inbox->messages . " messages.\n"; print "$opts{o} contains " . $outbox->messages . " messages.\n"; $inbox->close(); $outbox->close(); exit;