Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Parsing Subject and Body Of E-Mail Message

by ProgramIT (Novice)
on Dec 11, 2009 at 21:35 UTC ( #812446=perlquestion: print w/ replies, xml ) Need Help??
ProgramIT has asked for the wisdom of the Perl Monks concerning the following question:

I am connecting to an imap server over ssl using Net::IMAP::Simple::SSL. After I connect to the server I download all messages and store them in files. Once the Message has been received I want to store the subject and the body of the message in variables. How Can I do this? I was looking at Email::Abstract and Mail::Internet but I couldn't figure out how to use these packages with the IMAP Package I am currently using. How is the best way to acomplish this?

Comment on Parsing Subject and Body Of E-Mail Message
Re: Parsing Subject and Body Of E-Mail Message
by afoken (Parson) on Dec 11, 2009 at 22:06 UTC

    MIME::Parser.

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)
Re: Parsing Subject and Body Of E-Mail Message
by zwon (Monsignor) on Dec 11, 2009 at 22:59 UTC
      Can you explain how to read the body. I have managed to read the headers, but can't find out how to read the body. Here's What I currently have
      #!/usr/bin/perl use strict; use warnings; use Net::IMAP::Simple::SSL; use Email::Simple; # Create the object my $imap = Net::IMAP::Simple::SSL->new('SERVER.HOSTNAME.com') || die "Unable to connect to IMAP: $Net::IMAP::Simple::errstr\n"; # Log on if(!$imap->login('USER','PASSWORD')){ print STDERR "Login failed: " . $imap->errstr . "\n"; exit(64); } # Print the subject's of all the messages in the INBOX my $nm = $imap->select('INBOX'); for(my $i = 1; $i <= $nm; $i++){ if($imap->seen($i)){ print "*"; } else { print " "; } my $es = Email::Simple->new(join '', @{ $imap->top($i) } ); #print $es->as_string; printf("[%03d] %s\n", $i, $es->header('Subject') . " " . $es-> +header('from')); print $es->body; } $imap->quit;

        I know this is an old post, however I came across it when trying to figure this out myself.

        For others stuck with this example, you will need to change the following line from:

         my $es = Email::Simple->new(join '', @{ $imap->top($i) } );

        to

        my $es = Email::Simple->new( join '', @{ $imap->get($i) } );
Re: Parsing Subject and Body Of E-Mail Message
by GrandFather (Cardinal) on Dec 11, 2009 at 23:23 UTC

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://812446]
Approved by broomduster
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (10)
As of 2014-09-17 13:58 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (81 votes), past polls