Maybe something like this will help (it is a piece of code that I recently wrote for my weblog to accept entries via email):
#!/usr/bin/perl -w
use strict;
use MIME::Parser;
use FileHandle;
use File::Path;
$|++; # autoflush on
# Directory paths
my $tmp_dir = '/home/moxliukas/tmp';
my $output_dir = '/home/moxliukas/public_html/moblog/images';
my $parser = MIME::Parser->new;
$parser->output_dir($tmp_dir);
my $entry = $parser->parse(\*STDIN);
# for each MIME message part...
for my $part ($entry->parts) {
# ...check MIME type
my $mime = $part->mime_type;
if($mime =~ /jpeg/) {
# if it is JPG, generate a new filename
my $url = time() . '.jpg';
my $fh = FileHandle->new($output_dir . '/' . $url, 'w'
+);
binmode($fh);
# Let's write the JPG to the output directory
my $ifh = $part->open('r');
$fh->print($ifh->getlines);
$_->close for($fh, $ifh);
}
$dbh->disconnect;
Hope this helps.