in reply to Reading msg file

Hi shylaja,
Welcome to the Monastery.
To read msg files from a particular folder, you need to open the folder see opendir, then open each msg file in the folder to read.
Are the msg files just plain text files or not? You didn't say.
You can also look at using glob.
Please check How do I post a question effectively? to get the best help from around here.
Once again welcome.

If you tell me, I'll forget.
If you show me, I'll remember.
if you involve me, I'll understand.
--- Author unknown to me

Replies are listed 'Best First'.
Re^2: Reading msg file
by shylaja (Initiate) on Sep 02, 2014 at 05:16 UTC

    Thanks for your reply 2teez. msg files are outlook files. It has only plain text in the body of the mail. I need to read the body of each msg file. The module Email::Outlook::Message can be used if I am trying to read mail in the outlook. But the mails will be saved in a folder and I need to retrieve the body of mails from the directory. open function will not open the msg files for reading the body of the mail.

      ..The module Email::Outlook::Message can be used if I am trying to read mail in the outlook. But the mails will be saved in a folder..
      Email::Outlook::Message, also parse mail when you are not reading from your Outlook mail directly. i.e with your mails saved in a folder on your local drive.
      E.g:

      #!/usr/bin/perl -Wl use strict; use Email::Outlook::Message; for my $filename ( glob("$ARGV[0]*") ) { ## tell the filename reading print 'Filename: ', $filename; my $msg = new Email::Outlook::Message $filename; my $mime = $msg->to_email_mime; print $mime->as_string; }
      NOTE: I didn't link the Email::Outlook::Message, I only outlined it here. Others in this thread had it linked already.
      And of course, your folder which contain these msg files must be the given from the CLI.

      If you tell me, I'll forget.
      If you show me, I'll remember.
      if you involve me, I'll understand.
      --- Author unknown to me
        Hi, how could I tailor this code to print $filename only if the email body contains a certain keyword, such as "training"?