http://qs321.pair.com?node_id=105929


in reply to One-off mime splitter

You don't give much details, but I think this (from the Mime::tools documentation) could be of some help:
Here's some pretty basic code for parsing a MIME message, and outputting its decoded components to a given directory: use MIME::Parser; ### Create parser, and set some parsing options: my $parser = new MIME::Parser; $parser->output_under("$ENV{HOME}/mimemail"); ### Parse input: $entity = $parser->parse(\*STDIN) or die "parse failed\n"; ### Take a look at the top-level entity (and any parts it has): $entity->dump_skeleton;
You should use MIME::Tools. If it's because you didn't want to install it, a quick
perl -MCPAN -e "install MIME::Tools"

will do the job for you.

And remember, even for a one-time task you are better off reusing existing code. Some may say that doing otherwise is a form of "False Impatience" :-)

Guillaume

Replies are listed 'Best First'.
Re: Re: One-off mime splitter
by $code or die (Deacon) on Aug 20, 2001 at 04:51 UTC
    $entity would be the single email with lots of attachments - each one is an individual email (possibly with attachments)- phew!

    So... I think you want to add something like this:
    foreach my $email ($entity->parts()) { # $email is now a MIME::Entity # I.e. one of the original emails that # was mistakenly combined into one. # either print the email, or capture it with # one of the "as_string" methods and use OLE # to stuff it back into Outlook. $email->print(\*STDOUT) }
    This is all from memory - I wrote a mail filter last week to do some virus scanning. But might help.

    Error: Keyboard not attached. Press F1 to continue.