#!/usr/bin/perl -w use MIME::Parser; my $spam_prog = "bogofilter -s"; #my $spam_prog = "formail >>$ENV{HOME}/Mail/ass-test"; sub dump_entity { my ($entity) = @_; my $desc = $entity->head->get('Content-Description') || 'NONE'; if ($desc =~ /original message before SpamAssassin/) { dump_spampt($_) for $entity->parts; } else { dump_entity($_) for $entity->parts; } } sub dump_spampt { my ($entity) = @_; open PROG, "|$spam_prog" or die "can't run spam prog: $!"; $entity->print(\*PROG); close PROG or die "can't close spam prog: $!" } my $parser = new MIME::Parser; $parser->output_to_core(1); $entity = $parser->read(\*STDIN) or die "can't parse MIME stream"; dump_entity($entity);