use Mail::Message; use File::Temp; my $dir = tempdir; mkdir $dir or die; foreach my $p ($message->parts) { my $fn = $part->dispositionFilename($dir); $part->decoded->write(filename => $fn) or die "Couldn't write to $fn: $!\n"; }