Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: [Original edit by MikeBrown] rewrote intro to be less of a personal message; added info about how to use it; clarified VBounce purpose & activation requirements; added header

Shortcircuiting Ruleset

The following is a demonstration sample ruleset which uses the new SpamAssassin 3.2.0+ feature of short-circuiting, together with existing, reliable, hard-to-forge whitelist/blacklist rules, in order to reduce CPU load.

Give it a try if you like (wink) I use it on my own server with very good results: sc=spam messages finish in an average of 0.2 seconds, sc=ham avg 0.5, and the overall average is 20% less time spent scanning as a result. – JustinMason

For using this plugin, enable it in v320.pre file.

It assumes you have enabled the Shortcircuit plugin in the v320.pre file.

To use this ruleset, save it as shortcircuit.cf in the same folder as local.cf.

No Format

# Shortcircuit config - supplements 60_shortcircuit.cf
# see <https://wiki.apache.org/spamassassin/ShortcircuitingRuleset>
#
No Format
# Note that these rules use a variety of normally-optional plugins; you need to
# enable the DK, DKIM, SPF, Shortcircuit, ClamAV, and VBounce plugins to use
# them.

ifplugin Mail::SpamAssassin::Plugin::Shortcircuit

# always log shortcircuit status
add_header all Status "_YESNO_, score=_SCORE_ required=_REQD_ tests=_TESTS_ shortcircuit=_SCTYPE_ autolearn=_AUTOLEARN_ version=_VERSION_"

# simple, non-network-based whitelists, locally-generated messages,
# messages via a trusted relay chain
meta SC_HAM (USER_IN_WHITELIST||USER_IN_DEF_WHITELIST||USER_IN_ALL_SPAM_TO||NO_RELAYS||ALL_TRUSTED)
priority SC_HAM -1000
shortcircuit SC_HAM ham
score SC_HAM -20

# simple, non-network based blacklists
meta SC_SPAM (USER_IN_BLACKLIST_TO||USER_IN_BLACKLIST)
priority SC_SPAM -950
shortcircuit SC_SPAM spam
score SC_SPAM 20

# slower, network-based whitelisting
meta SC_NET_HAM (USER_IN_DKIM_WHITELIST||USER_IN_DK_WHITELIST||USER_IN_SPF_WHITELIST||USER_IN_DEF_DK_WL||USER_IN_DEF_DKIM_WL||USER_IN_DEF_SPF_WL)
priority SC_NET_HAM -500
shortcircuit SC_NET_HAM ham
score SC_NET_HAM -20

# bounce messages from non-whitelisted relays: always ignored if the vbounce plugin is active unwanted, so treat as spam
# (requires whitelist_bounce_relays to be set in local.cf)
priority ANY_BOUNCE_MESSAGE -700
shortcircuit ANY_BOUNCE_MESSAGE spam
score ANY_BOUNCE_MESSAGE 20

# ClamAV support: no need to scan viruses/malware
priority CLAMAV -900
shortcircuit CLAMAV spam
score CLAMAV 20

# add additional DK/SPF whitelists
whitelist_from_dk *@gmail.com
whitelist_from_spf *@gmail.com

endif