in reply to Re: How to read only unread mail from Outlook Inbox
in thread How to read only unread mail from Outlook Inbox

Hi Satish, what is the bug/error in the below code, actually this is the same code that you have sent, i've done slight modification. This is working fine, and also i'm getting the To() value (mailid) but i'm not getting the mail id From(). use strict; use warnings; use Win32::OLE; use Win32::OLE::Const 'Microsoft Outlook'; my $outlook; $outlook = Win32::OLE->new('Outlook.Application'); die unless $outlook; my $namespace = $outlook->GetNamespace("MAPI"); my $folder = $namespace->GetDefaultFolder(6); my $items = $folder->Items; my $cnt=$items->Count; for my $itemIndex (1..$items->Count) { my $message = $items->item($itemIndex); next if not defined $message; if ($message->{'Unread'}) { my $text = $message->Subject(); my $from_user = $message->From(); my $to_user = $message->To(); print "Unread Email from $from_user and to $to_user\n"; } } I'm getting error message as shown below, why we are not getting the value for From() ? Use of uninitialized value $from_user in concatenation (.) or string at Perl_Rea dUnreadMail.pl line 30. Unread Email from and to xxxxxxxx

  • Comment on Re^2: How to read only unread mail from Outlook Inbox

Replies are listed 'Best First'.
Re^3: How to read only unread mail from Outlook Inbox
by GotToBTru (Prior) on Nov 26, 2014 at 15:11 UTC

    Your code is unreadable. Please put <c> ... </c> tags around your code. See also Markup in the Monastery.

    1 Peter 4:10

      Hi Satish, what is the bug/error in the below code, actually this is the same code that you have sent, i've done slight modification. This is working fine, and also i'm getting the value for the "To()" (mailid) but i'm not getting the mail id for "From()". Please help on this. Here is the code:-

      use strict; use warnings; use Win32::OLE; use Win32::OLE::Const 'Microsoft Outlook'; my $outlook; $outlook = Win32::OLE->new('Outlook.Application'); die unless $outlook; my $namespace = $outlook->GetNamespace("MAPI"); my $folder = $namespace->GetDefaultFolder(6); my $items = $folder->Items; my $cnt=$items->Count; for my $itemIndex (1..$items->Count) { my $message = $items->item($itemIndex); next if not defined $message; if ($message->{'Unread'}) { my $text = $message->Subject(); my $from_user = $message->From(); my $to_user = $message->To(); print "Unread Email from $from_user and to $to_user\n"; } }

      I'm getting error message as shown below:-

      "Use of uninitialized value $from_user in concatenation (.) or string at Perl_ABC.pl line 19. Unread Email from and to SurName (ABC), MiddleName

      why we are not getting the value for "From()" ? is there any mistake in my script ?

      Thanks, Karthik

        Seems there is currently none of the monks involved with Outlook deeply enough. And then Outlook seems a bit diffident about senders' addresses. Google found this, which may be of help to you although it's not Perl...

        Update: tried it out myself, you get more or less sensible results if you replace $message->From() with $message->SenderName(). If you really want the address, $message->Sender()->Address() worked for me, and SenderName() seems to be an alias for Sender()->Name().

      Hi Satish, i've posted again with a readable format. Please help on this bug. Thanks, Karthik