#!/usr/bin/perl

use File::Basename;

$unique_file = "/tmp/".time()."_".$$.".msg";
$prefix = basename($0);

# Input sichern
open(TMPFILE, ">$unique_file") || exit(-1);
@msglines = <STDIN>;
foreach $line (@msglines) {
	print TMPFILE $line;
}
close(TMPFILE);

# Reformime 1 starten
open(REFORMIME, "reformime < $unique_file|") || exit(-1);
@mimeinfo = <REFORMIME>;
close(REFORMIME);

# MIME raussuchen
if($#mimeinfo == 0) {
	# nur einteilige nachricht
	$multiparts = "1";
	print STDERR $prefix . ": simple\n";
} else {
	# Mehrteilig
	foreach $part (@mimeinfo) {
		chomp($part);
		if($part eq "1.2") {
			$multiparts = "1.2";
			print STDERR $prefix . ": multipart (using 1.2)\n";
		}
	}
	if(not $multiparts) {
		$multiparts = "1";
		print STDERR $prefix . ": multipart (1.2 not found, using 1)\n";
	}
}

# Rippen
if(open(REFORMIME, "reformime -e -s $multiparts < $unique_file|")) {
	# do it using reformime
	@partlines = <REFORMIME>;
	close(REFORMIME);
	print @partlines;
} else {
	# fallback
	print STDERR $prefix . ": open error - dumping raw msg\n";
	print @msglines;
}

unlink($unique_file);
exit(0);
