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

Thanks so much, that worked like a charm...the only problem now though is body also contains:
MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0032_01C17453.FA494D20" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 test ...

The main reason i used the modules was because i was told this was fix that :( rather than split direct from STDIN ... any ideas on how i can get the message from that?

Replies are listed 'Best First'.
Re: Using MIME::Tools (boo)
by boo_radley (Parson) on Nov 24, 2001 at 01:21 UTC
    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;.