in reply to Re: Re: Using MIME::Tools
in thread Using MIME::Tools

You're seeing parts of the headers there.
If I remember correctly, you may (using this method) have to use print $$body[2] or something similar.
Please see perldata for more information on why.

Mime::Tools is not the most friendly of modules, either... Here's a small snippet which I used once upon a time. Mail messages are stored in @msgs, ok?

foreach my$thismsg (@msgs){ my $parser = new MIME::Parser; my $ent = $parser->parse_data ("$thismsg"); print "here's the message :\n$thismsg\n"; print "mime type is ", $ent->mime_type(),"\n"; my @all_parts = $ent->parts; foreach (@all_parts) { print "mime type is ", $_->mime_type(),"\n"; my $head=$_->head()->as_string; if ($head=~/filename\="(.*?)"/) {print "Filename is $1\n"} print "header is $head\n"; print "------------------done\n"; } print "------------------done with messages\n"; }
This shows how to read the entire message, parts of the content type and the header. IIRC, to pull out the message body would be similar to my $body=$_->body()->as_string; rather than my $head=$_->head()->as_string;.