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)); } } }