use strict; use Win32::OLE qw(in with); use Win32::OLE::Const 'Microsoft Outlook'; $|++; $Win32::OLE::Warn = 3; my $OL = Win32::OLE->GetActiveObject('Outlook.Application') || Win32::OLE->new('Outlook.Application', 'Quit'); my $NameSpace = $OL->GetNameSpace("MAPI"); my $Folder = $NameSpace->GetDefaultFolder(olFolderInbox); my $Items = $Folder->{Items}; my $findtext = '[Subject] > "test" and [Subject] < "tz"'; my $MailItems = $Items->Find($findtext); while (1) { print $MailItems->{Subject} ."\n"; $MailItems = $Items->FindNext() || last; }