Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

mime::parser change attachment name

by nvrslowdown (Initiate)
on Dec 06, 2012 at 03:54 UTC ( #1007452=perlquestion: print w/replies, xml ) Need Help??
nvrslowdown has asked for the wisdom of the Perl Monks concerning the following question:

How do I sync the attachment and the body outputs from MIME::parser?

The bottomline is that I want to parse through dozens of emails and link up attachments to the corresponding parsed bodies of the email.

I can modify the name of the MIME::Parser body output but NOT the attachment output since the following does not sync with the attachment subentity:


What do I do??? Thanks!!!

Here is my code:

#!/usr/bin/perl use strict; use warnings; use Mail::POP3Client; use MIME::Parser; my $pop = new Mail::POP3Client( USER => 'joeCool', PASSWORD => 'peanuts', HOST => '', USESSL => 1 ); my $fh = new IO::Handle(); my $parser = new MIME::Parser; for (my $i = 1; $i <= $pop->Count(); $i++) { open (OUT, ">msg-$i.msg"); $fh->fdopen( fileno(OUT), "w" ); $pop->HeadAndBodyToFile( $fh, $i ); close OUT; $parser->output_prefix("$i___"); my $entity = $parser->parse_open("msg-$i.msg"); } $pop->close();

Replies are listed 'Best First'.
Re: mime::parser change attachment name
by Anonymous Monk on Jan 28, 2013 at 08:58 UTC

    The right way to do this is to write your own subclass of MIME::Parser::Filer and create a custom output_path function.

    An easier way might be to create a subdirectory for each email message, named, say, $i, and then use output_dir, like this

    mkdir($i); $parser->output_dir($i);

    before parsing the $i'th email message

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1007452]
Approved by Corion
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (6)
As of 2018-06-20 17:36 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (117 votes). Check out past polls.