[CentOS] extract MIME attachments from 700MB imap folder

Tue Jul 1 15:59:07 UTC 2008
Les Mikesell <lesmikesell at gmail.com>

Ray Leventhal wrote:

> Issue:
> I've been tasked with extracting a bunch of MIME attachments (M$Word 
> docs) from emails which have been stored in an imap folder in 
> /home/<username>/mail/<imap foldername>.  As the subject states, the 
> imap folder is about 700MB.
> 
> Googling suggested that munpack might do the trick, but as it is 
> intended only for one message at a time, it outputs the first attachment 
> found, then exits gracefully.
> 
> Further searches seemed to talk about mimedump, so I yum installed 
> perl-MIME-tools.noarch from rpmforge as mimedump this was needed, and 
> includes mimedump.
> 
> I've read the man page, but am wholly unclear as to:
> 1) will this do the trick for me
> 2) are there other known tools which might be recommended
> 

Mime::Parser will split out the body and attachments of a message into 
files.  I've only used it on single files being delivered via procmail 
like this:

use MIME::Parser;
### Create parser, and set some parsing options:
$archive='/path/to/dir';
my $parser = new MIME::Parser;
### Change how nameless message-component files are named:
$parser->output_dir("$archive");
$parser->output_prefix('msg');
### Parse input:
$entity = $parser->parse(\*STDIN) or die "parse failed\n";

But you'll probably want to do something a little more clever to toss 
the body and use sensible filenames for the attachments. I think 
Mime::Parser::Filer can do that.

-- 
   Les Mikesell
    lesmikesell at gmail.com