Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

Re: Saving certain email attachements using MIME::Tools

by jlongino (Parson)
on Aug 30, 2002 at 00:20 UTC ( #193954=note: print w/replies, xml ) Need Help??

in reply to Saving certain email attachements using MIME::Tools

I believe this will do what you want.
#!/usr/local/bin/perl use MIME::Parser; use strict; use warnings; ## directory to store all parsed MIME parts my $outputdir = "./mimemail"; my $parser = new MIME::Parser; $parser->output_dir($outputdir); ## this creates files for all parts my $entity = $parser->read(\*STDIN); my $num_parts = $entity->parts; ## define attachment types to keep -- notice all lowercase ## add as many types as you like. my %type_ok = ( 'application/octet-stream' => 1 ); if ($num_parts > 0) { for (my $i = 0; $i < $num_parts; $i++) { my $part = $entity->parts($i); ## note: lc so types have a better chance of matching my $type = lc $part->mime_type; my $bh = $part->bodyhandle; ## delete parts we don't want if (! exists $type_ok{$type}) { my $status = system("rm '$bh->{MB_Path}'"); die $! unless $status == 0; } } }
The program is executed like this:

program < single.message.mime

Update: './mimemail' directory should already exist. Also removed unneeded 'my $msg_body;' line.


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://193954]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (4)
As of 2018-02-20 02:10 GMT
Find Nodes?
    Voting Booth?
    When it is dark outside I am happiest to see ...

    Results (266 votes). Check out past polls.