NAME
Mail::SpamAssassin::Plugin::Shortcircuit - short-circuit evaluation for certain rules
SYNOPSIS
loadplugin Mail::SpamAssassin::Plugin::Shortcircuit
report Content analysis details: (_SCORE_ points, _REQD_ required, s/c _SCTYPE_)
add_header all Status "_YESNO_, score=_SCORE_ required=_REQD_ tests=_TESTS_ shortcircuit=_SCTYPE_ autolearn=_AUTOLEARN_ version=_VERSION_"
DESCRIPTION
This plugin implements simple, test-based shortcircuiting. Shortcircuiting a test will force all other pending rules to be skipped, if that test is hit. In addition, a symbolic rule, SHORTCIRCUIT
, will fire.
Recommended usage is to use priority
to set rules with strong S/O values (ie. 1.0) to be run first, and make instant spam or ham classification based on that.
CONFIGURATION SETTINGS
The following configuration settings are used to control shortcircuiting:
- shortcircuit SYMBOLIC_TEST_NAME {ham|spam|on|off}
-
Shortcircuiting a test will force all other pending rules to be skipped, if that test is hit.
Recommended usage is to use
priority
to set rules with strong S/O values (ie. 1.0) to be run first, and make instant spam or ham classification based on that.To override a test that uses shortcircuiting, you can set the classification type to
off
.Note that DNS and other network lookups are launched when SA reaches priority -100. If you want to shortcircuit scanning before any network queries are sent, you need to set lower than -100 priority to any such rule, like -200 as in the examples below.
Shortcircuited test will be automatically set to priority -200, but only if the original priority is unchanged at default 0.
- on
-
Shortcircuits the rest of the tests, but does not make a strict classification of spam or ham. Rather, it uses the default score for the rule being shortcircuited. This would allow you, for example, to define a rule such as
body TEST /test/ describe TEST test rule that scores barely over spam threshold score TEST 5.5 priority TEST -200 shortcircuit TEST on
The result of a message hitting the above rule would be a final score of 5.5, as opposed to 100 (default) if it were classified as spam.
- off
-
Disables shortcircuiting on said rule.
- spam
-
Shortcircuit the rule using a set of defaults; override the default score of this rule with the score from
shortcircuit_spam_score
, set thenoautolearn
tflag, and set priority to-200
. In other words, equivalent to:shortcircuit TEST on priority TEST -200 score TEST 100 tflags TEST noautolearn
- ham
-
Shortcircuit the rule using a set of defaults; override the default score of this rule with the score from
shortcircuit_ham_score
, set thenoautolearn
andnice
tflags, and set priority to-200
. In other words, equivalent to:shortcircuit TEST on priority TEST -200 score TEST -100 tflags TEST noautolearn nice
- shortcircuit_spam_score n.nn (default: 100)
-
When shortcircuit is used on a rule, and the shortcircuit classification type is set to
spam
, this value should be applied in place of the default score for that rule. - shortcircuit_ham_score n.nn (default: -100)
-
When shortcircuit is used on a rule, and the shortcircuit classification type is set to
ham
, this value should be applied in place of the default score for that rule.
TAGS
The following tags are added to the set available for use in reports, headers etc.:
_SC_ shortcircuit status (classification and rule name)
_SCRULE_ rulename that caused the shortcircuit
_SCTYPE_ shortcircuit classification ("spam", "ham", "default", "none")
SEE ALSO
https://issues.apache.org/SpamAssassin/show_bug.cgi?id=3109