diff options
author | Matěj Cepl <mcepl@redhat.com> | 2008-10-04 00:04:08 +0200 |
---|---|---|
committer | Matej Cepl <mcepl@redhat.com> | 2008-10-04 00:04:08 +0200 |
commit | 746bd9424c9c2fc8714c9c5bd19cbcf98ba36f7b (patch) | |
tree | e57f7af0e0a994542725fd7f175ad60997d860f7 | |
parent | 3f2a2eedd83784de86ad1e681d2c8ab65d0bea78 (diff) | |
download | imapArch-746bd9424c9c2fc8714c9c5bd19cbcf98ba36f7b.tar.gz |
Looks even more complete...
-rw-r--r-- | archiveIMAP.pl | 21 |
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(); |