[Mimedefang] Re: MIMEDefang and SpamAssassin

Rob rob_macgregor at hotmail.com
Mon Jun 28 17:49:47 EDT 2004


> -----Original Message-----
> From: mimedefang-bounces at lists.roaringpenguin.com 
> [mailto:mimedefang-bounces at lists.roaringpenguin.com] On 
> Behalf Of David Turgeon
> 
> I was wanting to change the default functionality of SpamAssassin to
> have it forward the original message as an attachment.  I think I
> managed to do this by reading the INPUTMSG file storing it in 
> a variable
> and adding it as a mime_part.  I then wanted to change the original
> message so that the data wouldn't be displayed but a report on the
> ratings as spam.  I tried doing the by calling the 
> replace_with_warning
> method, it failed with error 0 as I was calling it from the filter.
> There are obviously easy ways to change the headers from the 
> filter, my
> question is there an easy way to change the body from the filter?

What I have, is this, in filter_end:

# Record who it was for
action_add_header("X-Orig-Rcpts", join(", ", @Recipients));

# Remove oroginal recipients
foreach $recip (@Recipients) {
	delete_recipient($recip);
	}

# Send to the postmaster
add_recipient('postmaster at mydomain.tld');

# A container for the original message
my $raw_container = MIME::Entity->build(
	Type            => 'text/plain',
	Description     => 'Raw message',
	Data            => [ "" ],
	);

my $container = MIME::Entity->build(
	Type            => 'message/rfc822',
	Description     => 'Original message',
	Data            => [ "" ],
	);

my $parser = new MIME::Parser;
open(IN, '< INPUTMSG');
my $original = $parser->parse(\*IN);
close(IN);

$original->head()->replace('X-Relay-Addr', $RelayAddr);
$RelayHostname ||= 'N/A';
$original->head()->replace('X-Relay-Host', $RelayHostname);
$original->head()->replace('X-Relay-Time', scalar(localtime));

# Add the original message to the container
$raw_container->add_part($original);
$container->add_part($original);

my $reportPart = MIME::Entity->build(
	Type            => 'text/plain',
	Description     => 'spam warning',
	Data            => [
	$report
	],
	);

$entity->parts([$reportPart]);
$entity->head()->mime_attr('content-type' => 'multipart/mixed');
$entity->head()->mime_attr('content-type.boundary'
=> '------------=_' . scalar(time) .
"-$$-nikc");

$entity->add_part($raw_container);
$entity->add_part($container);
action_change_header('Subject', "SPAM ($hits): $Subject");
action_change_header("X-Spam-Score", "$hits ($score) $names");
action_rebuild();


That adds a pair of attachments, one as the original email message, one as
plain text (to make spam reporting easy) and makes the body the actual SA
report.


PLEASE - keep list traffic on the list.  Email sent directly to me may be
ignored utterly.

-- 
Rob | What part of "no" was it you didn't understand? 



More information about the MIMEDefang mailing list