#!/usr/bin/perl use strict; use warnings; use Win32::OLE; use Win32::OLE::Const 'Microsoft Outlook'; my $filename = 'c:\\test.txt' ; open(FH,"> $filename") or die ("cannot open $filename"); my $outlook = Win32::OLE->new('Outlook.Application') or die "Failed Opening Outlook."; my $namespace = $outlook->GetNamespace("MAPI"); my $folder = $namespace->Folders("testmail")->Folders("test");#->Folders; ("Junk Mail")->Folders("Bad"); my $tofolder = $namespace->Folders("testmail")->Folders("testout");#->Folders; ("Junk Mail")->Folders("Bad"); my $items = $folder->Items; for my $itemIndex (1..$items->Count) { my $message = $items->item($itemIndex); if( $message->{Subject} =~ /^test /){ print $message->{Subject}."\n"; print FH $message->{Body}; # $message->Move($tofolder); only moves one message } } close(FH);