[Mimedefang] Passing Variables from SA to DF

Kelson kelson at speed.net
Wed Jun 14 12:21:01 EDT 2006

Gary McLean wrote:
> My other issue is, im trying to add extra headers to scanned emails that
> Spam Assassin checks for. i.e. Ive tried adding the IS SPAM value and
> X-Relay-Countries but the header appears but the value is blank.. How do I
> get he value from the Spam_assassin_Check routing into DEFANG so that I can
> set the header?
> my($hits, $req, $names, $report, $countries, $isspam) =
> spam_assassin_check();

I had a similar problem where I wanted to retrieve the Bayes autolearn 
status from SpamAssassin.

What you're trying won't work because spam_assassin_check only returns 
four variables.  When you ask for six, the last two end up being 
undefined.  (Perl is forgiving and makes them blank instead of blowing 
up in your face like other languages would.)

What I ended up doing was copying the spam_assassin_check function from 
mimedefang.pl and modifying it to return the values I needed.  In my 
case it retrieves $status->get_autolearn_status() and makes that the 
fifth item in the return value.  Then I replaced all instances of 
spam_asssassin_check in my filter with spam_assassin_check_customized.

You'll probably need to look at either the SA docs or the SA code to 
figure out what you can pull out of the object to get the country info. 
  IS SPAM is probably in there too, but you could also calculate it by 
checking whether $hits >= $req.

Kelson Vibber
SpeedGate Communications <www.speed.net>

More information about the MIMEDefang mailing list