#!/usr/bin/perl
use MIME::Parser;
srand;
$parser = new MIME::Parser;
$foldername = time().int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10));
mkdir("/var/smtp/my/recv/".$foldername);
$parser->output_dir("/var/smtp/my/recv/".$foldername);
$parser->tmp_dir("/var/smtp/tmp");
eval{$parser->parse(\*STDIN);};
####
#!/usr/bin/perl
use MIME::Parser;
use MIME::Base64;
srand;
$parser = new MIME::Parser;
$foldername = time().int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10));
mkdir("/var/smtp/my/recv/".$foldername);
$parser->output_dir("/var/smtp/my/recv/".$foldername);
$parser->tmp_dir("/var/smtp/tmp");
$returnentity = eval{$parser->parse(\*STDIN);};
@writetofile = dump_entity($returnentity);
open(INDEXFILE, ">/var/smtp/my/recv/".$foldername."/mailindex.txt");
flock(INDEXFILE,2);
print INDEXFILE @writetofile;
close(INDEXFILE);
sub dump_entity {
my ($entity) = @_;
my @filedata = ();
my @parts = $entity->parts;
if (@parts) {
my $i;
foreach $i (0 .. $#parts) {
push(@filedata, dump_entity($parts[$i]));
}
}
else {
my $filepath = $entity->bodyhandle->path;
$filepath =~ s/^(.*)\/([^\/]*)$/$2/si;
$filepath = encode_base64($filepath);
$filepath =~ s/\n//sgi;
$filepath =~ s/\r//sgi;
$filepath =~ s/\t//sgi;
my $fileid = encode_base64($entity->head->get('content-id'));
$fileid =~ s/\n//sgi;
$fileid =~ s/\r//sgi;
$fileid =~ s/\t//sgi;
my $filetype = encode_base64($entity->head->mime_type);
$filetype =~ s/\n//sgi;
$filetype =~ s/\r//sgi;
$filetype =~ s/\t//sgi;
push(@filedata, $filepath."::".$fileid."::".$filetype."\n");
}
return @filedata;
}
####
bXNnLTMyNTUwLTEudHh0::::dGV4dC9wbGFpbg==
bXNnLTMyNTUwLTIuaHRtbA==::::dGV4dC9odG1s
Ym90LnBuZw==::PDEyOTA5ODUxNTMuMzIxNDMuMC5jYW1lbEBzZWJhc3RpYW4tZGVza3RvcD4K::aW1hZ2UvcG5n
####
msg-32550-1.txt :: :: text/plain
msg-32550-2.html :: :: text/html
bot.png :: <1290985153.32143.0.camel@sebastian-desktop> :: image/png
####
sön 2010-11-28 klockan 23:59 +0100 skrev sebastian:

test