use strict; use warnings; use Win32::OLE::Const 'Microsoft Outlook'; use Win32::OLE 'in'; #Code for Outlook 97 my $FolderName = "my shared folder"; my $strValidUser = "~ DSM Requests" ; #mailbox name/alias my $Outlook = Win32::OLE->GetActiveObject("Outlook.Application"); unless(defined($Outlook)){ die("Unable to obtain Outlook OLE handle $!\n"); } my $objNS = $Outlook->GetNamespace("MAPI"); my $objRecipient = $objNS->CreateRecipient($strValidUser); $objRecipient->Resolve(); #You should check this! my $objInbox = $objNS->GetSharedDefaultFolder($objRecipient, olFolderInbox); my $objFolder = $objInbox->Folders($FolderName); foreach my $email (in $objFolder->Items ){ if ($email->{UnRead} == 0) { #blah blah } }