This will recursively print out the names of all subfolders in Inbox. You could combine this with the code above to get the messages in each subfolder.
use strict;
use warnings;
use Win32::OLE;
use Win32::OLE::Const 'Microsoft Outlook';
$|++;
#get an Outlook object
my $outlook;
$outlook = Win32::OLE->new('Outlook.Application');
die unless $outlook;
#get the Inbox folder
my $namespace = $outlook->GetNamespace("MAPI");
my $folder = $namespace->GetDefaultFolder(olFolderInbox);
my $items = $folder->Items;
print STDERR "Folder: ", $folder->Name,"\n";
print STDERR "Total entries: ",$items->Count,"\n";
print_folders($folder);
sub print_folders
{
my $folder = shift;
print "Folder: " . $folder->Name . "\n";
if ($folder->Folders->Count)
{
foreach my $i (1..$folder->Folders->Count)
{
print_folders($folder->Folders($i));
}
}
}
|