use strict; use warnings; use Win32::OLE; use Win32::OLE::Const 'Microsoft Outlook'; $|++; #what properties do we want to get from Outlook? my @properties = ( "SenderName", "To", "Subject", "Body" ); my $outlook; $outlook = Win32::OLE->new('Outlook.Application'); die unless $outlook; #get the Inbox folder my $namespace = $outlook->GetNamespace("MAPI"); my $folder = $namespace->GetDefaultFolder(6); my $Deleted = $namespace->GetDefaultFolder(3); my $items = $folder->Items; print STDERR "Folder: ", $folder->Name,"\n"; print STDERR "Total entries: ",$items->Count,"\n"; print join(",",@properties),"\n"; print "$items->Count"; my $cnt=$items->Count; for my $itemIndex (1..$items->Count) { my $message = $items->item($itemIndex); next if not defined $message; print " Message :: $message :: $itemIndex--\n"; # $items->item($cnt) my $attach = $message->Attachments(); if ($message->{'Unread'}) { print "Unread EMaail\n"; } next; my @entry; #todo: the following line causes warnings on "Read:" read receipt +messages push @entry, defined($message->{$_}) ? $message->{$_} : 'undef' fo +reach (@properties); if (defined $attach) { #if there's attachments, print out the message info and save t +he attachments print join(",",@entry),"\n"; print "Attachment count == ",$attach->Count,"\n"; for my $attach_index (1..$attach->Count) { my $attachment = $attach->item($attach_index); my $filename = $attachment->Filename; print "Attachment == ",$filename,"\n"; my $saveas = 'E:\Mail'; print "saving attachment '$filename' to '$saveas'...\n"; $attachment->SaveAsFile($saveas); print "$attachment \n"; warn "error saving attachment $filename to $saveas" if !-e + $saveas; } } # $message->Delete; print "Deleted Now \n"; <STDIN>; }
In reply to Re: How to read only unread mail from Outlook Inbox
by Sathishkumar
in thread How to read only unread mail from Outlook Inbox
by karthik.raju
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |