Hi folks, So, I'm porting my SA-Exim SA patch to a SA plugin for SA 3.0
For SA 2.6, I had written this: http://marc.merlins.org/linux/exim/files/sa-exim-cvs/SA-greylisting.diff The key part is that my rule is an SA rule, but it has to be run last since it uses the current SA score to decide whether it should greylist the incoming tuplet (details here: http://marc.merlins.org/linux/exim/files/sa-exim-cvs/README.greylisting ) If I use a regular plugin rule, I don't control when it gets run, and it gets run too early. So, I tried to make use of check_end, to guarantee that I was running last, or close to last, but at that point, I'm not quite sure how I can fake the GREYLIST_ISWHITE rule having been successful after the fact I'm calling my rule this way: loadplugin Greylisting /usr/share/perl5/Mail/SpamAssassin/Plugin/Greylisting.pm header GREYLIST_ISWHITE eval:greylisting("( 'dir' => '/var/spool/sa-exim/tuplets'; 'method' => 'dir'; 'greylistsecs' => '1800'; 'dontgreylistthreshold' => 11; 'connectiphdr' => 'X-SA-Exim-Connect-IP'; 'envfromhdr' => 'X-SA-Exim-Mail-From'; 'rcpttohdr' => 'X-SA-Exim-Rcpt-To'; 'greylistnullfrom' => 1; 'greylistfourthbyte' => 0 )") describe GREYLIST_ISWHITE The incoming server has been whitelisted for this receipient and sender score GREYLIST_ISWHITE -0.1 and my plugin's rule only does this: # Greylisting happens depending on the SA score, so we want to run it last, # which is why we have it in the check_end plugin chain sub greylisting { my ($self, $permsgstatus, $optionhash) = @_; $optionhash =~ s/;/,/g; # This is safe, right? (users shouldn't be able to set it in their config) $_=eval $optionhash; $self->{'option'}=\$_; $self->{'rungreylisting'}=1; Mail::SpamAssassin::Plugin::dbg("GREYLISTING: called function"); return 0; } I was hoping to then run the actual code in check_end, but that doesn't quite work since I don't know how to make the GREYLIST_ISWHITE rule succeed after the fact. At that point, however, I ought to be able to get the current SA score, which is what I want. Suggestions? I'm attaching my current plugin (the code isn't that long), which hopefully will help in getting help. Thanks, Marc -- "A mouse is a device used to point at the xterm you want to type in" - A.S.R. Microsoft is to operating systems & security .... .... what McDonalds is to gourmet cooking Home page: http://marc.merlins.org/ | Finger [EMAIL PROTECTED] for PGP key
Greylisting.pm
Description: Perl program
