#Read Outlook Folder... use strict; use Win32::OLE qw(in); use Constant olFolderCalendar=>9; my $Outlook = Win32::OLE->GetObject("Outlook.Application") || Win32::OLE->new("Outlook.Application"); my $Session = $Outlook->Session; #my $NameSpace = $Session->GetNameSpace("MAPI"); #my $ContactsFolder = $NameSpace->GetDefaultFolder(olFolderContacts); ShowSubFolders ($Session->Folders); ################################################# sub ShowSubFolders{ my $FolderCollection = shift; my $level = shift || 0; for my $Folder (in $FolderCollection) { print " " x $level . "Folder$level: $Folder->{Name}\t(" . $Folder->Items->{Count}. ")\n"; #if ($Folder->{Name} =~ /Personal Folders/) { if ($Folder->{Name} =~ /^Mailbox|^Issues/) { ShowSubFolders($Folder->Folders, $level + 1); } if ($Folder->{Name} =~ /Inbox/) { my $msgCount=1; print "*** Please OK the msgbox in outlook that requests external program access**\n"; $Folder->Items->Sort ("CreationTime",1); # Descending by date for my $Item (in $Folder->Items) { print "$msgCount: $Item->{SenderName} : $Item->{Subject}\n"; #print "\t $Item->{Body} \n\n"; last if $msgCount++ > 9; } } } }