Mailing List Archive

svn commit: r1871201 [9/17] - in /spamassassin/site/full/3.4.x: ./ doc/
Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AWL.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AWL.html?rev=1871201&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AWL.html (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AWL.html Wed Dec 11 22:18:49 2019
@@ -0,0 +1,190 @@
+<?xml version="1.0" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title></title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<link rev="made" href="mailto:root@localhost" />
+</head>
+
+<body style="background-color: white">
+
+
+
+<ul id="index">
+ <li><a href="#NAME">NAME</a></li>
+ <li><a href="#SYNOPSIS">SYNOPSIS</a></li>
+ <li><a href="#DESCRIPTION">DESCRIPTION</a></li>
+ <li><a href="#TEMPLATE-TAGS">TEMPLATE TAGS</a></li>
+ <li><a href="#USER-PREFERENCES">USER PREFERENCES</a></li>
+ <li><a href="#ADMINISTRATOR-SETTINGS">ADMINISTRATOR SETTINGS</a></li>
+</ul>
+
+<h1 id="NAME">NAME</h1>
+
+<p>Mail::SpamAssassin::Plugin::AWL - Normalize scores via auto-whitelist</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<p>To try this out, add this or uncomment this line in init.pre:</p>
+
+<pre><code> loadplugin Mail::SpamAssassin::Plugin::AWL</code></pre>
+
+<p>Use the supplied 60_awl.cf file (ie you don&#39;t have to do anything) or add these lines to a .cf file:</p>
+
+<pre><code> header AWL eval:check_from_in_auto_whitelist()
+ describe AWL From: address is in the auto white-list
+ tflags AWL userconf noautolearn
+ priority AWL 1000</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>This plugin module provides support for the auto-whitelist. It keeps track of the average SpamAssassin score for senders. Senders are tracked using a combination of their From: address and their IP address. It then uses that average score to reduce the variability in scoring from message to message and modifies the final score by pushing the result towards the historical average. This improves the accuracy of filtering for most email.</p>
+
+<h1 id="TEMPLATE-TAGS">TEMPLATE TAGS</h1>
+
+<p>This plugin module adds the following <code>tags</code> that can be used as placeholders in certain options. See <code>Mail::SpamAssassin::Conf</code> for more information on TEMPLATE TAGS.</p>
+
+<pre><code> _AWL_ AWL modifier
+ _AWLMEAN_ Mean score on which AWL modification is based
+ _AWLCOUNT_ Number of messages on which AWL modification is based
+ _AWLPRESCORE_ Score before AWL</code></pre>
+
+<h1 id="USER-PREFERENCES">USER PREFERENCES</h1>
+
+<p>The following options can be used in both site-wide (<code>local.cf</code>) and user-specific (<code>user_prefs</code>) configuration files to customize how SpamAssassin handles incoming email messages.</p>
+
+<dl>
+
+<dt id="use_auto_whitelist-0-1-default:-1">use_auto_whitelist ( 0 | 1 ) (default: 1)</dt>
+<dd>
+
+<p>Whether to use auto-whitelists. Auto-whitelists track the long-term average score for each sender and then shift the score of new messages toward that long-term average. This can increase or decrease the score for messages, depending on the long-term behavior of the particular correspondent.</p>
+
+<p>For more information about the auto-whitelist system, please look at the the <code>Automatic Whitelist System</code> section of the README file. The auto-whitelist is not intended as a general-purpose replacement for static whitelist entries added to your config files.</p>
+
+<p>Note that certain tests are ignored when determining the final message score:</p>
+
+<pre><code> - rules with tflags set to &#39;noautolearn&#39;</code></pre>
+
+</dd>
+<dt id="auto_whitelist_factor-n-default:-0.5-range-0..1">auto_whitelist_factor n (default: 0.5, range [0..1])</dt>
+<dd>
+
+<p>How much towards the long-term mean for the sender to regress a message. Basically, the algorithm is to track the long-term mean score of messages for the sender (<code>mean</code>), and then once we have otherwise fully calculated the score for this message (<code>score</code>), we calculate the final score for the message as:</p>
+
+<p><code>finalscore</code> = <code>score</code> + (<code>mean</code> - <code>score</code>) * <code>factor</code></p>
+
+<p>So if <code>factor</code> = 0.5, then we&#39;ll move to half way between the calculated score and the mean. If <code>factor</code> = 0.3, then we&#39;ll move about 1/3 of the way from the score toward the mean. <code>factor</code> = 1 means just use the long-term mean; <code>factor</code> = 0 mean just use the calculated score.</p>
+
+</dd>
+<dt id="auto_whitelist_ipv4_mask_len-n-default:-16-range-0..32">auto_whitelist_ipv4_mask_len n (default: 16, range [0..32])</dt>
+<dd>
+
+<p>The AWL database keeps only the specified number of most-significant bits of an IPv4 address in its fields, so that different individual IP addresses within a subnet belonging to the same owner are managed under a single database record. As we have no information available on the allocated address ranges of senders, this CIDR mask length is only an approximation. The default is 16 bits, corresponding to a former class B. Increase the number if a finer granularity is desired, e.g. to 24 (class C) or 32. A value 0 is allowed but is not particularly useful, as it would treat the whole internet as a single organization. The number need not be a multiple of 8, any split is allowed.</p>
+
+</dd>
+<dt id="auto_whitelist_ipv6_mask_len-n-default:-48-range-0..128">auto_whitelist_ipv6_mask_len n (default: 48, range [0..128])</dt>
+<dd>
+
+<p>The AWL database keeps only the specified number of most-significant bits of an IPv6 address in its fields, so that different individual IP addresses within a subnet belonging to the same owner are managed under a single database record. As we have no information available on the allocated address ranges of senders, this CIDR mask length is only an approximation. The default is 48 bits, corresponding to an address range commonly allocated to individual (smaller) organizations. Increase the number for a finer granularity, e.g. to 64 or 96 or 128, or decrease for wider ranges, e.g. 32. A value 0 is allowed but is not particularly useful, as it would treat the whole internet as a single organization. The number need not be a multiple of 4, any split is allowed.</p>
+
+</dd>
+<dt id="user_awl_sql_override_username">user_awl_sql_override_username</dt>
+<dd>
+
+<p>Used by the SQLBasedAddrList storage implementation.</p>
+
+<p>If this option is set the SQLBasedAddrList module will override the set username with the value given. This can be useful for implementing global or group based auto-whitelist databases.</p>
+
+</dd>
+<dt id="auto_whitelist_distinguish_signed">auto_whitelist_distinguish_signed</dt>
+<dd>
+
+<p>Used by the SQLBasedAddrList storage implementation.</p>
+
+<p>If this option is set the SQLBasedAddrList module will keep separate database entries for DKIM-validated e-mail addresses and for non-validated ones. A pre-requisite when setting this option is that a field awl.signedby exists in a SQL table, otherwise SQL operations will fail (which is why we need this option at all - for compatibility with pre-3.3.0 database schema). A plugin DKIM should also be enabled, as otherwise there is no benefit from turning on this option.</p>
+
+</dd>
+</dl>
+
+<h1 id="ADMINISTRATOR-SETTINGS">ADMINISTRATOR SETTINGS</h1>
+
+<p>These settings differ from the ones above, in that they are considered &#39;more privileged&#39; -- even more than the ones in the <b>PRIVILEGED SETTINGS</b> section. No matter what <code>allow_user_rules</code> is set to, these can never be set from a user&#39;s <code>user_prefs</code> file.</p>
+
+<dl>
+
+<dt id="auto_whitelist_factory-module-default:-Mail::SpamAssassin::DBBasedAddrList">auto_whitelist_factory module (default: Mail::SpamAssassin::DBBasedAddrList)</dt>
+<dd>
+
+<p>Select alternative whitelist factory module.</p>
+
+</dd>
+<dt id="auto_whitelist_path-path-filename-default:-.spamassassin-auto-whitelist">auto_whitelist_path /path/filename (default: ~/.spamassassin/auto-whitelist)</dt>
+<dd>
+
+<p>This is the automatic-whitelist directory and filename. By default, each user has their own whitelist database in their <code>~/.spamassassin</code> directory with mode 0700. For system-wide SpamAssassin use, you may want to share this across all users, although that is not recommended.</p>
+
+</dd>
+<dt id="auto_whitelist_db_modules-Module-...-default:-see-below">auto_whitelist_db_modules Module ... (default: see below)</dt>
+<dd>
+
+<p>What database modules should be used for the auto-whitelist storage database file. The first named module that can be loaded from the perl include path will be used. The format is:</p>
+
+<pre><code> PreferredModuleName SecondBest ThirdBest ...</code></pre>
+
+<p>ie. a space-separated list of perl module names. The default is:</p>
+
+<pre><code> DB_File GDBM_File SDBM_File</code></pre>
+
+<p>NDBM_File is no longer supported, since it appears to have bugs that preclude its use for the AWL (see SpamAssassin bug 4353).</p>
+
+</dd>
+<dt id="auto_whitelist_file_mode-default:-0700">auto_whitelist_file_mode (default: 0700)</dt>
+<dd>
+
+<p>The file mode bits used for the automatic-whitelist directory or file.</p>
+
+<p>Make sure you specify this using the &#39;x&#39; mode bits set, as it may also be used to create directories. However, if a file is created, the resulting file will not have any execute bits set (the umask is set to 0111).</p>
+
+</dd>
+<dt id="user_awl_dsn-DBI:databasetype:databasename:hostname:port">user_awl_dsn DBI:databasetype:databasename:hostname:port</dt>
+<dd>
+
+<p>Used by the SQLBasedAddrList storage implementation.</p>
+
+<p>This will set the DSN used to connect. Example: <code>DBI:mysql:spamassassin:localhost</code></p>
+
+</dd>
+<dt id="user_awl_sql_username-username">user_awl_sql_username username</dt>
+<dd>
+
+<p>Used by the SQLBasedAddrList storage implementation.</p>
+
+<p>The authorized username to connect to the above DSN.</p>
+
+</dd>
+<dt id="user_awl_sql_password-password">user_awl_sql_password password</dt>
+<dd>
+
+<p>Used by the SQLBasedAddrList storage implementation.</p>
+
+<p>The password for the database username, for the above DSN.</p>
+
+</dd>
+<dt id="user_awl_sql_table-tablename">user_awl_sql_table tablename</dt>
+<dd>
+
+<p>Used by the SQLBasedAddrList storage implementation.</p>
+
+<p>The table user auto-whitelists are stored in, for the above DSN.</p>
+
+</dd>
+</dl>
+
+
+</body>
+
+</html>
+
+

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AWL.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AWL.txt?rev=1871201&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AWL.txt (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AWL.txt Wed Dec 11 22:18:49 2019
@@ -0,0 +1,180 @@
+NAME
+ Mail::SpamAssassin::Plugin::AWL - Normalize scores via auto-whitelist
+
+SYNOPSIS
+ To try this out, add this or uncomment this line in init.pre:
+
+ loadplugin Mail::SpamAssassin::Plugin::AWL
+
+ Use the supplied 60_awl.cf file (ie you don't have to do anything) or
+ add these lines to a .cf file:
+
+ header AWL eval:check_from_in_auto_whitelist()
+ describe AWL From: address is in the auto white-list
+ tflags AWL userconf noautolearn
+ priority AWL 1000
+
+DESCRIPTION
+ This plugin module provides support for the auto-whitelist. It keeps
+ track of the average SpamAssassin score for senders. Senders are tracked
+ using a combination of their From: address and their IP address. It then
+ uses that average score to reduce the variability in scoring from
+ message to message and modifies the final score by pushing the result
+ towards the historical average. This improves the accuracy of filtering
+ for most email.
+
+TEMPLATE TAGS
+ This plugin module adds the following "tags" that can be used as
+ placeholders in certain options. See "Mail::SpamAssassin::Conf" for more
+ information on TEMPLATE TAGS.
+
+ _AWL_ AWL modifier
+ _AWLMEAN_ Mean score on which AWL modification is based
+ _AWLCOUNT_ Number of messages on which AWL modification is based
+ _AWLPRESCORE_ Score before AWL
+
+USER PREFERENCES
+ The following options can be used in both site-wide ("local.cf") and
+ user-specific ("user_prefs") configuration files to customize how
+ SpamAssassin handles incoming email messages.
+
+ use_auto_whitelist ( 0 | 1 ) (default: 1)
+ Whether to use auto-whitelists. Auto-whitelists track the long-term
+ average score for each sender and then shift the score of new
+ messages toward that long-term average. This can increase or
+ decrease the score for messages, depending on the long-term behavior
+ of the particular correspondent.
+
+ For more information about the auto-whitelist system, please look at
+ the the "Automatic Whitelist System" section of the README file. The
+ auto-whitelist is not intended as a general-purpose replacement for
+ static whitelist entries added to your config files.
+
+ Note that certain tests are ignored when determining the final
+ message score:
+
+ - rules with tflags set to 'noautolearn'
+
+ auto_whitelist_factor n (default: 0.5, range [0..1])
+ How much towards the long-term mean for the sender to regress a
+ message. Basically, the algorithm is to track the long-term mean
+ score of messages for the sender ("mean"), and then once we have
+ otherwise fully calculated the score for this message ("score"), we
+ calculate the final score for the message as:
+
+ "finalscore" = "score" + ("mean" - "score") * "factor"
+
+ So if "factor" = 0.5, then we'll move to half way between the
+ calculated score and the mean. If "factor" = 0.3, then we'll move
+ about 1/3 of the way from the score toward the mean. "factor" = 1
+ means just use the long-term mean; "factor" = 0 mean just use the
+ calculated score.
+
+ auto_whitelist_ipv4_mask_len n (default: 16, range [0..32])
+ The AWL database keeps only the specified number of most-significant
+ bits of an IPv4 address in its fields, so that different individual
+ IP addresses within a subnet belonging to the same owner are managed
+ under a single database record. As we have no information available
+ on the allocated address ranges of senders, this CIDR mask length is
+ only an approximation. The default is 16 bits, corresponding to a
+ former class B. Increase the number if a finer granularity is
+ desired, e.g. to 24 (class C) or 32. A value 0 is allowed but is not
+ particularly useful, as it would treat the whole internet as a
+ single organization. The number need not be a multiple of 8, any
+ split is allowed.
+
+ auto_whitelist_ipv6_mask_len n (default: 48, range [0..128])
+ The AWL database keeps only the specified number of most-significant
+ bits of an IPv6 address in its fields, so that different individual
+ IP addresses within a subnet belonging to the same owner are managed
+ under a single database record. As we have no information available
+ on the allocated address ranges of senders, this CIDR mask length is
+ only an approximation. The default is 48 bits, corresponding to an
+ address range commonly allocated to individual (smaller)
+ organizations. Increase the number for a finer granularity, e.g. to
+ 64 or 96 or 128, or decrease for wider ranges, e.g. 32. A value 0 is
+ allowed but is not particularly useful, as it would treat the whole
+ internet as a single organization. The number need not be a multiple
+ of 4, any split is allowed.
+
+ user_awl_sql_override_username
+ Used by the SQLBasedAddrList storage implementation.
+
+ If this option is set the SQLBasedAddrList module will override the
+ set username with the value given. This can be useful for
+ implementing global or group based auto-whitelist databases.
+
+ auto_whitelist_distinguish_signed
+ Used by the SQLBasedAddrList storage implementation.
+
+ If this option is set the SQLBasedAddrList module will keep separate
+ database entries for DKIM-validated e-mail addresses and for
+ non-validated ones. A pre-requisite when setting this option is that
+ a field awl.signedby exists in a SQL table, otherwise SQL operations
+ will fail (which is why we need this option at all - for
+ compatibility with pre-3.3.0 database schema). A plugin DKIM should
+ also be enabled, as otherwise there is no benefit from turning on
+ this option.
+
+ADMINISTRATOR SETTINGS
+ These settings differ from the ones above, in that they are considered
+ 'more privileged' -- even more than the ones in the PRIVILEGED SETTINGS
+ section. No matter what "allow_user_rules" is set to, these can never be
+ set from a user's "user_prefs" file.
+
+ auto_whitelist_factory module (default:
+ Mail::SpamAssassin::DBBasedAddrList)
+ Select alternative whitelist factory module.
+
+ auto_whitelist_path /path/filename (default:
+ ~/.spamassassin/auto-whitelist)
+ This is the automatic-whitelist directory and filename. By default,
+ each user has their own whitelist database in their
+ "~/.spamassassin" directory with mode 0700. For system-wide
+ SpamAssassin use, you may want to share this across all users,
+ although that is not recommended.
+
+ auto_whitelist_db_modules Module ... (default: see below)
+ What database modules should be used for the auto-whitelist storage
+ database file. The first named module that can be loaded from the
+ perl include path will be used. The format is:
+
+ PreferredModuleName SecondBest ThirdBest ...
+
+ ie. a space-separated list of perl module names. The default is:
+
+ DB_File GDBM_File SDBM_File
+
+ NDBM_File is no longer supported, since it appears to have bugs that
+ preclude its use for the AWL (see SpamAssassin bug 4353).
+
+ auto_whitelist_file_mode (default: 0700)
+ The file mode bits used for the automatic-whitelist directory or
+ file.
+
+ Make sure you specify this using the 'x' mode bits set, as it may
+ also be used to create directories. However, if a file is created,
+ the resulting file will not have any execute bits set (the umask is
+ set to 0111).
+
+ user_awl_dsn DBI:databasetype:databasename:hostname:port
+ Used by the SQLBasedAddrList storage implementation.
+
+ This will set the DSN used to connect. Example:
+ "DBI:mysql:spamassassin:localhost"
+
+ user_awl_sql_username username
+ Used by the SQLBasedAddrList storage implementation.
+
+ The authorized username to connect to the above DSN.
+
+ user_awl_sql_password password
+ Used by the SQLBasedAddrList storage implementation.
+
+ The password for the database username, for the above DSN.
+
+ user_awl_sql_table tablename
+ Used by the SQLBasedAddrList storage implementation.
+
+ The table user auto-whitelists are stored in, for the above DSN.
+

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AccessDB.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AccessDB.html?rev=1871201&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AccessDB.html (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AccessDB.html Wed Dec 11 22:18:49 2019
@@ -0,0 +1,53 @@
+<?xml version="1.0" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title></title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<link rev="made" href="mailto:root@localhost" />
+</head>
+
+<body style="background-color: white">
+
+
+
+<ul id="index">
+ <li><a href="#NAME">NAME</a></li>
+ <li><a href="#SYNOPSIS">SYNOPSIS</a></li>
+ <li><a href="#DESCRIPTION">DESCRIPTION</a></li>
+</ul>
+
+<h1 id="NAME">NAME</h1>
+
+<p>Mail::SpamAssassin::Plugin::AccessDB - check message against Access Database</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<pre><code> loadplugin Mail::SpamAssassin::Plugin::AccessDB
+
+ header ACCESSDB eval:check_access_database(&#39;/etc/mail/access.db&#39;)
+ describe ACCESSDB Message would have been caught by accessdb
+ tflags ACCESSDB userconf
+ score ACCESSDB 2</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>Many MTAs support access databases, such as Sendmail, Postfix, etc. This plugin does similar checks to see whether a message would have been flagged.</p>
+
+<p>The rule returns false if an entry isn&#39;t found, or the entry has a RHS of <i>OK</i> or <i>SKIP</i>.</p>
+
+<p>The rule returns true if an entry exists and has a RHS of <i>REJECT</i>, <i>ERROR</i>, or <i>DISCARD</i>.</p>
+
+<p>Note: only the first word (split on non-word characters) of the RHS is checked, so <code>error:5.7.1:...</code> means <code>ERROR</code>.</p>
+
+<p><b>AccessDB Pointers:</b></p>
+
+<pre><code> http://www.faqs.org/docs/securing/chap22sec178.html
+ http://www.postfix.org/access.5.html</code></pre>
+
+
+</body>
+
+</html>
+
+

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AccessDB.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AccessDB.txt?rev=1871201&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AccessDB.txt (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AccessDB.txt Wed Dec 11 22:18:49 2019
@@ -0,0 +1,31 @@
+NAME
+ Mail::SpamAssassin::Plugin::AccessDB - check message against Access
+ Database
+
+SYNOPSIS
+ loadplugin Mail::SpamAssassin::Plugin::AccessDB
+
+ header ACCESSDB eval:check_access_database('/etc/mail/access.db')
+ describe ACCESSDB Message would have been caught by accessdb
+ tflags ACCESSDB userconf
+ score ACCESSDB 2
+
+DESCRIPTION
+ Many MTAs support access databases, such as Sendmail, Postfix, etc. This
+ plugin does similar checks to see whether a message would have been
+ flagged.
+
+ The rule returns false if an entry isn't found, or the entry has a RHS
+ of *OK* or *SKIP*.
+
+ The rule returns true if an entry exists and has a RHS of *REJECT*,
+ *ERROR*, or *DISCARD*.
+
+ Note: only the first word (split on non-word characters) of the RHS is
+ checked, so "error:5.7.1:..." means "ERROR".
+
+ AccessDB Pointers:
+
+ http://www.faqs.org/docs/securing/chap22sec178.html
+ http://www.postfix.org/access.5.html
+

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AntiVirus.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AntiVirus.html?rev=1871201&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AntiVirus.html (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AntiVirus.html Wed Dec 11 22:18:49 2019
@@ -0,0 +1,56 @@
+<?xml version="1.0" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title></title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<link rev="made" href="mailto:root@localhost" />
+</head>
+
+<body style="background-color: white">
+
+
+
+<ul id="index">
+ <li><a href="#NAME">NAME</a></li>
+ <li><a href="#SYNOPSIS">SYNOPSIS</a></li>
+ <li><a href="#DESCRIPTION">DESCRIPTION</a></li>
+</ul>
+
+<h1 id="NAME">NAME</h1>
+
+<p>AntiVirus - simple anti-virus tests</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<pre><code> loadplugin Mail::SpamAssassin::Plugin::AntiVirus
+
+ body MICROSOFT_EXECUTABLE eval:check_microsoft_executable()
+ body MIME_SUSPECT_NAME eval:check_suspect_name()</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>The MICROSOFT_EXECUTABLE rule works by checking for 3 possibilities in the message in any application/* or text/* part in the message:</p>
+
+<dl>
+
+<dt id="in-text-parts-look-for-a-uuencoded-executable-start-string">- in text parts, look for a uuencoded executable start string</dt>
+<dd>
+
+</dd>
+<dt id="in-application-parts-look-for-filenames-ending-in-an-executable-extension">- in application parts, look for filenames ending in an executable extension</dt>
+<dd>
+
+</dd>
+<dt id="in-application-parts-look-for-a-base64-encoded-executable-start-string">- in application parts, look for a base64 encoded executable start string</dt>
+<dd>
+
+</dd>
+</dl>
+
+
+</body>
+
+</html>
+
+

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AntiVirus.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AntiVirus.txt?rev=1871201&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AntiVirus.txt (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AntiVirus.txt Wed Dec 11 22:18:49 2019
@@ -0,0 +1,19 @@
+NAME
+ AntiVirus - simple anti-virus tests
+
+SYNOPSIS
+ loadplugin Mail::SpamAssassin::Plugin::AntiVirus
+
+ body MICROSOFT_EXECUTABLE eval:check_microsoft_executable()
+ body MIME_SUSPECT_NAME eval:check_suspect_name()
+
+DESCRIPTION
+ The MICROSOFT_EXECUTABLE rule works by checking for 3 possibilities in
+ the message in any application/* or text/* part in the message:
+
+ - in text parts, look for a uuencoded executable start string
+ - in application parts, look for filenames ending in an executable
+ extension
+ - in application parts, look for a base64 encoded executable start
+ string
+

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AskDNS.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AskDNS.html?rev=1871201&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AskDNS.html (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AskDNS.html Wed Dec 11 22:18:49 2019
@@ -0,0 +1,100 @@
+<?xml version="1.0" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title></title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<link rev="made" href="mailto:root@localhost" />
+</head>
+
+<body style="background-color: white">
+
+
+
+<ul id="index">
+ <li><a href="#NAME">NAME</a></li>
+ <li><a href="#SYNOPSIS">SYNOPSIS</a></li>
+ <li><a href="#DESCRIPTION">DESCRIPTION</a></li>
+ <li><a href="#USER-SETTINGS">USER SETTINGS</a></li>
+ <li><a href="#RULE-DEFINITIONS">RULE DEFINITIONS</a></li>
+</ul>
+
+<h1 id="NAME">NAME</h1>
+
+<p>AskDNS - form a DNS query using tag values, and look up the DNSxL lists</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<pre><code> loadplugin Mail::SpamAssassin::Plugin::AskDNS
+ askdns D_IN_DWL _DKIMDOMAIN_._vouch.dwl.spamhaus.org TXT /\b(transaction|list|all)\b/</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>Using a DNS query template as specified in a parameter of a askdns rule, the plugin replaces tag names as found in the template with their values and launches DNS queries as soon as tag values become available. When DNS responses trickle in, filters them according to the requested DNS resource record type and optional subrule filtering expression, yielding a rule hit if a response meets filtering conditions.</p>
+
+<h1 id="USER-SETTINGS">USER SETTINGS</h1>
+
+<dl>
+
+<dt id="rbl_timeout-t-t_min-zone-default:-15-3">rbl_timeout t [t_min] [zone] (default: 15 3)</dt>
+<dd>
+
+<p>The rbl_timeout setting is common to all DNS querying rules (as implemented by other plugins). It can specify a DNS query timeout globally, or individually for each zone. When the zone parameter is specified, the settings affects DNS queries when their query domain equals the specified zone, or is its subdomain. See the <code>Mail::SpamAssassin::Conf</code> POD for details on <code>rbl_timeout</code>.</p>
+
+</dd>
+</dl>
+
+<h1 id="RULE-DEFINITIONS">RULE DEFINITIONS</h1>
+
+<dl>
+
+<dt id="askdns-NAME_OF_RULE-query_template-rr_type-subqueryfilter">askdns NAME_OF_RULE query_template [rr_type [subqueryfilter]]</dt>
+<dd>
+
+<p>A query template is a string which will be expanded to produce a domain name to be used in a DNS query. The template may include SpamAssassin tag names, which will be replaced by their values to form a final query domain. The final query domain must adhere to rules governing DNS domains, i.e. must consist of fields each up to 63 characters long, delimited by dots. There may be a trailing dot at the end, but it is redundant / carries no semantics, because SpamAssassin uses a Net::DSN::Resolver::send method for querying DNS, which ignores any &#39;search&#39; or &#39;domain&#39; DNS resolver options. Domain names in DNS queries are case-insensitive.</p>
+
+<p>A tag name is a string of capital letters, preceded and followed by an underscore character. This syntax mirrors the add_header setting, except that tags cannot have parameters in parenthesis when used in askdns templates. Tag names may appear anywhere in the template - each queried DNS zone prescribes how a query should be formed.</p>
+
+<p>A query template may contain any number of tag names including none, although in the most common anticipated scenario exactly one tag name would appear in each askdns rule. Specified tag names are considered dependencies. Askdns rules with dependencies on the same set of tags are grouped, and all queries in a group are launched as soon as all their dependencies are met, i.e. when the last of the awaited tag values becomes available by a call to set_tag() from some other plugin or elsewhere in the SpamAssassin code.</p>
+
+<p>Launched queries from all askdns rules are grouped too according to a pair of: query type and an expanded query domain name. Even if there are multiple rules producing the same type/domain pair, only one DNS query is launched, and a reply to such query contributes to all the constituent rules.</p>
+
+<p>A tag may produce none, one or multiple values. Askdns rules awaiting for a tag which never receives its value never result in a DNS query. Tags which produce multiple values will result in multiple queries launched, each with an expanded template using one of the tag values. An example is a DKIMDOMAIN tag which yields a list of signing domains, one for each valid signature in a signed message.</p>
+
+<p>When more than one distinct tag name appears in a template, each potentially resulting in multiple values, a Cartesian product is formed, and each tuple results in a launch of one DNS query (duplicates excluded). For example, a query template _A_._B_.example._A_.com where tag A is a list (11,22) and B is (xx,yy,zz), will result in queries: 11.xx.example.11.com, 22.xx.example.22.com, 11.yy.example.11.com, 22.yy.example.22.com, 11.zz.example.11.com, 22.zz.example.22.com .</p>
+
+<p>A parameter rr_type following the query template is a comma-separated list of expected DNS resource record (RR) types. Missing rr_type parameter implies an &#39;A&#39;. A DNS result may bring resource records of multiple types, but only resource records of a type found in the rr_type parameter list are considered, other resource records found in the answer section of a DNS reply are ignored for this rule. A value ANY in the rr_type parameter list matches any resource record type. An empty DNS answer section does not match ANY.</p>
+
+<p>The rr_type parameter not only provides a filter for RR types found in the DNS answer, but also determines the DNS query type. If only a single RR type is specified in the parameter (e.g. TXT), than this is also the RR type of a query. When more than one RR type is specified (e.g. A, AAAA, TXT) or if ANY is specified, then the DNS query type will be ANY and the rr_type parameter will only act as a filter on a result.</p>
+
+<p>Currently recognized RR types in the rr_type parameter are: ANY, A, AAAA, MX, TXT, PTR, NAPTR, NS, SOA, CERT, CNAME, DNAME, DHCID, HINFO, MINFO, RP, HIP, IPSECKEY, KX, LOC, SRV, SSHFP, SPF.</p>
+
+<p>https://www.iana.org/assignments/dns-parameters/dns-parameters.xml</p>
+
+<p>The last optional parameter of a rule is a filtering expression, a.k.a. a subrule. Its function is much like the subrule in URIDNSBL plugin rules, or in the check_rbl eval rules. The main difference is that with askdns rules there is no need to manually group rules according to their queried zone, as the grouping is automatic and duplicate queries are implicitly eliminated.</p>
+
+<p>The subrule filtering parameter can be: a plain string, a regular expression, a single numerical value or a pair of numerical values, or a list of rcodes (DNS status codes of a response). Absence of the filtering parameter implies no filtering, i.e. any positive DNS response (rcode=NOERROR) of the requested RR type will result in a rule hit, regardless of the RR value returned with the response.</p>
+
+<p>When a plain string is used as a filter, it must be enclosed in single or double quotes. For the rule to hit, the response must match the filtering string exactly, and a RR type of a response must match the query type. Typical use is an exact text string for TXT queries, or an exact quad-dotted IPv4 address. In case of a TXT or SPF resource record which can return multiple character-strings (as defined in Section 3.3 of [RFC1035]), these strings are concatenated with no delimiters before comparing the result to the filtering string. This follows requirements of several documents, such as RFC 5518, RFC 7208, RFC 4871, RFC 5617. Examples of a plain text filtering parameter: &quot;127.0.0.1&quot;, &quot;transaction&quot;, &#39;list&#39; .</p>
+
+<p>A regular expression follows a familiar perl syntax like /.../ or m{...} optionally followed by regexp flags (such as &#39;i&#39; for case-insensitivity). If a DNS response matches the requested RR type and the regular expression, the rule hits. Examples: /^127\.0\.0\.\d+$/, m{\bdial up\b}i .</p>
+
+<p>A single numerical value can be a decimal number, or a hexadecimal number prefixed by 0x. Such numeric filtering expression is typically used with RR type-A DNS queries. The returned value (an IPv4 address) is masked with a specified filtering value and tested to fall within a 127.0.0.0/8 network range - the rule hits if the result is nonzero: ((r &amp; n) != 0) &amp;&amp; ((r &amp; 0xff000000) == 0x7f000000). An example: 0x10 .</p>
+
+<p>A pair of numerical values (each a decimal, hexadecimal or quad-dotted) delimited by a &#39;-&#39; specifies an IPv4 address range, and a pair of values delimited by a &#39;/&#39; specifies an IPv4 address followed by a bitmask. Again, this type of filtering expression is primarily intended with RR type-A DNS queries. The rule hits if the RR type matches, and the returned IP address falls within the specified range: (r &gt;= n1 &amp;&amp; r &lt;= n2), or masked with a bitmask matches the specified value: (r &amp; m) == (n &amp; m) .</p>
+
+<p>As a shorthand notation, a single quad-dotted value is equivalent to a n-n form, i.e. it must match the returned value exactly with all its bits.</p>
+
+<p>Some typical examples of a numeric filtering parameter are: 127.0.1.2, 127.0.1.20-127.0.1.39, 127.0.1.0/255.255.255.0, 0.0.0.16/0.0.0.16, 0x10/0x10, 16, 0x10 .</p>
+
+<p>Lastly, the filtering parameter can be a comma-separated list of DNS status codes (rcode), enclosed in square brackets. Rcodes can be represented either by their numeric decimal values (0=NOERROR, 3=NXDOMAIN, ...), or their names. See https://www.iana.org/assignments/dns-parameters for the list of names. When testing for a rcode where rcode is nonzero, a RR type parameter is ignored as a filter, as there is typically no answer section in a DNS reply when rcode indicates an error. Example: [NXDOMAIN], or [FormErr,ServFail,4,5] .</p>
+
+</dd>
+</dl>
+
+
+</body>
+
+</html>
+
+

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AskDNS.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AskDNS.txt?rev=1871201&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AskDNS.txt (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AskDNS.txt Wed Dec 11 22:18:49 2019
@@ -0,0 +1,166 @@
+NAME
+ AskDNS - form a DNS query using tag values, and look up the DNSxL lists
+
+SYNOPSIS
+ loadplugin Mail::SpamAssassin::Plugin::AskDNS
+ askdns D_IN_DWL _DKIMDOMAIN_._vouch.dwl.spamhaus.org TXT /\b(transaction|list|all)\b/
+
+DESCRIPTION
+ Using a DNS query template as specified in a parameter of a askdns rule,
+ the plugin replaces tag names as found in the template with their values
+ and launches DNS queries as soon as tag values become available. When
+ DNS responses trickle in, filters them according to the requested DNS
+ resource record type and optional subrule filtering expression, yielding
+ a rule hit if a response meets filtering conditions.
+
+USER SETTINGS
+ rbl_timeout t [t_min] [zone] (default: 15 3)
+ The rbl_timeout setting is common to all DNS querying rules (as
+ implemented by other plugins). It can specify a DNS query timeout
+ globally, or individually for each zone. When the zone parameter is
+ specified, the settings affects DNS queries when their query domain
+ equals the specified zone, or is its subdomain. See the
+ "Mail::SpamAssassin::Conf" POD for details on "rbl_timeout".
+
+RULE DEFINITIONS
+ askdns NAME_OF_RULE query_template [rr_type [subqueryfilter]]
+ A query template is a string which will be expanded to produce a
+ domain name to be used in a DNS query. The template may include
+ SpamAssassin tag names, which will be replaced by their values to
+ form a final query domain. The final query domain must adhere to
+ rules governing DNS domains, i.e. must consist of fields each up to
+ 63 characters long, delimited by dots. There may be a trailing dot
+ at the end, but it is redundant / carries no semantics, because
+ SpamAssassin uses a Net::DSN::Resolver::send method for querying
+ DNS, which ignores any 'search' or 'domain' DNS resolver options.
+ Domain names in DNS queries are case-insensitive.
+
+ A tag name is a string of capital letters, preceded and followed by
+ an underscore character. This syntax mirrors the add_header setting,
+ except that tags cannot have parameters in parenthesis when used in
+ askdns templates. Tag names may appear anywhere in the template -
+ each queried DNS zone prescribes how a query should be formed.
+
+ A query template may contain any number of tag names including none,
+ although in the most common anticipated scenario exactly one tag
+ name would appear in each askdns rule. Specified tag names are
+ considered dependencies. Askdns rules with dependencies on the same
+ set of tags are grouped, and all queries in a group are launched as
+ soon as all their dependencies are met, i.e. when the last of the
+ awaited tag values becomes available by a call to set_tag() from
+ some other plugin or elsewhere in the SpamAssassin code.
+
+ Launched queries from all askdns rules are grouped too according to
+ a pair of: query type and an expanded query domain name. Even if
+ there are multiple rules producing the same type/domain pair, only
+ one DNS query is launched, and a reply to such query contributes to
+ all the constituent rules.
+
+ A tag may produce none, one or multiple values. Askdns rules
+ awaiting for a tag which never receives its value never result in a
+ DNS query. Tags which produce multiple values will result in
+ multiple queries launched, each with an expanded template using one
+ of the tag values. An example is a DKIMDOMAIN tag which yields a
+ list of signing domains, one for each valid signature in a signed
+ message.
+
+ When more than one distinct tag name appears in a template, each
+ potentially resulting in multiple values, a Cartesian product is
+ formed, and each tuple results in a launch of one DNS query
+ (duplicates excluded). For example, a query template
+ _A_._B_.example._A_.com where tag A is a list (11,22) and B is
+ (xx,yy,zz), will result in queries: 11.xx.example.11.com,
+ 22.xx.example.22.com, 11.yy.example.11.com, 22.yy.example.22.com,
+ 11.zz.example.11.com, 22.zz.example.22.com .
+
+ A parameter rr_type following the query template is a
+ comma-separated list of expected DNS resource record (RR) types.
+ Missing rr_type parameter implies an 'A'. A DNS result may bring
+ resource records of multiple types, but only resource records of a
+ type found in the rr_type parameter list are considered, other
+ resource records found in the answer section of a DNS reply are
+ ignored for this rule. A value ANY in the rr_type parameter list
+ matches any resource record type. An empty DNS answer section does
+ not match ANY.
+
+ The rr_type parameter not only provides a filter for RR types found
+ in the DNS answer, but also determines the DNS query type. If only a
+ single RR type is specified in the parameter (e.g. TXT), than this
+ is also the RR type of a query. When more than one RR type is
+ specified (e.g. A, AAAA, TXT) or if ANY is specified, then the DNS
+ query type will be ANY and the rr_type parameter will only act as a
+ filter on a result.
+
+ Currently recognized RR types in the rr_type parameter are: ANY, A,
+ AAAA, MX, TXT, PTR, NAPTR, NS, SOA, CERT, CNAME, DNAME, DHCID,
+ HINFO, MINFO, RP, HIP, IPSECKEY, KX, LOC, SRV, SSHFP, SPF.
+
+ https://www.iana.org/assignments/dns-parameters/dns-parameters.xml
+
+ The last optional parameter of a rule is a filtering expression,
+ a.k.a. a subrule. Its function is much like the subrule in URIDNSBL
+ plugin rules, or in the check_rbl eval rules. The main difference is
+ that with askdns rules there is no need to manually group rules
+ according to their queried zone, as the grouping is automatic and
+ duplicate queries are implicitly eliminated.
+
+ The subrule filtering parameter can be: a plain string, a regular
+ expression, a single numerical value or a pair of numerical values,
+ or a list of rcodes (DNS status codes of a response). Absence of the
+ filtering parameter implies no filtering, i.e. any positive DNS
+ response (rcode=NOERROR) of the requested RR type will result in a
+ rule hit, regardless of the RR value returned with the response.
+
+ When a plain string is used as a filter, it must be enclosed in
+ single or double quotes. For the rule to hit, the response must
+ match the filtering string exactly, and a RR type of a response must
+ match the query type. Typical use is an exact text string for TXT
+ queries, or an exact quad-dotted IPv4 address. In case of a TXT or
+ SPF resource record which can return multiple character-strings (as
+ defined in Section 3.3 of [RFC1035]), these strings are concatenated
+ with no delimiters before comparing the result to the filtering
+ string. This follows requirements of several documents, such as RFC
+ 5518, RFC 7208, RFC 4871, RFC 5617. Examples of a plain text
+ filtering parameter: "127.0.0.1", "transaction", 'list' .
+
+ A regular expression follows a familiar perl syntax like /.../ or
+ m{...} optionally followed by regexp flags (such as 'i' for
+ case-insensitivity). If a DNS response matches the requested RR type
+ and the regular expression, the rule hits. Examples:
+ /^127\.0\.0\.\d+$/, m{\bdial up\b}i .
+
+ A single numerical value can be a decimal number, or a hexadecimal
+ number prefixed by 0x. Such numeric filtering expression is
+ typically used with RR type-A DNS queries. The returned value (an
+ IPv4 address) is masked with a specified filtering value and tested
+ to fall within a 127.0.0.0/8 network range - the rule hits if the
+ result is nonzero: ((r & n) != 0) && ((r & 0xff000000) ==
+ 0x7f000000). An example: 0x10 .
+
+ A pair of numerical values (each a decimal, hexadecimal or
+ quad-dotted) delimited by a '-' specifies an IPv4 address range, and
+ a pair of values delimited by a '/' specifies an IPv4 address
+ followed by a bitmask. Again, this type of filtering expression is
+ primarily intended with RR type-A DNS queries. The rule hits if the
+ RR type matches, and the returned IP address falls within the
+ specified range: (r >= n1 && r <= n2), or masked with a bitmask
+ matches the specified value: (r & m) == (n & m) .
+
+ As a shorthand notation, a single quad-dotted value is equivalent to
+ a n-n form, i.e. it must match the returned value exactly with all
+ its bits.
+
+ Some typical examples of a numeric filtering parameter are:
+ 127.0.1.2, 127.0.1.20-127.0.1.39, 127.0.1.0/255.255.255.0,
+ 0.0.0.16/0.0.0.16, 0x10/0x10, 16, 0x10 .
+
+ Lastly, the filtering parameter can be a comma-separated list of DNS
+ status codes (rcode), enclosed in square brackets. Rcodes can be
+ represented either by their numeric decimal values (0=NOERROR,
+ 3=NXDOMAIN, ...), or their names. See
+ https://www.iana.org/assignments/dns-parameters for the list of
+ names. When testing for a rcode where rcode is nonzero, a RR type
+ parameter is ignored as a filter, as there is typically no answer
+ section in a DNS reply when rcode indicates an error. Example:
+ [NXDOMAIN], or [FormErr,ServFail,4,5] .
+

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AutoLearnThreshold.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AutoLearnThreshold.html?rev=1871201&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AutoLearnThreshold.html (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AutoLearnThreshold.html Wed Dec 11 22:18:49 2019
@@ -0,0 +1,87 @@
+<?xml version="1.0" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title></title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<link rev="made" href="mailto:root@localhost" />
+</head>
+
+<body style="background-color: white">
+
+
+
+<ul id="index">
+ <li><a href="#NAME">NAME</a></li>
+ <li><a href="#SYNOPSIS">SYNOPSIS</a></li>
+ <li><a href="#DESCRIPTION">DESCRIPTION</a></li>
+ <li><a href="#USER-OPTIONS">USER OPTIONS</a></li>
+</ul>
+
+<h1 id="NAME">NAME</h1>
+
+<p>Mail::SpamAssassin::Plugin::AutoLearnThreshold - threshold-based discriminator for Bayes auto-learning</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<pre><code> loadplugin Mail::SpamAssassin::Plugin::AutoLearnThreshold</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>This plugin implements the threshold-based auto-learning discriminator for SpamAssassin&#39;s Bayes subsystem. Auto-learning is a mechanism whereby high-scoring mails (or low-scoring mails, for non-spam) are fed into its learning systems without user intervention, during scanning.</p>
+
+<p>Note that certain tests are ignored when determining whether a message should be trained upon:</p>
+
+<ul>
+
+<li><p>rules with tflags set to &#39;learn&#39; (the Bayesian rules)</p>
+
+</li>
+<li><p>rules with tflags set to &#39;userconf&#39; (user configuration)</p>
+
+</li>
+<li><p>rules with tflags set to &#39;noautolearn&#39;</p>
+
+</li>
+</ul>
+
+<p>Also note that auto-learning occurs using scores from either scoreset 0 or 1, depending on what scoreset is used during message check. It is likely that the message check and auto-learn scores will be different.</p>
+
+<h1 id="USER-OPTIONS">USER OPTIONS</h1>
+
+<p>The following configuration settings are used to control auto-learning:</p>
+
+<dl>
+
+<dt id="bayes_auto_learn_threshold_nonspam-n.nn-default:-0.1">bayes_auto_learn_threshold_nonspam n.nn (default: 0.1)</dt>
+<dd>
+
+<p>The score threshold below which a mail has to score, to be fed into SpamAssassin&#39;s learning systems automatically as a non-spam message.</p>
+
+</dd>
+<dt id="bayes_auto_learn_threshold_spam-n.nn-default:-12.0">bayes_auto_learn_threshold_spam n.nn (default: 12.0)</dt>
+<dd>
+
+<p>The score threshold above which a mail has to score, to be fed into SpamAssassin&#39;s learning systems automatically as a spam message.</p>
+
+<p>Note: SpamAssassin requires at least 3 points from the header, and 3 points from the body to auto-learn as spam. Therefore, the minimum working value for this option is 6.</p>
+
+<p>If the test option autolearn_force is set, the minimum value will remain at 6 points but there is no requirement that the points come from body and header rules. This option is useful for autolearning with rules that are considered to be extremely safe indicators of the spaminess of a message.</p>
+
+</dd>
+<dt id="bayes_auto_learn_on_error-0-1-default:-0">bayes_auto_learn_on_error (0 | 1) (default: 0)</dt>
+<dd>
+
+<p>With <code>bayes_auto_learn_on_error</code> off, autolearning will be performed even if bayes classifier already agrees with the new classification (i.e. yielded BAYES_00 for what we are now trying to teach it as ham, or yielded BAYES_99 for spam). This is a traditional setting, the default was chosen to retain backward compatibility.</p>
+
+<p>With <code>bayes_auto_learn_on_error</code> turned on, autolearning will be performed only when a bayes classifier had a different opinion from what the autolearner is now trying to teach it (i.e. it made an error in judgement). This strategy may or may not produce better future classifications, but usually works very well, while also preventing unnecessary overlearning and slows down database growth.</p>
+
+</dd>
+</dl>
+
+
+</body>
+
+</html>
+
+

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AutoLearnThreshold.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AutoLearnThreshold.txt?rev=1871201&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AutoLearnThreshold.txt (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_AutoLearnThreshold.txt Wed Dec 11 22:18:49 2019
@@ -0,0 +1,61 @@
+NAME
+ Mail::SpamAssassin::Plugin::AutoLearnThreshold - threshold-based
+ discriminator for Bayes auto-learning
+
+SYNOPSIS
+ loadplugin Mail::SpamAssassin::Plugin::AutoLearnThreshold
+
+DESCRIPTION
+ This plugin implements the threshold-based auto-learning discriminator
+ for SpamAssassin's Bayes subsystem. Auto-learning is a mechanism whereby
+ high-scoring mails (or low-scoring mails, for non-spam) are fed into its
+ learning systems without user intervention, during scanning.
+
+ Note that certain tests are ignored when determining whether a message
+ should be trained upon:
+
+ * rules with tflags set to 'learn' (the Bayesian rules)
+
+ * rules with tflags set to 'userconf' (user configuration)
+
+ * rules with tflags set to 'noautolearn'
+
+ Also note that auto-learning occurs using scores from either scoreset 0
+ or 1, depending on what scoreset is used during message check. It is
+ likely that the message check and auto-learn scores will be different.
+
+USER OPTIONS
+ The following configuration settings are used to control auto-learning:
+
+ bayes_auto_learn_threshold_nonspam n.nn (default: 0.1)
+ The score threshold below which a mail has to score, to be fed into
+ SpamAssassin's learning systems automatically as a non-spam message.
+
+ bayes_auto_learn_threshold_spam n.nn (default: 12.0)
+ The score threshold above which a mail has to score, to be fed into
+ SpamAssassin's learning systems automatically as a spam message.
+
+ Note: SpamAssassin requires at least 3 points from the header, and 3
+ points from the body to auto-learn as spam. Therefore, the minimum
+ working value for this option is 6.
+
+ If the test option autolearn_force is set, the minimum value will
+ remain at 6 points but there is no requirement that the points come
+ from body and header rules. This option is useful for autolearning
+ with rules that are considered to be extremely safe indicators of
+ the spaminess of a message.
+
+ bayes_auto_learn_on_error (0 | 1) (default: 0)
+ With "bayes_auto_learn_on_error" off, autolearning will be performed
+ even if bayes classifier already agrees with the new classification
+ (i.e. yielded BAYES_00 for what we are now trying to teach it as
+ ham, or yielded BAYES_99 for spam). This is a traditional setting,
+ the default was chosen to retain backward compatibility.
+
+ With "bayes_auto_learn_on_error" turned on, autolearning will be
+ performed only when a bayes classifier had a different opinion from
+ what the autolearner is now trying to teach it (i.e. it made an
+ error in judgement). This strategy may or may not produce better
+ future classifications, but usually works very well, while also
+ preventing unnecessary overlearning and slows down database growth.
+

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Bayes.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Bayes.html?rev=1871201&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Bayes.html (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Bayes.html Wed Dec 11 22:18:49 2019
@@ -0,0 +1,47 @@
+<?xml version="1.0" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title></title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<link rev="made" href="mailto:root@localhost" />
+</head>
+
+<body style="background-color: white">
+
+
+
+<ul id="index">
+ <li><a href="#NAME">NAME</a></li>
+ <li><a href="#DESCRIPTION">DESCRIPTION</a></li>
+ <li><a href="#METHODS">METHODS</a></li>
+</ul>
+
+<h1 id="NAME">NAME</h1>
+
+<p>Mail::SpamAssassin::Plugin::Bayes - determine spammishness using a Bayesian classifier</p>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>This is a Bayesian-style probabilistic classifier, using an algorithm based on the one detailed in Paul Graham&#39;s <i>A Plan For Spam</i> paper at:</p>
+
+<pre><code> http://www.paulgraham.com/spam.html</code></pre>
+
+<p>It also incorporates some other aspects taken from Graham Robinson&#39;s webpage on the subject at:</p>
+
+<pre><code> http://radio.weblogs.com/0101454/stories/2002/09/16/spamDetection.html</code></pre>
+
+<p>And the chi-square probability combiner as described here:</p>
+
+<pre><code> http://www.linuxjournal.com/print.php?sid=6467</code></pre>
+
+<p>The results are incorporated into SpamAssassin as the BAYES_* rules.</p>
+
+<h1 id="METHODS">METHODS</h1>
+
+
+</body>
+
+</html>
+
+

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Bayes.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Bayes.txt?rev=1871201&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Bayes.txt (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Bayes.txt Wed Dec 11 22:18:49 2019
@@ -0,0 +1,22 @@
+NAME
+ Mail::SpamAssassin::Plugin::Bayes - determine spammishness using a
+ Bayesian classifier
+
+DESCRIPTION
+ This is a Bayesian-style probabilistic classifier, using an algorithm
+ based on the one detailed in Paul Graham's *A Plan For Spam* paper at:
+
+ http://www.paulgraham.com/spam.html
+
+ It also incorporates some other aspects taken from Graham Robinson's
+ webpage on the subject at:
+
+ http://radio.weblogs.com/0101454/stories/2002/09/16/spamDetection.html
+
+ And the chi-square probability combiner as described here:
+
+ http://www.linuxjournal.com/print.php?sid=6467
+
+ The results are incorporated into SpamAssassin as the BAYES_* rules.
+
+METHODS

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_BodyRuleBaseExtractor.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_BodyRuleBaseExtractor.html?rev=1871201&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_BodyRuleBaseExtractor.html (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_BodyRuleBaseExtractor.html Wed Dec 11 22:18:49 2019
@@ -0,0 +1,42 @@
+<?xml version="1.0" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title></title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<link rev="made" href="mailto:root@localhost" />
+</head>
+
+<body style="background-color: white">
+
+
+
+<ul id="index">
+ <li><a href="#NAME">NAME</a></li>
+ <li><a href="#SYNOPSIS">SYNOPSIS</a></li>
+</ul>
+
+<h1 id="NAME">NAME</h1>
+
+<p>Mail::SpamAssassin::Plugin::BodyRuleBaseExtractor - extract &quot;bases&quot; from body ruleset</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<p>This is a plugin to extract &quot;base&quot; strings from SpamAssassin &#39;body&#39; rules, suitable for use in Rule2XSBody rules or other parallel matching algorithms.</p>
+
+<dl>
+
+<dt id="my-cleanregexp-fixup_re-regexp">my ($cleanregexp) = fixup_re($regexp);</dt>
+<dd>
+
+<p>Converts encoded characters in a regular expression pattern into their equivalent characters</p>
+
+</dd>
+</dl>
+
+
+</body>
+
+</html>
+
+

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_BodyRuleBaseExtractor.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_BodyRuleBaseExtractor.txt?rev=1871201&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_BodyRuleBaseExtractor.txt (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_BodyRuleBaseExtractor.txt Wed Dec 11 22:18:49 2019
@@ -0,0 +1,13 @@
+NAME
+ Mail::SpamAssassin::Plugin::BodyRuleBaseExtractor - extract "bases" from
+ body ruleset
+
+SYNOPSIS
+ This is a plugin to extract "base" strings from SpamAssassin 'body'
+ rules, suitable for use in Rule2XSBody rules or other parallel matching
+ algorithms.
+
+ my ($cleanregexp) = fixup_re($regexp);
+ Converts encoded characters in a regular expression pattern into
+ their equivalent characters
+

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Check.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Check.html?rev=1871201&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Check.html (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Check.html Wed Dec 11 22:18:49 2019
@@ -0,0 +1,37 @@
+<?xml version="1.0" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title></title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<link rev="made" href="mailto:root@localhost" />
+</head>
+
+<body style="background-color: white">
+
+
+
+<ul id="index">
+ <li><a href="#NAME">NAME</a></li>
+ <li><a href="#SYNOPSIS">SYNOPSIS</a></li>
+ <li><a href="#DESCRIPTION">DESCRIPTION</a></li>
+</ul>
+
+<h1 id="NAME">NAME</h1>
+
+<p>Mail::SpamAssassin::Plugin::Check - primary message check functionality</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<p>loadplugin Mail::SpamAssassin::Plugin::Check</p>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>This plugin provides the primary message check functionality.</p>
+
+
+</body>
+
+</html>
+
+

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Check.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Check.txt?rev=1871201&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Check.txt (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Check.txt Wed Dec 11 22:18:49 2019
@@ -0,0 +1,9 @@
+NAME
+ Mail::SpamAssassin::Plugin::Check - primary message check functionality
+
+SYNOPSIS
+ loadplugin Mail::SpamAssassin::Plugin::Check
+
+DESCRIPTION
+ This plugin provides the primary message check functionality.
+

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_DCC.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_DCC.html?rev=1871201&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_DCC.html (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_DCC.html Wed Dec 11 22:18:49 2019
@@ -0,0 +1,152 @@
+<?xml version="1.0" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title></title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<link rev="made" href="mailto:root@localhost" />
+</head>
+
+<body style="background-color: white">
+
+
+
+<ul id="index">
+ <li><a href="#NAME">NAME</a></li>
+ <li><a href="#SYNOPSIS">SYNOPSIS</a></li>
+ <li><a href="#DESCRIPTION">DESCRIPTION</a></li>
+ <li><a href="#TAGS">TAGS</a></li>
+ <li><a href="#USER-OPTIONS">USER OPTIONS</a></li>
+ <li><a href="#ADMINISTRATOR-OPTIONS">ADMINISTRATOR OPTIONS</a></li>
+</ul>
+
+<h1 id="NAME">NAME</h1>
+
+<p>Mail::SpamAssassin::Plugin::DCC - perform DCC check of messages</p>
+
+<h1 id="SYNOPSIS">SYNOPSIS</h1>
+
+<pre><code> loadplugin Mail::SpamAssassin::Plugin::DCC
+
+ full DCC_CHECK eval:check_dcc()
+ full DCC_CHECK_50_79 eval:check_dcc_reputation_range(&#39;50&#39;,&#39;79&#39;)</code></pre>
+
+<h1 id="DESCRIPTION">DESCRIPTION</h1>
+
+<p>The DCC or Distributed Checksum Clearinghouse is a system of servers collecting and counting checksums of millions of mail messages. The counts can be used by SpamAssassin to detect and filter spam.</p>
+
+<p>See https://www.dcc-servers.net/dcc/ for more information about DCC.</p>
+
+<p>Note that DCC is disabled by default in <code>v310.pre</code> because its use requires software that is not distributed with SpamAssassin and that has license restrictions for certain commercial uses. See the DCC license at https://www.dcc-servers.net/dcc/LICENSE for details.</p>
+
+<p>Enable it by uncommenting the &quot;loadplugin Mail::SpamAssassin::Plugin::DCC&quot; confdir/v310.pre or by adding this line to your local.pre. It might also be necessary to install a DCC package, port, rpm, or equivalent from your operating system distributor or a tarball from the primary DCC source at https://www.dcc-servers.net/dcc/#download See also https://www.dcc-servers.net/dcc/INSTALL.html</p>
+
+<h1 id="TAGS">TAGS</h1>
+
+<p>The following tags are added to the set, available for use in reports, header fields, other plugins, etc.:</p>
+
+<pre><code> _DCCB_ DCC server ID in X-DCC-*-Metrics header field name
+ _DCCR_ X-DCC-*-Metrics header field body
+ _DCCREP_ DCC Reputation or percent bulk mail (0..100) from
+ commercial DCC software</code></pre>
+
+<h1 id="USER-OPTIONS">USER OPTIONS</h1>
+
+<dl>
+
+<dt id="use_dcc-0-1-default:-1">use_dcc (0|1) (default: 1)</dt>
+<dd>
+
+<p>Whether to use DCC, if it is available.</p>
+
+</dd>
+<dt id="dcc_body_max-NUMBER">dcc_body_max NUMBER</dt>
+<dd>
+
+</dd>
+<dt id="dcc_fuz1_max-NUMBER">dcc_fuz1_max NUMBER</dt>
+<dd>
+
+</dd>
+<dt id="dcc_fuz2_max-NUMBER">dcc_fuz2_max NUMBER</dt>
+<dd>
+
+<p>Sets how often a message&#39;s body/fuz1/fuz2 checksum must have been reported to the DCC server before SpamAssassin will consider the DCC check hit. <code>999999</code> is DCC&#39;s MANY count.</p>
+
+<p>The default is <code>999999</code> for all these options.</p>
+
+</dd>
+<dt id="dcc_rep_percent-NUMBER">dcc_rep_percent NUMBER</dt>
+<dd>
+
+<p>Only the commercial DCC software provides DCC Reputations. A DCC Reputation is the percentage of bulk mail received from the last untrusted relay in the path taken by a mail message as measured by all commercial DCC installations. See http://www.rhyolite.com/dcc/reputations.html You <code>must</code> whitelist your trusted relays or MX servers with MX or MXDCC lines in /var/dcc/whiteclnt as described in the main DCC man page to avoid seeing your own MX servers as sources of bulk mail. See https://www.dcc-servers.net/dcc/dcc-tree/dcc.html#White-and-Blacklists The default is <code>90</code>.</p>
+
+</dd>
+</dl>
+
+<h1 id="ADMINISTRATOR-OPTIONS">ADMINISTRATOR OPTIONS</h1>
+
+<dl>
+
+<dt id="dcc_timeout-n-default:-8">dcc_timeout n (default: 8)</dt>
+<dd>
+
+<p>How many seconds you wait for DCC to complete, before scanning continues without the DCC results. A numeric value is optionally suffixed by a time unit (s, m, h, d, w, indicating seconds (default), minutes, hours, days, weeks).</p>
+
+</dd>
+<dt id="dcc_home-STRING">dcc_home STRING</dt>
+<dd>
+
+<p>This option tells SpamAssassin where to find the dcc homedir. If not specified, try to use the locally configured directory from the <code>cdcc homedir</code> command. Try /var/dcc if that command fails.</p>
+
+</dd>
+<dt id="dcc_dccifd_path-STRING">dcc_dccifd_path STRING</dt>
+<dd>
+
+<p>This option tells SpamAssassin where to find the dccifd socket instead of a local Unix socket named <code>dccifd</code> in the <code>dcc_home</code> directory. If a socket is specified or found, use it instead of <code>dccproc</code>.</p>
+
+<p>If specified, <code>dcc_dccifd_path</code> is the absolute path of local Unix socket or an INET socket specified as <code>[Host]:Port</code> or <code>Host:Port</code>. Host can be an IPv4 or IPv6 address or a host name Port is a TCP port number. The brackets are required for an IPv6 address.</p>
+
+<p>The default is <code>undef</code>.</p>
+
+</dd>
+<dt id="dcc_path-STRING">dcc_path STRING</dt>
+<dd>
+
+<p>Where to find the <code>dccproc</code> client program instead of relying on SpamAssassin to find it in the current PATH or <code>dcc_home/bin</code>. This must often be set, because the current PATH is cleared by <i>taint mode</i> in the Perl interpreter,</p>
+
+<p>If a <code>dccifd</code> socket is found in <code>dcc_home</code> or specified explicitly with <code>dcc_dccifd_path</code>, use the <code>dccifd(8)</code> interface instead of <code>dccproc</code>.</p>
+
+<p>The default is <code>undef</code>.</p>
+
+</dd>
+<dt id="dcc_options-options">dcc_options options</dt>
+<dd>
+
+<p>Specify additional options to the dccproc(8) command. Only characters in the range [0-9A-Za-z ,._/-] are allowed for security reasons.</p>
+
+<p>The default is <code>undef</code>.</p>
+
+</dd>
+<dt id="dccifd_options-options">dccifd_options options</dt>
+<dd>
+
+<p>Specify additional options to send to the dccifd daemon with the ASCII protocol described on the dccifd(8) man page. Only characters in the range [0-9A-Za-z ,._/-] are allowed for security reasons.</p>
+
+<p>The default is <code>undef</code>.</p>
+
+</dd>
+<dt id="dcc_learn_score-n-default:-undef">dcc_learn_score n (default: undef)</dt>
+<dd>
+
+<p>Report messages with total scores this much larger than the SpamAssassin spam threshold to DCC as spam.</p>
+
+</dd>
+</dl>
+
+
+</body>
+
+</html>
+
+

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_DCC.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_DCC.txt?rev=1871201&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_DCC.txt (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_DCC.txt Wed Dec 11 22:18:49 2019
@@ -0,0 +1,118 @@
+NAME
+ Mail::SpamAssassin::Plugin::DCC - perform DCC check of messages
+
+SYNOPSIS
+ loadplugin Mail::SpamAssassin::Plugin::DCC
+
+ full DCC_CHECK eval:check_dcc()
+ full DCC_CHECK_50_79 eval:check_dcc_reputation_range('50','79')
+
+DESCRIPTION
+ The DCC or Distributed Checksum Clearinghouse is a system of servers
+ collecting and counting checksums of millions of mail messages. The
+ counts can be used by SpamAssassin to detect and filter spam.
+
+ See https://www.dcc-servers.net/dcc/ for more information about DCC.
+
+ Note that DCC is disabled by default in "v310.pre" because its use
+ requires software that is not distributed with SpamAssassin and that has
+ license restrictions for certain commercial uses. See the DCC license at
+ https://www.dcc-servers.net/dcc/LICENSE for details.
+
+ Enable it by uncommenting the "loadplugin
+ Mail::SpamAssassin::Plugin::DCC" confdir/v310.pre or by adding this line
+ to your local.pre. It might also be necessary to install a DCC package,
+ port, rpm, or equivalent from your operating system distributor or a
+ tarball from the primary DCC source at
+ https://www.dcc-servers.net/dcc/#download See also
+ https://www.dcc-servers.net/dcc/INSTALL.html
+
+TAGS
+ The following tags are added to the set, available for use in reports,
+ header fields, other plugins, etc.:
+
+ _DCCB_ DCC server ID in X-DCC-*-Metrics header field name
+ _DCCR_ X-DCC-*-Metrics header field body
+ _DCCREP_ DCC Reputation or percent bulk mail (0..100) from
+ commercial DCC software
+
+USER OPTIONS
+ use_dcc (0|1) (default: 1)
+ Whether to use DCC, if it is available.
+
+ dcc_body_max NUMBER
+ dcc_fuz1_max NUMBER
+ dcc_fuz2_max NUMBER
+ Sets how often a message's body/fuz1/fuz2 checksum must have been
+ reported to the DCC server before SpamAssassin will consider the DCC
+ check hit. 999999 is DCC's MANY count.
+
+ The default is 999999 for all these options.
+
+ dcc_rep_percent NUMBER
+ Only the commercial DCC software provides DCC Reputations. A DCC
+ Reputation is the percentage of bulk mail received from the last
+ untrusted relay in the path taken by a mail message as measured by
+ all commercial DCC installations. See
+ http://www.rhyolite.com/dcc/reputations.html You "must" whitelist
+ your trusted relays or MX servers with MX or MXDCC lines in
+ /var/dcc/whiteclnt as described in the main DCC man page to avoid
+ seeing your own MX servers as sources of bulk mail. See
+ https://www.dcc-servers.net/dcc/dcc-tree/dcc.html#White-and-Blacklis
+ ts The default is 90.
+
+ADMINISTRATOR OPTIONS
+ dcc_timeout n (default: 8)
+ How many seconds you wait for DCC to complete, before scanning
+ continues without the DCC results. A numeric value is optionally
+ suffixed by a time unit (s, m, h, d, w, indicating seconds
+ (default), minutes, hours, days, weeks).
+
+ dcc_home STRING
+ This option tells SpamAssassin where to find the dcc homedir. If not
+ specified, try to use the locally configured directory from the
+ "cdcc homedir" command. Try /var/dcc if that command fails.
+
+ dcc_dccifd_path STRING
+ This option tells SpamAssassin where to find the dccifd socket
+ instead of a local Unix socket named "dccifd" in the "dcc_home"
+ directory. If a socket is specified or found, use it instead of
+ "dccproc".
+
+ If specified, "dcc_dccifd_path" is the absolute path of local Unix
+ socket or an INET socket specified as "[Host]:Port" or "Host:Port".
+ Host can be an IPv4 or IPv6 address or a host name Port is a TCP
+ port number. The brackets are required for an IPv6 address.
+
+ The default is "undef".
+
+ dcc_path STRING
+ Where to find the "dccproc" client program instead of relying on
+ SpamAssassin to find it in the current PATH or "dcc_home/bin". This
+ must often be set, because the current PATH is cleared by *taint
+ mode* in the Perl interpreter,
+
+ If a "dccifd" socket is found in "dcc_home" or specified explicitly
+ with "dcc_dccifd_path", use the dccifd(8) interface instead of
+ "dccproc".
+
+ The default is "undef".
+
+ dcc_options options
+ Specify additional options to the dccproc(8) command. Only
+ characters in the range [0-9A-Za-z ,._/-] are allowed for security
+ reasons.
+
+ The default is "undef".
+
+ dccifd_options options
+ Specify additional options to send to the dccifd daemon with the
+ ASCII protocol described on the dccifd(8) man page. Only characters
+ in the range [0-9A-Za-z ,._/-] are allowed for security reasons.
+
+ The default is "undef".
+
+ dcc_learn_score n (default: undef)
+ Report messages with total scores this much larger than the
+ SpamAssassin spam threshold to DCC as spam.
+