[Mimedefang] How to count recipients in filter_recipient
Benoit Panizzon
benoit.panizzon at imp.ch
Tue Apr 16 05:51:50 EDT 2013
Hello
The situation:
Recipients have different SpamAssassin Settings:
Recipeint A => "NO FILTERING";
Recipient B => "REJECT SPAM";
Now an email arrives
mail from:<sender>
rcpt to:<Recipient A>
rcpt to:<Recipient B>
Now if this is an email that will be handled as spam, we have the problem,
that Recipeint A does want to receive that email and Recipient B want us to
reject it during SMTP Handshake.
We could:
Accept the Email and deliver it only to Recipient A.
Problem: If it was a false positive, that sender does not know it was not
delivered to Recipient B. His Maillog will tell him it was successfully
delivered. => NoGo.
We could:
Reject that email: Recipient A will complain that we filtered the email even
though his settings tell us not to do so. = NoGo.
Solution:
We only accept those recipients which have identical anti-spam settings and
tempfail the others, forcing the sending MTA to resent them in a separate
session. So we can then handle that session according the users settings.
sub filter_sender {
$rcpt_count = 0;
return ('CONTINUE',"ok");
}
sub filter_recipient {
if ($rcpt_count eq 0) {
my $filterrule = &getspamsettings($recipient);
} else {
$rcpt_count++;
return ('TEMPFAIL', "Too many Recipients") if ($rcpt_count > 50);
return ('TEMPFAIL', "Different Spam Setting, please resend separately") if
($filterrule != &getspamsettings($recipient));
}
return ('CONTINUE',"ok");
}
Well, this is the basic idea. Please ignore the syntax errors :-), I just
started with the $rcpt_count in my code. Unfortunately filter_sender and
filter_recipient calls are carried to different filter processes. So the
counter is not reset.
Is there a way to define some sort of over-global variable that is consistent
for one SMTP session between all of the mimedefang processes?
Kind regards
Benoit Panizzon
--
I m p r o W a r e A G -
______________________________________________________
Zurlindenstrasse 29 Tel +41 61 826 93 07
CH-4133 Pratteln Fax +41 61 826 93 02
Schweiz Web http://www.imp.ch
______________________________________________________
More information about the MIMEDefang
mailing list