3 # Found this code on the internet. Not tested...
4 # http://forums.devshed.com/t49349/s.html
9 my $logfile='/home/directory/attaches.log';
10 my $attachdir='/home/directory';
12 my $parser=new MIME
::Parser
;
13 $parser->ignore_errors(1);
14 $parser->extract_uuencode(1);
15 $parser->tmp_recycling(0);
16 $parser->output_to_core(1);
17 my $entity=$parser->parse(*STDIN
);
19 my $from=$entity->head->get('From');
20 my $subject=$entity->head->get('Subject');
21 my @parts=$entity->parts;
22 my $aname='attachment001';
23 while(my $part = shift(@parts)) {
25 push @parts,$part->parts; # Nested multi-part
28 my $type=$part->head->mime_type || $part->head->effective_type;
29 if($type !~ /^(text|message)/i) { # Not a text, save it
30 my $filename=$part->head->recommended_filename || $aname;
32 my $io=$part->open("r");
33 my $uniq=time().'-'.$$;
34 $filename =~ s/[;<>*|`&\$!#\(\)\[\]\{\}:'"\n]//g;
35 open(F
,">> $attachdir/$uniq-$filename");
37 while($io->read($buf,1024)) {
42 open(LOG
,">> $logfile");
43 print LOG
localtime()." From: $from\tSubject: $subject\tFile: $uniq-$filename\n";