#!/usr/bin/perl use strict; use warnings; #use diagnostics; use Win32::OLE; use Win32::OLE::Const 'Microsoft Outlook'; my $fileEmail = 'c:\\r-test.txt'; open( my $email_fh, ">", $fileEmail ) or die $!; my $outlook = Win32::OLE->new('Outlook.Application') or die "Failed Opening Outlook."; my $namespace = $outlook->GetNamespace("MAPI"); my $folder = $namespace->Folders("Inbox"); my $tofolder = $namespace->Folders("Archive"); my $items = $folder->Items; foreach my $msg ( $items->in ) { if ( $msg->{Subject} =~ m/^Test email extract for (.*)/ ) { my @name = split(/ /, $msg->{Subject}); my $name = $1; print "$name \n"; print {$email_fh} $msg->{Body}; $msg->Move($tofolder ); } }