aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatěj Cepl <mcepl@redhat.com>2008-10-04 00:04:08 +0200
committerMatej Cepl <mcepl@redhat.com>2008-10-04 00:04:08 +0200
commit746bd9424c9c2fc8714c9c5bd19cbcf98ba36f7b (patch)
treee57f7af0e0a994542725fd7f175ad60997d860f7
parent3f2a2eedd83784de86ad1e681d2c8ab65d0bea78 (diff)
downloadimapArch-746bd9424c9c2fc8714c9c5bd19cbcf98ba36f7b.tar.gz
Looks even more complete...
-rw-r--r--archiveIMAP.pl21
1 files changed, 15 insertions, 6 deletions
diff --git a/archiveIMAP.pl b/archiveIMAP.pl
index f8116ce..d3606b4 100644
--- a/archiveIMAP.pl
+++ b/archiveIMAP.pl
@@ -89,7 +89,8 @@ my $cutDate = DateTime->now();
$cutDate->add( months => -$howManyMonths );
my @sourceFolders = grep(!/^INBOX\/Archiv/,$imap->folders());
-my ($msgDateInStr,$msgYear,$msgDateStr,$targetFolder);
+my %targetedMessages;
+my ($msgYear,$msgDateStr,$targetFolder);
foreach my $folder (@sourceFolders) {
$imap->select($folder);
@@ -98,14 +99,22 @@ foreach my $folder (@sourceFolders) {
if ($#msgsProc > 0) {
print "Move $#msgsProc in $folder.\n";
foreach my $msg (@msgsProc) {
- $msgDateInStr = $imap->date($msg);
- $msgYear = getMessageYear($msgDateInStr);
+ $msgYear = getMessageYear($imap->date($msg));
if ($msgYear !~ /^\s*$/) {
$targetFolder = getTargetFolder($folder,$msgYear);
- print "Move message $msg from the folder $folder to $targetFolder.\n";
- #$imap->move($targetFolder,$msg);
+ if ($debug) {
+ print "Move message $msg from the folder $folder to $targetFolder.\n";
+ }
+ push ( @{ $targetedMessages{$folder} } , $msg);
}
}
}
-}
+ foreach my $tFolder (keys %targetedMessages) {
+ if (!($imap->exists($tFolder))) {
+ $imap->create($tFolder)
+ or die "Could not create $tFolder: $@\n";
+ }
+ $imap->move($tFolder,$targetedMessages{$tFolder});
+ }
+}
$imap->close();