You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by km...@apache.org on 2014/02/11 18:26:52 UTC

svn commit: r1567225 [11/15] - in /spamassassin/site/full/3.4.x: ./ doc/

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_SPF.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_SPF.html?rev=1567225&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_SPF.html (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_SPF.html Tue Feb 11 17:26:49 2014
@@ -0,0 +1,154 @@
+<!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>Mail::SpamAssassin::Plugin::SPF - perform SPF verification tests</title>
+<link rev="made" href="mailto:root@twm2005-dev.thoughtworthy.com" />
+</head>
+
+<body style="background-color: white">
+
+<p><a name="__index__"></a></p>
+<!-- INDEX BEGIN -->
+
+<ul>
+
+	<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="#administrator_options">ADMINISTRATOR OPTIONS</a></li>
+</ul>
+<!-- INDEX END -->
+
+<hr />
+<p>
+</p>
+<h1><a name="name">NAME</a></h1>
+<p>Mail::SpamAssassin::Plugin::SPF - perform SPF verification tests</p>
+<p>
+</p>
+<hr />
+<h1><a name="synopsis">SYNOPSIS</a></h1>
+<pre>
+  loadplugin     Mail::SpamAssassin::Plugin::SPF</pre>
+<p>
+</p>
+<hr />
+<h1><a name="description">DESCRIPTION</a></h1>
+<p>This plugin checks a message against Sender Policy Framework (SPF)
+records published by the domain owners in DNS to fight email address
+forgery and make it easier to identify spams.</p>
+<p>
+</p>
+<hr />
+<h1><a name="user_settings">USER SETTINGS</a></h1>
+<dl>
+<dt><strong><a name="item_whitelist_from_spf_user_40example_2ecom">whitelist_from_spf <a href="mailto:user@example.com">user@example.com</a></a></strong><br />
+</dt>
+<dd>
+Works similarly to whitelist_from, except that in addition to matching
+a sender address, a check against the domain's SPF record must pass.
+The first parameter is an address to whitelist, and the second is a string
+to match the relay's rDNS.
+</dd>
+<dd>
+<p>Just like whitelist_from, multiple addresses per line, separated by spaces,
+are OK. Multiple <code>whitelist_from_spf</code> lines are also OK.</p>
+</dd>
+<dd>
+<p>The headers checked for whitelist_from_spf addresses are the same headers
+used for SPF checks (Envelope-From, Return-Path, X-Envelope-From, etc).</p>
+</dd>
+<dd>
+<p>Since this whitelist requires an SPF check to be made, network tests must be
+enabled. It is also required that your trust path be correctly configured.
+See the section on <code>trusted_networks</code> for more info on trust paths.</p>
+</dd>
+<dd>
+<p>e.g.</p>
+</dd>
+<dd>
+<pre>
+  whitelist_from_spf joe@example.com fred@example.com
+  whitelist_from_spf *@example.com</pre>
+</dd>
+<p></p>
+<dt><strong><a name="item_def_whitelist_from_spf_user_40example_2ecom">def_whitelist_from_spf <a href="mailto:user@example.com">user@example.com</a></a></strong><br />
+</dt>
+<dd>
+Same as <code>whitelist_from_spf</code>, but used for the default whitelist entries
+in the SpamAssassin distribution.  The whitelist score is lower, because
+these are often targets for spammer spoofing.
+</dd>
+<p></p></dl>
+<p>
+</p>
+<hr />
+<h1><a name="administrator_options">ADMINISTRATOR OPTIONS</a></h1>
+<dl>
+<dt><strong><a name="item_n">spf_timeout n		(default: 5)</a></strong><br />
+</dt>
+<dd>
+How many seconds to wait for an SPF query to complete, before scanning
+continues without the SPF result. A numeric value is optionally suffixed
+by a time unit (s, m, h, d, w, indicating seconds (default), minutes, hours,
+days, weeks).
+</dd>
+<p></p>
+<dt><strong><a name="item_do_not_use_mail_spf">do_not_use_mail_spf (0|1)		(default: 0)</a></strong><br />
+</dt>
+<dd>
+By default the plugin will try to use the Mail::SPF module for SPF checks if
+it can be loaded.  If Mail::SPF cannot be used the plugin will fall back to
+using the legacy Mail::SPF::Query module if it can be loaded.
+</dd>
+<dd>
+<p>Use this option to stop the plugin from using Mail::SPF and cause it to try to
+use Mail::SPF::Query instead.</p>
+</dd>
+<p></p>
+<dt><strong><a name="item_do_not_use_mail_spf_query">do_not_use_mail_spf_query (0|1)	(default: 0)</a></strong><br />
+</dt>
+<dd>
+As above, but instead stop the plugin from trying to use Mail::SPF::Query and
+cause it to only try to use Mail::SPF.
+</dd>
+<p></p>
+<dt><strong><a name="item_ignore_received_spf_header">ignore_received_spf_header (0|1)	(default: 0)</a></strong><br />
+</dt>
+<dd>
+By default, to avoid unnecessary DNS lookups, the plugin will try to use the
+SPF results found in any <code>Received-SPF</code> headers it finds in the message that
+could only have been added by an internal relay.
+</dd>
+<dd>
+<p>Set this option to 1 to ignore any <code>Received-SPF</code> headers present and to have
+the plugin perform the SPF check itself.</p>
+</dd>
+<dd>
+<p>Note that unless the plugin finds an <code>identity=helo</code>, or some unsupported
+identity, it will assume that the result is a mfrom SPF check result.  The
+only identities supported are <code>mfrom</code>, <code>mailfrom</code> and <code>helo</code>.</p>
+</dd>
+<p></p>
+<dt><strong><a name="item_use_newest_received_spf_header">use_newest_received_spf_header (0|1)	(default: 0)</a></strong><br />
+</dt>
+<dd>
+By default, when using <code>Received-SPF</code> headers, the plugin will attempt to use
+the oldest (bottom most) <code>Received-SPF</code> headers, that were added by internal
+relays, that it can parse results from since they are the most likely to be
+accurate.  This is done so that if you have an incoming mail setup where one
+of your primary MXes doesn't know about a secondary MX (or your MXes don't
+know about some sort of forwarding relay that SA considers trusted+internal)
+but SA is aware of the actual domain boundary (internal_networks setting) SA
+will use the results that are most accurate.
+</dd>
+<dd>
+<p>Use this option to start with the newest (top most) <code>Received-SPF</code> headers,
+working downwards until results are successfully parsed.</p>
+</dd>
+<p></p></dl>
+
+</body>
+
+</html>

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_SPF.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_SPF.txt?rev=1567225&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_SPF.txt (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_SPF.txt Tue Feb 11 17:26:49 2014
@@ -0,0 +1,87 @@
+NAME
+    Mail::SpamAssassin::Plugin::SPF - perform SPF verification tests
+
+SYNOPSIS
+      loadplugin     Mail::SpamAssassin::Plugin::SPF
+
+DESCRIPTION
+    This plugin checks a message against Sender Policy Framework (SPF)
+    records published by the domain owners in DNS to fight email address
+    forgery and make it easier to identify spams.
+
+USER SETTINGS
+    whitelist_from_spf user@example.com
+        Works similarly to whitelist_from, except that in addition to
+        matching a sender address, a check against the domain's SPF record
+        must pass. The first parameter is an address to whitelist, and the
+        second is a string to match the relay's rDNS.
+
+        Just like whitelist_from, multiple addresses per line, separated by
+        spaces, are OK. Multiple "whitelist_from_spf" lines are also OK.
+
+        The headers checked for whitelist_from_spf addresses are the same
+        headers used for SPF checks (Envelope-From, Return-Path,
+        X-Envelope-From, etc).
+
+        Since this whitelist requires an SPF check to be made, network tests
+        must be enabled. It is also required that your trust path be
+        correctly configured. See the section on "trusted_networks" for more
+        info on trust paths.
+
+        e.g.
+
+          whitelist_from_spf joe@example.com fred@example.com
+          whitelist_from_spf *@example.com
+
+    def_whitelist_from_spf user@example.com
+        Same as "whitelist_from_spf", but used for the default whitelist
+        entries in the SpamAssassin distribution. The whitelist score is
+        lower, because these are often targets for spammer spoofing.
+
+ADMINISTRATOR OPTIONS
+    spf_timeout n (default: 5)
+        How many seconds to wait for an SPF query to complete, before
+        scanning continues without the SPF result. A numeric value is
+        optionally suffixed by a time unit (s, m, h, d, w, indicating
+        seconds (default), minutes, hours, days, weeks).
+
+    do_not_use_mail_spf (0|1) (default: 0)
+        By default the plugin will try to use the Mail::SPF module for SPF
+        checks if it can be loaded. If Mail::SPF cannot be used the plugin
+        will fall back to using the legacy Mail::SPF::Query module if it can
+        be loaded.
+
+        Use this option to stop the plugin from using Mail::SPF and cause it
+        to try to use Mail::SPF::Query instead.
+
+    do_not_use_mail_spf_query (0|1) (default: 0)
+        As above, but instead stop the plugin from trying to use
+        Mail::SPF::Query and cause it to only try to use Mail::SPF.
+
+    ignore_received_spf_header (0|1) (default: 0)
+        By default, to avoid unnecessary DNS lookups, the plugin will try to
+        use the SPF results found in any "Received-SPF" headers it finds in
+        the message that could only have been added by an internal relay.
+
+        Set this option to 1 to ignore any "Received-SPF" headers present
+        and to have the plugin perform the SPF check itself.
+
+        Note that unless the plugin finds an "identity=helo", or some
+        unsupported identity, it will assume that the result is a mfrom SPF
+        check result. The only identities supported are "mfrom", "mailfrom"
+        and "helo".
+
+    use_newest_received_spf_header (0|1) (default: 0)
+        By default, when using "Received-SPF" headers, the plugin will
+        attempt to use the oldest (bottom most) "Received-SPF" headers, that
+        were added by internal relays, that it can parse results from since
+        they are the most likely to be accurate. This is done so that if you
+        have an incoming mail setup where one of your primary MXes doesn't
+        know about a secondary MX (or your MXes don't know about some sort
+        of forwarding relay that SA considers trusted+internal) but SA is
+        aware of the actual domain boundary (internal_networks setting) SA
+        will use the results that are most accurate.
+
+        Use this option to start with the newest (top most) "Received-SPF"
+        headers, working downwards until results are successfully parsed.
+

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Shortcircuit.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Shortcircuit.html?rev=1567225&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Shortcircuit.html (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Shortcircuit.html Tue Feb 11 17:26:49 2014
@@ -0,0 +1,163 @@
+<!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>Mail::SpamAssassin::Plugin::Shortcircuit - short-circuit evaluation for certain rules</title>
+<link rev="made" href="mailto:root@twm2005-dev.thoughtworthy.com" />
+</head>
+
+<body style="background-color: white">
+
+<p><a name="__index__"></a></p>
+<!-- INDEX BEGIN -->
+
+<ul>
+
+	<li><a href="#name">NAME</a></li>
+	<li><a href="#synopsis">SYNOPSIS</a></li>
+	<li><a href="#description">DESCRIPTION</a></li>
+	<li><a href="#configuration_settings">CONFIGURATION SETTINGS</a></li>
+	<li><a href="#tags">TAGS</a></li>
+	<li><a href="#see_also">SEE ALSO</a></li>
+</ul>
+<!-- INDEX END -->
+
+<hr />
+<p>
+</p>
+<h1><a name="name">NAME</a></h1>
+<p>Mail::SpamAssassin::Plugin::Shortcircuit - short-circuit evaluation for certain rules</p>
+<p>
+</p>
+<hr />
+<h1><a name="synopsis">SYNOPSIS</a></h1>
+<pre>
+  loadplugin     Mail::SpamAssassin::Plugin::Shortcircuit</pre>
+<pre>
+  report Content analysis details:   (_SCORE_ points, _REQD_ required, s/c _SCTYPE_)</pre>
+<pre>
+  add_header all Status &quot;_YESNO_, score=_SCORE_ required=_REQD_ tests=_TESTS_ shortcircuit=_SCTYPE_ autolearn=_AUTOLEARN_ version=_VERSION_&quot;</pre>
+<p>
+</p>
+<hr />
+<h1><a name="description">DESCRIPTION</a></h1>
+<p>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, <code>SHORTCIRCUIT</code>, will fire.</p>
+<p>Recomended usage is to use <code>priority</code> 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.</p>
+<p>
+</p>
+<hr />
+<h1><a name="configuration_settings">CONFIGURATION SETTINGS</a></h1>
+<p>The following configuration settings are used to control shortcircuiting:</p>
+<dl>
+<dt><strong><a name="item_shortcircuit_symbolic_test_name__7bham_7cspam_7con">shortcircuit SYMBOLIC_TEST_NAME {ham|spam|on|off}</a></strong><br />
+</dt>
+<dd>
+Shortcircuiting a test will force all other pending rules to be skipped, if
+that test is hit.
+</dd>
+<dd>
+<p>Recomended usage is to use <code>priority</code> 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.</p>
+</dd>
+<dd>
+<p>To override a test that uses shortcircuiting, you can set the classification
+type to <a href="#item_off"><code>off</code></a>.</p>
+</dd>
+<dl>
+<dt><strong><a name="item_on">on</a></strong><br />
+</dt>
+<dd>
+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
+</dd>
+<dd>
+<pre>
+  body TEST /test/
+  describe TEST test rule that scores barely over spam threshold
+  score TEST 5.5
+  priority TEST -100
+  shortcircuit TEST on</pre>
+</dd>
+<dd>
+<p>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.</p>
+</dd>
+<p></p>
+<dt><strong><a name="item_off">off</a></strong><br />
+</dt>
+<dd>
+Disables shortcircuiting on said rule.
+</dd>
+<p></p>
+<dt><strong><a name="item_spam">spam</a></strong><br />
+</dt>
+<dd>
+Shortcircuit the rule using a set of defaults; override the default score of
+this rule with the score from <code>shortcircuit_spam_score</code>, set the
+<code>noautolearn</code> tflag, and set priority to <code>-100</code>.  In other words,
+equivalent to:
+</dd>
+<dd>
+<pre>
+  shortcircuit TEST on
+  priority TEST -100
+  score TEST 100
+  tflags TEST noautolearn</pre>
+</dd>
+<p></p>
+<dt><strong><a name="item_ham">ham</a></strong><br />
+</dt>
+<dd>
+Shortcircuit the rule using a set of defaults; override the default score of
+this rule with the score from <code>shortcircuit_ham_score</code>, set the <code>noautolearn</code>
+and <code>nice</code> tflags, and set priority to <code>-100</code>.   In other words, equivalent
+to:
+</dd>
+<dd>
+<pre>
+  shortcircuit TEST on
+  priority TEST -100
+  score TEST -100
+  tflags TEST noautolearn nice</pre>
+</dd>
+<p></p></dl>
+<dt><strong><a name="item_nn">shortcircuit_spam_score n.nn (default: 100)</a></strong><br />
+</dt>
+<dd>
+When shortcircuit is used on a rule, and the shortcircuit classification type
+is set to <a href="#item_spam"><code>spam</code></a>, this value should be applied in place of the default score
+for that rule.
+</dd>
+<p></p>
+<dt><strong>shortcircuit_ham_score n.nn (default: -100)</strong><br />
+</dt>
+<dd>
+When shortcircuit is used on a rule, and the shortcircuit classification type
+is set to <a href="#item_ham"><code>ham</code></a>, this value should be applied in place of the default score
+for that rule.
+</dd>
+<p></p></dl>
+<p>
+</p>
+<hr />
+<h1><a name="tags">TAGS</a></h1>
+<p>The following tags are added to the set available for use in reports, headers
+etc.:</p>
+<pre>
+  _SC_              shortcircuit status (classification and rule name)
+  _SCRULE_          rulename that caused the shortcircuit 
+  _SCTYPE_          shortcircuit classification (&quot;spam&quot;, &quot;ham&quot;, &quot;default&quot;, &quot;none&quot;)</pre>
+<p>
+</p>
+<hr />
+<h1><a name="see_also">SEE ALSO</a></h1>
+<p><code>http://issues.apache.org/SpamAssassin/show_bug.cgi?id=3109</code></p>
+
+</body>
+
+</html>

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Shortcircuit.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Shortcircuit.txt?rev=1567225&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Shortcircuit.txt (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Shortcircuit.txt Tue Feb 11 17:26:49 2014
@@ -0,0 +1,95 @@
+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.
+
+    Recomended 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.
+
+        Recomended 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".
+
+        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 -100
+              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 the "noautolearn" tflag, and set
+            priority to -100. In other words, equivalent to:
+
+              shortcircuit TEST on
+              priority TEST -100
+              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 the "noautolearn" and "nice"
+            tflags, and set priority to -100. In other words, equivalent to:
+
+              shortcircuit TEST on
+              priority TEST -100
+              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
+    "http://issues.apache.org/SpamAssassin/show_bug.cgi?id=3109"
+

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_SpamCop.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_SpamCop.html?rev=1567225&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_SpamCop.html (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_SpamCop.html Tue Feb 11 17:26:49 2014
@@ -0,0 +1,80 @@
+<!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>Mail::SpamAssassin::Plugin::SpamCop - perform SpamCop reporting of messages</title>
+<link rev="made" href="mailto:root@twm2005-dev.thoughtworthy.com" />
+</head>
+
+<body style="background-color: white">
+
+<p><a name="__index__"></a></p>
+<!-- INDEX BEGIN -->
+
+<ul>
+
+	<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>
+<!-- INDEX END -->
+
+<hr />
+<p>
+</p>
+<h1><a name="name">NAME</a></h1>
+<p>Mail::SpamAssassin::Plugin::SpamCop - perform SpamCop reporting of messages</p>
+<p>
+</p>
+<hr />
+<h1><a name="synopsis">SYNOPSIS</a></h1>
+<pre>
+  loadplugin     Mail::SpamAssassin::Plugin::SpamCop</pre>
+<p>
+</p>
+<hr />
+<h1><a name="description">DESCRIPTION</a></h1>
+<p>SpamCop is a service for reporting spam.  SpamCop determines the origin
+of unwanted email and reports it to the relevant Internet service
+providers.  By reporting spam, you have a positive impact on the
+problem.  Reporting unsolicited email also helps feed spam filtering
+systems, including, but not limited to, the SpamCop blacklist used in
+SpamAssassin as a DNSBL.</p>
+<p>Note that spam reports sent by this plugin to SpamCop each include the
+entire spam message.</p>
+<p>See <a href="http://www.spamcop.net/">http://www.spamcop.net/</a> for more information about SpamCop.</p>
+<p>
+</p>
+<hr />
+<h1><a name="user_options">USER OPTIONS</a></h1>
+<dl>
+<dt><strong><a name="item_com">spamcop_from_address <a href="mailto:user@example.com">user@example.com</a>   (default: none)</a></strong><br />
+</dt>
+<dd>
+This address is used during manual reports to SpamCop as the From:
+address.  You can use your normal email address.  If this is not set, a
+guess will be used as the From: address in SpamCop reports.
+</dd>
+<p></p>
+<dt><strong>spamcop_to_address <a href="mailto:user@example.com">user@example.com</a>   (default: generic reporting address)</strong><br />
+</dt>
+<dd>
+Your customized SpamCop report submission address.  You need to obtain
+this address by registering at <code>http://www.spamcop.net/</code>.  If this is
+not set, SpamCop reports will go to a generic reporting address for
+SpamAssassin users and your reports will probably have less weight in
+the SpamCop system.
+</dd>
+<p></p>
+<dt><strong><a name="item_spamcop_max_report_size">spamcop_max_report_size   (default: 50)</a></strong><br />
+</dt>
+<dd>
+Messages larger than this size (in kilobytes) will be truncated in
+report messages sent to SpamCop.  The default setting is the maximum
+size that SpamCop will accept at the time of release.
+</dd>
+<p></p></dl>
+
+</body>
+
+</html>

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_SpamCop.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_SpamCop.txt?rev=1567225&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_SpamCop.txt (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_SpamCop.txt Tue Feb 11 17:26:49 2014
@@ -0,0 +1,38 @@
+NAME
+    Mail::SpamAssassin::Plugin::SpamCop - perform SpamCop reporting of
+    messages
+
+SYNOPSIS
+      loadplugin     Mail::SpamAssassin::Plugin::SpamCop
+
+DESCRIPTION
+    SpamCop is a service for reporting spam. SpamCop determines the origin
+    of unwanted email and reports it to the relevant Internet service
+    providers. By reporting spam, you have a positive impact on the problem.
+    Reporting unsolicited email also helps feed spam filtering systems,
+    including, but not limited to, the SpamCop blacklist used in
+    SpamAssassin as a DNSBL.
+
+    Note that spam reports sent by this plugin to SpamCop each include the
+    entire spam message.
+
+    See http://www.spamcop.net/ for more information about SpamCop.
+
+USER OPTIONS
+    spamcop_from_address user@example.com (default: none)
+        This address is used during manual reports to SpamCop as the From:
+        address. You can use your normal email address. If this is not set,
+        a guess will be used as the From: address in SpamCop reports.
+
+    spamcop_to_address user@example.com (default: generic reporting address)
+        Your customized SpamCop report submission address. You need to
+        obtain this address by registering at "http://www.spamcop.net/". If
+        this is not set, SpamCop reports will go to a generic reporting
+        address for SpamAssassin users and your reports will probably have
+        less weight in the SpamCop system.
+
+    spamcop_max_report_size (default: 50)
+        Messages larger than this size (in kilobytes) will be truncated in
+        report messages sent to SpamCop. The default setting is the maximum
+        size that SpamCop will accept at the time of release.
+

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Test.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Test.html?rev=1567225&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Test.html (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Test.html Tue Feb 11 17:26:49 2014
@@ -0,0 +1,42 @@
+<!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>Test - test plugin</title>
+<link rev="made" href="mailto:root@twm2005-dev.thoughtworthy.com" />
+</head>
+
+<body style="background-color: white">
+
+<p><a name="__index__"></a></p>
+<!-- INDEX BEGIN -->
+
+<ul>
+
+	<li><a href="#name">NAME</a></li>
+	<li><a href="#synopsis">SYNOPSIS</a></li>
+	<li><a href="#description">DESCRIPTION</a></li>
+</ul>
+<!-- INDEX END -->
+
+<hr />
+<p>
+</p>
+<h1><a name="name">NAME</a></h1>
+<p>Test - test plugin</p>
+<p>
+</p>
+<hr />
+<h1><a name="synopsis">SYNOPSIS</a></h1>
+<pre>
+  loadplugin     Mail::SpamAssassin::Plugin::Test
+  header         MY_TEST_PLUGIN eval:check_test_plugin()</pre>
+<p>
+</p>
+<hr />
+<h1><a name="description">DESCRIPTION</a></h1>
+<p>To try this plugin, write the above two lines in the synopsis to
+<code>/etc/mail/spamassassin/plugintest.cf</code>.</p>
+
+</body>
+
+</html>

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Test.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Test.txt?rev=1567225&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Test.txt (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_Test.txt Tue Feb 11 17:26:49 2014
@@ -0,0 +1,11 @@
+NAME
+    Test - test plugin
+
+SYNOPSIS
+      loadplugin     Mail::SpamAssassin::Plugin::Test
+      header         MY_TEST_PLUGIN eval:check_test_plugin()
+
+DESCRIPTION
+    To try this plugin, write the above two lines in the synopsis to
+    "/etc/mail/spamassassin/plugintest.cf".
+

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_TextCat.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_TextCat.html?rev=1567225&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_TextCat.html (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_TextCat.html Tue Feb 11 17:26:49 2014
@@ -0,0 +1,277 @@
+<!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>Mail::SpamAssassin::Plugin::TextCat - TextCat language guesser</title>
+<link rev="made" href="mailto:root@twm2005-dev.thoughtworthy.com" />
+</head>
+
+<body style="background-color: white">
+
+<p><a name="__index__"></a></p>
+<!-- INDEX BEGIN -->
+
+<ul>
+
+	<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>
+<!-- INDEX END -->
+
+<hr />
+<p>
+</p>
+<h1><a name="name">NAME</a></h1>
+<p>Mail::SpamAssassin::Plugin::TextCat - TextCat language guesser</p>
+<p>
+</p>
+<hr />
+<h1><a name="synopsis">SYNOPSIS</a></h1>
+<pre>
+  loadplugin     Mail::SpamAssassin::Plugin::TextCat</pre>
+<p>
+</p>
+<hr />
+<h1><a name="description">DESCRIPTION</a></h1>
+<p>This plugin will try to guess the language used in the message body text.</p>
+<p>You can use the ``ok_languages'' directive to set which languages are
+considered okay for incoming mail and if the guessed language is not okay,
+<code>UNWANTED_LANGUAGE_BODY</code> is triggered.</p>
+<p>It will always add the results to a ``X-Language'' name-value pair in the
+message metadata data structure. This may be useful as Bayes tokens and
+can also be used in rules for scoring. The results can also be added to
+marked-up messages using ``add_header'', with the _LANGUAGES_ tag. See
+<a href="/Mail/SpamAssassin/Conf.html">the Mail::SpamAssassin::Conf manpage</a> for details.</p>
+<p>Note: the language cannot always be recognized with sufficient confidence.
+In that case, no action is taken.</p>
+<p>
+</p>
+<hr />
+<h1><a name="user_options">USER OPTIONS</a></h1>
+<dl>
+<dt><strong><a name="item_ok_languages_xx__5b_yy_zz__2e_2e_2e__5d__28default">ok_languages xx [ yy zz ... ]		(default: all)</a></strong><br />
+</dt>
+<dd>
+This option is used to specify which languages are considered okay for
+incoming mail.  SpamAssassin will try to detect the language used in the
+message body text.
+</dd>
+<dd>
+<p>Note that the language cannot always be recognized with sufficient
+confidence. In that case, no action is taken.</p>
+</dd>
+<dd>
+<p>The rule <code>UNWANTED_LANGUAGE_BODY</code> is triggered if none of the languages
+detected are in the ``ok'' list. Note that this is the only effect of the
+``ok'' list. It does not act as a whitelist against any other form of spam
+scanning.</p>
+</dd>
+<dd>
+<p>In your configuration, you must use the two or three letter language
+specifier in lowercase, not the English name for the language.  You may
+also specify <code>all</code> if a desired language is not listed, or if you want to
+allow any language.  The default setting is <code>all</code>.</p>
+</dd>
+<dd>
+<p>Examples:</p>
+</dd>
+<dd>
+<pre>
+  ok_languages all         (allow all languages)
+  ok_languages en          (only allow English)
+  ok_languages en ja zh    (allow English, Japanese, and Chinese)</pre>
+</dd>
+<dd>
+<p>Note: if there are multiple ok_languages lines, only the last one is used.</p>
+</dd>
+<dd>
+<p>Select the languages to allow from the list below:</p>
+</dd>
+<dl>
+<dt><strong><a name="item_af__2d_afrikaans">af	- Afrikaans</a></strong><br />
+</dt>
+<dt><strong><a name="item_am__2d_amharic">am	- Amharic</a></strong><br />
+</dt>
+<dt><strong><a name="item_ar__2d_arabic">ar	- Arabic</a></strong><br />
+</dt>
+<dt><strong><a name="item_be__2d_byelorussian">be	- Byelorussian</a></strong><br />
+</dt>
+<dt><strong><a name="item_bg__2d_bulgarian">bg	- Bulgarian</a></strong><br />
+</dt>
+<dt><strong><a name="item_bs__2d_bosnian">bs	- Bosnian</a></strong><br />
+</dt>
+<dt><strong><a name="item_ca__2d_catalan">ca	- Catalan</a></strong><br />
+</dt>
+<dt><strong><a name="item_cs__2d_czech">cs	- Czech</a></strong><br />
+</dt>
+<dt><strong><a name="item_cy__2d_welsh">cy	- Welsh</a></strong><br />
+</dt>
+<dt><strong><a name="item_da__2d_danish">da	- Danish</a></strong><br />
+</dt>
+<dt><strong><a name="item_de__2d_german">de	- German</a></strong><br />
+</dt>
+<dt><strong><a name="item_el__2d_greek">el	- Greek</a></strong><br />
+</dt>
+<dt><strong><a name="item_en__2d_english">en	- English</a></strong><br />
+</dt>
+<dt><strong><a name="item_eo__2d_esperanto">eo	- Esperanto</a></strong><br />
+</dt>
+<dt><strong><a name="item_es__2d_spanish">es	- Spanish</a></strong><br />
+</dt>
+<dt><strong><a name="item_et__2d_estonian">et	- Estonian</a></strong><br />
+</dt>
+<dt><strong><a name="item_eu__2d_basque">eu	- Basque</a></strong><br />
+</dt>
+<dt><strong><a name="item_fa__2d_persian">fa	- Persian</a></strong><br />
+</dt>
+<dt><strong><a name="item_fi__2d_finnish">fi	- Finnish</a></strong><br />
+</dt>
+<dt><strong><a name="item_fr__2d_french">fr	- French</a></strong><br />
+</dt>
+<dt><strong><a name="item_fy__2d_frisian">fy	- Frisian</a></strong><br />
+</dt>
+<dt><strong><a name="item_ga__2d_irish_gaelic">ga	- Irish Gaelic</a></strong><br />
+</dt>
+<dt><strong><a name="item_gd__2d_scottish_gaelic">gd	- Scottish Gaelic</a></strong><br />
+</dt>
+<dt><strong><a name="item_he__2d_hebrew">he	- Hebrew</a></strong><br />
+</dt>
+<dt><strong><a name="item_hi__2d_hindi">hi	- Hindi</a></strong><br />
+</dt>
+<dt><strong><a name="item_hr__2d_croatian">hr	- Croatian</a></strong><br />
+</dt>
+<dt><strong><a name="item_hu__2d_hungarian">hu	- Hungarian</a></strong><br />
+</dt>
+<dt><strong><a name="item_hy__2d_armenian">hy	- Armenian</a></strong><br />
+</dt>
+<dt><strong><a name="item_id__2d_indonesian">id	- Indonesian</a></strong><br />
+</dt>
+<dt><strong><a name="item_is__2d_icelandic">is	- Icelandic</a></strong><br />
+</dt>
+<dt><strong><a name="item_it__2d_italian">it	- Italian</a></strong><br />
+</dt>
+<dt><strong><a name="item_ja__2d_japanese">ja	- Japanese</a></strong><br />
+</dt>
+<dt><strong><a name="item_ka__2d_georgian">ka	- Georgian</a></strong><br />
+</dt>
+<dt><strong><a name="item_ko__2d_korean">ko	- Korean</a></strong><br />
+</dt>
+<dt><strong><a name="item_la__2d_latin">la	- Latin</a></strong><br />
+</dt>
+<dt><strong><a name="item_lt__2d_lithuanian">lt	- Lithuanian</a></strong><br />
+</dt>
+<dt><strong><a name="item_lv__2d_latvian">lv	- Latvian</a></strong><br />
+</dt>
+<dt><strong><a name="item_mr__2d_marathi">mr	- Marathi</a></strong><br />
+</dt>
+<dt><strong><a name="item_ms__2d_malay">ms	- Malay</a></strong><br />
+</dt>
+<dt><strong><a name="item_ne__2d_nepali">ne	- Nepali</a></strong><br />
+</dt>
+<dt><strong><a name="item_nl__2d_dutch">nl	- Dutch</a></strong><br />
+</dt>
+<dt><strong><a name="item_no__2d_norwegian">no	- Norwegian</a></strong><br />
+</dt>
+<dt><strong><a name="item_pl__2d_polish">pl	- Polish</a></strong><br />
+</dt>
+<dt><strong><a name="item_pt__2d_portuguese">pt	- Portuguese</a></strong><br />
+</dt>
+<dt><strong><a name="item_qu__2d_quechua">qu	- Quechua</a></strong><br />
+</dt>
+<dt><strong><a name="item_rm__2d_rhaeto_2dromance">rm	- Rhaeto-Romance</a></strong><br />
+</dt>
+<dt><strong><a name="item_ro__2d_romanian">ro	- Romanian</a></strong><br />
+</dt>
+<dt><strong><a name="item_ru__2d_russian">ru	- Russian</a></strong><br />
+</dt>
+<dt><strong><a name="item_sa__2d_sanskrit">sa	- Sanskrit</a></strong><br />
+</dt>
+<dt><strong><a name="item_sco__2d_scots">sco	- Scots</a></strong><br />
+</dt>
+<dt><strong><a name="item_sk__2d_slovak">sk	- Slovak</a></strong><br />
+</dt>
+<dt><strong><a name="item_sl__2d_slovenian">sl	- Slovenian</a></strong><br />
+</dt>
+<dt><strong><a name="item_sq__2d_albanian">sq	- Albanian</a></strong><br />
+</dt>
+<dt><strong><a name="item_sr__2d_serbian">sr	- Serbian</a></strong><br />
+</dt>
+<dt><strong><a name="item_sv__2d_swedish">sv	- Swedish</a></strong><br />
+</dt>
+<dt><strong><a name="item_sw__2d_swahili">sw	- Swahili</a></strong><br />
+</dt>
+<dt><strong><a name="item_ta__2d_tamil">ta	- Tamil</a></strong><br />
+</dt>
+<dt><strong><a name="item_th__2d_thai">th	- Thai</a></strong><br />
+</dt>
+<dt><strong><a name="item_tl__2d_tagalog">tl	- Tagalog</a></strong><br />
+</dt>
+<dt><strong><a name="item_tr__2d_turkish">tr	- Turkish</a></strong><br />
+</dt>
+<dt><strong><a name="item_uk__2d_ukrainian">uk	- Ukrainian</a></strong><br />
+</dt>
+<dt><strong><a name="item_vi__2d_vietnamese">vi	- Vietnamese</a></strong><br />
+</dt>
+<dt><strong><a name="item_yi__2d_yiddish">yi	- Yiddish</a></strong><br />
+</dt>
+<dt><strong><a name="item_chinese">zh	- Chinese (both Traditional and Simplified)</a></strong><br />
+</dt>
+<dt><strong>zh.big5	- Chinese (Traditional only)</strong><br />
+</dt>
+<dt><strong>zh.gb2312	- Chinese (Simplified only)</strong><br />
+</dt>
+</dl>
+<p></p>
+<dt><strong><a name="item_inactive_languages_xx__5b_yy_zz__2e_2e_2e__5d__28d">inactive_languages xx [ yy zz ... ]		(default: see below)</a></strong><br />
+</dt>
+<dd>
+This option is used to specify which languages will not be considered
+when trying to guess the language.  For performance reasons, supported
+languages that have fewer than about 5 million speakers are disabled by
+default.  Note that listing a language in <code>ok_languages</code> automatically
+enables it for that user.
+</dd>
+<dd>
+<p>The default setting is:</p>
+</dd>
+<dl>
+<dt><strong><a name="item_bs_cy_eo_et_eu_fy_ga_gd_is_la_lt_lv_rm_sa_sco_sl_y">bs cy eo et eu fy ga gd is la lt lv rm sa sco sl yi</a></strong><br />
+</dt>
+</dl>
+<p>That list is Bosnian, Welsh, Esperanto, Estonian, Basque, Frisian, Irish
+Gaelic, Scottish Gaelic, Icelandic, Latin, Lithuanian, Latvian,
+Rhaeto-Romance, Sanskrit, Scots, Slovenian, and Yiddish.</p>
+<dt><strong><a name="item_n">textcat_max_languages N (default: 3)</a></strong><br />
+</dt>
+<dd>
+The maximum number of languages any one message can simultaneously match
+before its classification is considered unknown.
+</dd>
+<p></p>
+<dt><strong>textcat_optimal_ngrams N (default: 0)</strong><br />
+</dt>
+<dd>
+If the number of ngrams is lower than this number then they will be removed.  This
+can be used to speed up the program for longer inputs.  For shorter inputs, this
+should be set to 0.
+</dd>
+<p></p>
+<dt><strong>textcat_max_ngrams N (default: 400)</strong><br />
+</dt>
+<dd>
+The maximum number of ngrams that should be compared with each of the languages
+models (note that each of those models is used completely).
+</dd>
+<p></p>
+<dt><strong>textcat_acceptable_score N (default: 1.02)</strong><br />
+</dt>
+<dd>
+Include any language that scores at least <code>textcat_acceptable_score</code> in the
+returned list of languages.
+</dd>
+<p></p></dl>
+
+</body>
+
+</html>

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_TextCat.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_TextCat.txt?rev=1567225&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_TextCat.txt (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_TextCat.txt Tue Feb 11 17:26:49 2014
@@ -0,0 +1,155 @@
+NAME
+    Mail::SpamAssassin::Plugin::TextCat - TextCat language guesser
+
+SYNOPSIS
+      loadplugin     Mail::SpamAssassin::Plugin::TextCat
+
+DESCRIPTION
+    This plugin will try to guess the language used in the message body
+    text.
+
+    You can use the "ok_languages" directive to set which languages are
+    considered okay for incoming mail and if the guessed language is not
+    okay, "UNWANTED_LANGUAGE_BODY" is triggered.
+
+    It will always add the results to a "X-Language" name-value pair in the
+    message metadata data structure. This may be useful as Bayes tokens and
+    can also be used in rules for scoring. The results can also be added to
+    marked-up messages using "add_header", with the _LANGUAGES_ tag. See
+    Mail::SpamAssassin::Conf for details.
+
+    Note: the language cannot always be recognized with sufficient
+    confidence. In that case, no action is taken.
+
+USER OPTIONS
+    ok_languages xx [ yy zz ... ] (default: all)
+        This option is used to specify which languages are considered okay
+        for incoming mail. SpamAssassin will try to detect the language used
+        in the message body text.
+
+        Note that the language cannot always be recognized with sufficient
+        confidence. In that case, no action is taken.
+
+        The rule "UNWANTED_LANGUAGE_BODY" is triggered if none of the
+        languages detected are in the "ok" list. Note that this is the only
+        effect of the "ok" list. It does not act as a whitelist against any
+        other form of spam scanning.
+
+        In your configuration, you must use the two or three letter language
+        specifier in lowercase, not the English name for the language. You
+        may also specify "all" if a desired language is not listed, or if
+        you want to allow any language. The default setting is "all".
+
+        Examples:
+
+          ok_languages all         (allow all languages)
+          ok_languages en          (only allow English)
+          ok_languages en ja zh    (allow English, Japanese, and Chinese)
+
+        Note: if there are multiple ok_languages lines, only the last one is
+        used.
+
+        Select the languages to allow from the list below:
+
+        af - Afrikaans
+        am - Amharic
+        ar - Arabic
+        be - Byelorussian
+        bg - Bulgarian
+        bs - Bosnian
+        ca - Catalan
+        cs - Czech
+        cy - Welsh
+        da - Danish
+        de - German
+        el - Greek
+        en - English
+        eo - Esperanto
+        es - Spanish
+        et - Estonian
+        eu - Basque
+        fa - Persian
+        fi - Finnish
+        fr - French
+        fy - Frisian
+        ga - Irish Gaelic
+        gd - Scottish Gaelic
+        he - Hebrew
+        hi - Hindi
+        hr - Croatian
+        hu - Hungarian
+        hy - Armenian
+        id - Indonesian
+        is - Icelandic
+        it - Italian
+        ja - Japanese
+        ka - Georgian
+        ko - Korean
+        la - Latin
+        lt - Lithuanian
+        lv - Latvian
+        mr - Marathi
+        ms - Malay
+        ne - Nepali
+        nl - Dutch
+        no - Norwegian
+        pl - Polish
+        pt - Portuguese
+        qu - Quechua
+        rm - Rhaeto-Romance
+        ro - Romanian
+        ru - Russian
+        sa - Sanskrit
+        sco - Scots
+        sk - Slovak
+        sl - Slovenian
+        sq - Albanian
+        sr - Serbian
+        sv - Swedish
+        sw - Swahili
+        ta - Tamil
+        th - Thai
+        tl - Tagalog
+        tr - Turkish
+        uk - Ukrainian
+        vi - Vietnamese
+        yi - Yiddish
+        zh - Chinese (both Traditional and Simplified)
+        zh.big5 - Chinese (Traditional only)
+        zh.gb2312 - Chinese (Simplified only)
+
+
+
+    inactive_languages xx [ yy zz ... ] (default: see below)
+        This option is used to specify which languages will not be
+        considered when trying to guess the language. For performance
+        reasons, supported languages that have fewer than about 5 million
+        speakers are disabled by default. Note that listing a language in
+        "ok_languages" automatically enables it for that user.
+
+        The default setting is:
+
+        bs cy eo et eu fy ga gd is la lt lv rm sa sco sl yi
+
+        That list is Bosnian, Welsh, Esperanto, Estonian, Basque, Frisian,
+        Irish Gaelic, Scottish Gaelic, Icelandic, Latin, Lithuanian,
+        Latvian, Rhaeto-Romance, Sanskrit, Scots, Slovenian, and Yiddish.
+
+    textcat_max_languages N (default: 3)
+        The maximum number of languages any one message can simultaneously
+        match before its classification is considered unknown.
+
+    textcat_optimal_ngrams N (default: 0)
+        If the number of ngrams is lower than this number then they will be
+        removed. This can be used to speed up the program for longer inputs.
+        For shorter inputs, this should be set to 0.
+
+    textcat_max_ngrams N (default: 400)
+        The maximum number of ngrams that should be compared with each of
+        the languages models (note that each of those models is used
+        completely).
+
+    textcat_acceptable_score N (default: 1.02)
+        Include any language that scores at least "textcat_acceptable_score"
+        in the returned list of languages.
+

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_URIDNSBL.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_URIDNSBL.html?rev=1567225&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_URIDNSBL.html (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_URIDNSBL.html Tue Feb 11 17:26:49 2014
@@ -0,0 +1,364 @@
+<!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>URIDNSBL - look up URLs against DNS blocklists</title>
+<link rev="made" href="mailto:root@twm2005-dev.thoughtworthy.com" />
+</head>
+
+<body style="background-color: white">
+
+<p><a name="__index__"></a></p>
+<!-- INDEX BEGIN -->
+
+<ul>
+
+	<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_and_privileged_settings">RULE DEFINITIONS AND PRIVILEGED SETTINGS</a></li>
+	<li><a href="#administrator_settings">ADMINISTRATOR SETTINGS</a></li>
+	<li><a href="#notes">NOTES</a></li>
+</ul>
+<!-- INDEX END -->
+
+<hr />
+<p>
+</p>
+<h1><a name="name">NAME</a></h1>
+<p>URIDNSBL - look up URLs against DNS blocklists</p>
+<p>
+</p>
+<hr />
+<h1><a name="synopsis">SYNOPSIS</a></h1>
+<pre>
+  loadplugin    Mail::SpamAssassin::Plugin::URIDNSBL
+  uridnsbl      URIBL_SBLXBL    sbl-xbl.spamhaus.org.   TXT</pre>
+<p>
+</p>
+<hr />
+<h1><a name="description">DESCRIPTION</a></h1>
+<p>This works by analysing message text and HTML for URLs, extracting host
+names from those, then querying various DNS blocklists for either:
+IP addresses of these hosts (uridnsbl,a) or their nameservers (uridnsbl,ns),
+or domain names of these hosts (urirhsbl), or domain names of their
+nameservers (urinsrhsbl, urifullnsrhsbl).</p>
+<p>
+</p>
+<hr />
+<h1><a name="user_settings">USER SETTINGS</a></h1>
+<dl>
+<dt><strong><a name="item_skip_uribl_checks">skip_uribl_checks ( 0 | 1 )   (default: 0)</a></strong><br />
+</dt>
+<dd>
+Turning on the skip_uribl_checks setting will disable the URIDNSBL plugin.
+</dd>
+<dd>
+<p>By default, SpamAssassin will run URI DNSBL checks. Individual URI blocklists
+may be disabled selectively by setting a score of a corresponding rule to 0
+or through the uridnsbl_skip_domain parameter.</p>
+</dd>
+<dd>
+<p>See also a related configuration parameter skip_rbl_checks,
+which controls the DNSEval plugin (documented in the Conf man page).</p>
+</dd>
+<p></p></dl>
+<dl>
+<dt><strong><a name="item_uridnsbl_skip_domain_domain1_domain2__2e_2e_2e">uridnsbl_skip_domain domain1 domain2 ...</a></strong><br />
+</dt>
+<dd>
+Specify a domain, or a number of domains, which should be skipped for the
+URIBL checks.  This is very useful to specify very common domains which are
+not going to be listed in URIBLs.
+</dd>
+<p></p></dl>
+<dl>
+<dt><strong><a name="item_clear_uridnsbl_skip_domain__5bdomain1_domain2__2e_">clear_uridnsbl_skip_domain [domain1 domain2 ...]</a></strong><br />
+</dt>
+<dd>
+If no argument is given, then clears the entire list of domains declared
+by <em>uridnsbl_skip_domain</em> configuration directives so far. Any subsequent
+<em>uridnsbl_skip_domain</em> directives will start creating a new list of skip
+domains.
+</dd>
+<dd>
+<p>When given a list of domains as arguments, only the specified domains
+are removed from the list of skipped domains.</p>
+</dd>
+<p></p></dl>
+<p>
+</p>
+<hr />
+<h1><a name="rule_definitions_and_privileged_settings">RULE DEFINITIONS AND PRIVILEGED SETTINGS</a></h1>
+<dl>
+<dt><strong><a name="item_uridnsbl_name_of_rule_dnsbl_zone_lookuptype">uridnsbl NAME_OF_RULE dnsbl_zone lookuptype</a></strong><br />
+</dt>
+<dd>
+Specify a lookup.  <code>NAME_OF_RULE</code> is the name of the rule to be
+used, <code>dnsbl_zone</code> is the zone to look up IPs in, and <code>lookuptype</code>
+is the type of lookup (<strong>TXT</strong> or <strong>A</strong>).   Note that you must also
+define a body-eval rule calling <code>check_uridnsbl()</code> to use this.
+</dd>
+<dd>
+<p>This works by collecting domain names from URLs and querying DNS
+blocklists with an IP address of host names found in URLs or with
+IP addresses of their name servers, according to tflags as follows.</p>
+</dd>
+<dd>
+<p>If the corresponding body rule has a tflag 'a', the DNS blocklist will
+be queried with an IP address of a host found in URLs.</p>
+</dd>
+<dd>
+<p>If the corresponding body rule has a tflag 'ns', DNS will be queried
+for name servers (NS records) of a domain name found in URLs, then
+these name server names will be resolved to their IP addresses, which
+in turn will be sent to DNS blocklist.</p>
+</dd>
+<dd>
+<p>Tflags directive may specify either 'a' or 'ns' or both flags. In absence
+of any of these two flags, a default is a 'ns', which is compatible with
+pre-3.4 versions of SpamAssassin.</p>
+</dd>
+<dd>
+<p>The choice of tflags must correspond to the policy and expected use of
+each DNS blocklist and is normally not a local decision. As an example,
+a blocklist expecting queries resulting from an 'a' tflag is a
+``black_a.txt'' ( <a href="http://www.uribl.com/datasets.shtml">http://www.uribl.com/datasets.shtml</a> ).</p>
+</dd>
+<dd>
+<p>Example:</p>
+</dd>
+<dd>
+<pre>
+ uridnsbl        URIBL_SBLXBL    sbl-xbl.spamhaus.org.   TXT
+ body            URIBL_SBLXBL    eval:check_uridnsbl('URIBL_SBLXBL')
+ describe        URIBL_SBLXBL    Contains a URL listed in the SBL/XBL blocklist
+ tflags          URIBL_SBLXBL    net ns</pre>
+</dd>
+<p></p>
+<dt><strong><a name="item_uridnssub_name_of_rule_dnsbl_zone_lookuptype_subte">uridnssub NAME_OF_RULE dnsbl_zone lookuptype subtest</a></strong><br />
+</dt>
+<dd>
+Specify a DNSBL-style domain lookup with a sub-test.  <code>NAME_OF_RULE</code> is the
+name of the rule to be used, <code>dnsbl_zone</code> is the zone to look up IPs in,
+and <code>lookuptype</code> is the type of lookup (<strong>TXT</strong> or <strong>A</strong>).
+</dd>
+<dd>
+<p>Tflags 'ns' and 'a' on a corresponding body rule are recognized and have
+the same meaning as in the uridnsbl directive.</p>
+</dd>
+<dd>
+<p><code>subtest</code> is a sub-test to run against the returned data.  The sub-test may
+be in one of the following forms: m, n1-n2, or n/m, where n,n1,n2,m can be
+any of: decimal digits, 0x followed by up to 8 hexadecimal digits, or an IPv4
+address in quad-dot form. The 'A' records (IPv4 dotted address) as returned
+by DNSBLs lookups are converted into a numerical form (r) and checked against
+the specified sub-test as follows:
+for a range n1-n2 the following must be true: (r &gt;= n1 &amp;&amp; r &lt;= n2);
+for a n/m form the following must be true: (r &amp; m) == (n &amp; m);
+for a single value in quad-dot form the following must be true: r == n;
+for a single decimal or hex form the following must be true:
+  ((r &amp; n) != 0) &amp;&amp; ((r &amp; 0xff000000) == 0x7f000000), i.e. within 127.0.0.0/8</p>
+</dd>
+<dd>
+<p>Some typical examples of a sub-test 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>
+</dd>
+<dd>
+<p>Note that, as with <code>uridnsbl</code>, you must also define a body-eval rule calling
+<code>check_uridnsbl()</code> to use this.</p>
+</dd>
+<dd>
+<p>Example:</p>
+</dd>
+<dd>
+<pre>
+  uridnssub   URIBL_DNSBL_4    dnsbl.example.org.   A    127.0.0.4
+  uridnssub   URIBL_DNSBL_8    dnsbl.example.org.   A    8</pre>
+</dd>
+<p></p>
+<dt><strong><a name="item_urirhsbl_name_of_rule_rhsbl_zone_lookuptype">urirhsbl NAME_OF_RULE rhsbl_zone lookuptype</a></strong><br />
+</dt>
+<dd>
+Specify a RHSBL-style domain lookup.  <code>NAME_OF_RULE</code> is the name of the rule
+to be used, <code>rhsbl_zone</code> is the zone to look up domain names in, and
+<code>lookuptype</code> is the type of lookup (<strong>TXT</strong> or <strong>A</strong>).   Note that you must also
+define a body-eval rule calling <code>check_uridnsbl()</code> to use this.
+</dd>
+<dd>
+<p>An RHSBL zone is one where the domain name is looked up, as a string; e.g. a
+URI using the domain <code>foo.com</code> will cause a lookup of
+<code>foo.com.uriblzone.net</code>.  Note that hostnames are stripped from the domain
+used in the URIBL lookup, so the domain <code>foo.bar.com</code> will look up
+<code>bar.com.uriblzone.net</code>, and <code>foo.bar.co.uk</code> will look up
+<code>bar.co.uk.uriblzone.net</code>.</p>
+</dd>
+<dd>
+<p>If an URI consists of an IP address instead of a hostname, the IP address is
+looked up (using the standard reversed quads method) in each <code>rhsbl_zone</code>.</p>
+</dd>
+<dd>
+<p>Example:</p>
+</dd>
+<dd>
+<pre>
+  urirhsbl        URIBL_RHSBL    rhsbl.example.org.   TXT</pre>
+</dd>
+<p></p>
+<dt><strong><a name="item_urirhssub_name_of_rule_rhsbl_zone_lookuptype_subte">urirhssub NAME_OF_RULE rhsbl_zone lookuptype subtest</a></strong><br />
+</dt>
+<dd>
+Specify a RHSBL-style domain lookup with a sub-test.  <code>NAME_OF_RULE</code> is the
+name of the rule to be used, <code>rhsbl_zone</code> is the zone to look up domain names
+in, and <code>lookuptype</code> is the type of lookup (<strong>TXT</strong> or <strong>A</strong>).
+</dd>
+<dd>
+<p><code>subtest</code> is a sub-test to run against the returned data.  The sub-test may
+be in one of the following forms: m, n1-n2, or n/m, where n,n1,n2,m can be
+any of: decimal digits, 0x followed by up to 8 hexadecimal digits, or an IPv4
+address in quad-dot form. The 'A' records (IPv4 dotted address) as returned
+by DNSBLs lookups are converted into a numerical form (r) and checked against
+the specified sub-test as follows:
+for a range n1-n2 the following must be true: (r &gt;= n1 &amp;&amp; r &lt;= n2);
+for a n/m form the following must be true: (r &amp; m) == (n &amp; m);
+for a single value in quad-dot form the following must be true: r == n;
+for a single decimal or hex form the following must be true:
+  ((r &amp; n) != 0) &amp;&amp; ((r &amp; 0xff000000) == 0x7f000000), i.e. within 127.0.0.0/8</p>
+</dd>
+<dd>
+<p>Some typical examples of a sub-test are: 127.0.1.2, 127.0.1.20-127.0.1.39,
+127.2.3.0/255.255.255.0, 0.0.0.16/0.0.0.16, 0x10/0x10, 16, 0x10 .</p>
+</dd>
+<dd>
+<p>Note that, as with <code>urirhsbl</code>, you must also define a body-eval rule calling
+<code>check_uridnsbl()</code> to use this.</p>
+</dd>
+<dd>
+<p>Example:</p>
+</dd>
+<dd>
+<pre>
+  urirhssub   URIBL_RHSBL_4    rhsbl.example.org.   A    127.0.0.4
+  urirhssub   URIBL_RHSBL_8    rhsbl.example.org.   A    8</pre>
+</dd>
+<p></p>
+<dt><strong><a name="item_urinsrhsbl_name_of_rule_rhsbl_zone_lookuptype">urinsrhsbl NAME_OF_RULE rhsbl_zone lookuptype</a></strong><br />
+</dt>
+<dd>
+Perform a RHSBL-style domain lookup against the contents of the NS records
+for each URI.  In other words, a URI using the domain <code>foo.com</code> will cause
+an NS lookup to take place; assuming that domain has an NS of <code>ns0.bar.com</code>,
+that will cause a lookup of <code>bar.com.uriblzone.net</code>.  Note that hostnames
+are stripped from both the domain used in the URI, and the domain in the
+lookup.
+</dd>
+<dd>
+<p><code>NAME_OF_RULE</code> is the name of the rule to be used, <code>rhsbl_zone</code> is the zone
+to look up domain names in, and <code>lookuptype</code> is the type of lookup (<strong>TXT</strong> or
+<strong>A</strong>).</p>
+</dd>
+<dd>
+<p>Note that, as with <code>urirhsbl</code>, you must also define a body-eval rule calling
+<code>check_uridnsbl()</code> to use this.</p>
+</dd>
+<p></p>
+<dt><strong><a name="item_urinsrhssub_name_of_rule_rhsbl_zone_lookuptype_sub">urinsrhssub NAME_OF_RULE rhsbl_zone lookuptype subtest</a></strong><br />
+</dt>
+<dd>
+Specify a RHSBL-style domain-NS lookup, as above, with a sub-test.
+<code>NAME_OF_RULE</code> is the name of the rule to be used, <code>rhsbl_zone</code> is the zone
+to look up domain names in, and <code>lookuptype</code> is the type of lookup (<strong>TXT</strong> or
+<strong>A</strong>).  <code>subtest</code> is the sub-test to run against the returned data; see
+&lt;urirhssub&gt;.
+</dd>
+<dd>
+<p>Note that, as with <code>urirhsbl</code>, you must also define a body-eval rule calling
+<code>check_uridnsbl()</code> to use this.</p>
+</dd>
+<p></p>
+<dt><strong><a name="item_urifullnsrhsbl_name_of_rule_rhsbl_zone_lookuptype">urifullnsrhsbl NAME_OF_RULE rhsbl_zone lookuptype</a></strong><br />
+</dt>
+<dd>
+Perform a RHSBL-style domain lookup against the contents of the NS records for
+each URI.  In other words, a URI using the domain <code>foo.com</code> will cause an NS
+lookup to take place; assuming that domain has an NS of <code>ns0.bar.com</code>, that
+will cause a lookup of <code>ns0.bar.com.uriblzone.net</code>.  Note that hostnames are
+stripped from the domain used in the URI.
+</dd>
+<dd>
+<p><code>NAME_OF_RULE</code> is the name of the rule to be used, <code>rhsbl_zone</code> is the zone
+to look up domain names in, and <code>lookuptype</code> is the type of lookup (<strong>TXT</strong> or
+<strong>A</strong>).</p>
+</dd>
+<dd>
+<p>Note that, as with <code>urirhsbl</code>, you must also define a body-eval rule calling
+<code>check_uridnsbl()</code> to use this.</p>
+</dd>
+<p></p>
+<dt><strong><a name="item_urifullnsrhssub_name_of_rule_rhsbl_zone_lookuptype">urifullnsrhssub NAME_OF_RULE rhsbl_zone lookuptype subtest</a></strong><br />
+</dt>
+<dd>
+Specify a RHSBL-style domain-NS lookup, as above, with a sub-test.
+<code>NAME_OF_RULE</code> is the name of the rule to be used, <code>rhsbl_zone</code> is the zone
+to look up domain names in, and <code>lookuptype</code> is the type of lookup (<strong>TXT</strong> or
+<strong>A</strong>).  <code>subtest</code> is the sub-test to run against the returned data; see
+&lt;urirhssub&gt;.
+</dd>
+<dd>
+<p>Note that, as with <code>urirhsbl</code>, you must also define a body-eval rule calling
+<code>check_uridnsbl()</code> to use this.</p>
+</dd>
+<p></p>
+<dt><strong><a name="item_tflags_name_of_rule_ips_only">tflags NAME_OF_RULE ips_only</a></strong><br />
+</dt>
+<dd>
+Only URIs containing IP addresses as the ``host'' component will be matched
+against the named ``urirhsbl''/``urirhssub'' rule.
+</dd>
+<p></p>
+<dt><strong><a name="item_tflags_name_of_rule_domains_only">tflags NAME_OF_RULE domains_only</a></strong><br />
+</dt>
+<dd>
+Only URIs containing a non-IP-address ``host'' component will be matched against
+the named ``urirhsbl''/``urirhssub'' rule.
+</dd>
+<p></p>
+<dt><strong><a name="item_tflags_name_of_rule_ns">tflags NAME_OF_RULE ns</a></strong><br />
+</dt>
+<dd>
+The 'ns' flag may be applied to rules corresponding to uridnsbl and uridnssub
+directives. Host names from URLs will be mapped to their name server IP
+addresses (a NS lookup followed by an A lookup), which in turn will be sent
+to blocklists. This is a default when neither 'a' nor 'ns' flags are specified.
+</dd>
+<p></p>
+<dt><strong><a name="item_tflags_name_of_rule_a">tflags NAME_OF_RULE a</a></strong><br />
+</dt>
+<dd>
+The 'a' flag may be applied to rules corresponding to uridnsbl and uridnssub
+directives. Host names from URLs will be mapped to their IP addresses, which
+will be sent to blocklists. When both 'ns' and 'a' flags are specified,
+both queries will be performed.
+</dd>
+<p></p></dl>
+<p>
+</p>
+<hr />
+<h1><a name="administrator_settings">ADMINISTRATOR SETTINGS</a></h1>
+<dl>
+<dt><strong><a name="item_n">uridnsbl_max_domains N		(default: 20)</a></strong><br />
+</dt>
+<dd>
+The maximum number of domains to look up.
+</dd>
+<p></p></dl>
+<p>
+</p>
+<hr />
+<h1><a name="notes">NOTES</a></h1>
+<p>The <code>uridnsbl_timeout</code> option has been obsoleted by the <code>rbl_timeout</code>
+option.  See the <code>Mail::SpamAssassin::Conf</code> POD for details on <code>rbl_timeout</code>.</p>
+
+</body>
+
+</html>

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_URIDNSBL.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_URIDNSBL.txt?rev=1567225&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_URIDNSBL.txt (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_URIDNSBL.txt Tue Feb 11 17:26:49 2014
@@ -0,0 +1,242 @@
+NAME
+    URIDNSBL - look up URLs against DNS blocklists
+
+SYNOPSIS
+      loadplugin    Mail::SpamAssassin::Plugin::URIDNSBL
+      uridnsbl      URIBL_SBLXBL    sbl-xbl.spamhaus.org.   TXT
+
+DESCRIPTION
+    This works by analysing message text and HTML for URLs, extracting host
+    names from those, then querying various DNS blocklists for either: IP
+    addresses of these hosts (uridnsbl,a) or their nameservers
+    (uridnsbl,ns), or domain names of these hosts (urirhsbl), or domain
+    names of their nameservers (urinsrhsbl, urifullnsrhsbl).
+
+USER SETTINGS
+    skip_uribl_checks ( 0 | 1 ) (default: 0)
+        Turning on the skip_uribl_checks setting will disable the URIDNSBL
+        plugin.
+
+        By default, SpamAssassin will run URI DNSBL checks. Individual URI
+        blocklists may be disabled selectively by setting a score of a
+        corresponding rule to 0 or through the uridnsbl_skip_domain
+        parameter.
+
+        See also a related configuration parameter skip_rbl_checks, which
+        controls the DNSEval plugin (documented in the Conf man page).
+
+    uridnsbl_skip_domain domain1 domain2 ...
+        Specify a domain, or a number of domains, which should be skipped
+        for the URIBL checks. This is very useful to specify very common
+        domains which are not going to be listed in URIBLs.
+
+    clear_uridnsbl_skip_domain [domain1 domain2 ...]
+        If no argument is given, then clears the entire list of domains
+        declared by *uridnsbl_skip_domain* configuration directives so far.
+        Any subsequent *uridnsbl_skip_domain* directives will start creating
+        a new list of skip domains.
+
+        When given a list of domains as arguments, only the specified
+        domains are removed from the list of skipped domains.
+
+RULE DEFINITIONS AND PRIVILEGED SETTINGS
+    uridnsbl NAME_OF_RULE dnsbl_zone lookuptype
+        Specify a lookup. "NAME_OF_RULE" is the name of the rule to be used,
+        "dnsbl_zone" is the zone to look up IPs in, and "lookuptype" is the
+        type of lookup (TXT or A). Note that you must also define a
+        body-eval rule calling "check_uridnsbl()" to use this.
+
+        This works by collecting domain names from URLs and querying DNS
+        blocklists with an IP address of host names found in URLs or with IP
+        addresses of their name servers, according to tflags as follows.
+
+        If the corresponding body rule has a tflag 'a', the DNS blocklist
+        will be queried with an IP address of a host found in URLs.
+
+        If the corresponding body rule has a tflag 'ns', DNS will be queried
+        for name servers (NS records) of a domain name found in URLs, then
+        these name server names will be resolved to their IP addresses,
+        which in turn will be sent to DNS blocklist.
+
+        Tflags directive may specify either 'a' or 'ns' or both flags. In
+        absence of any of these two flags, a default is a 'ns', which is
+        compatible with pre-3.4 versions of SpamAssassin.
+
+        The choice of tflags must correspond to the policy and expected use
+        of each DNS blocklist and is normally not a local decision. As an
+        example, a blocklist expecting queries resulting from an 'a' tflag
+        is a "black_a.txt" ( http://www.uribl.com/datasets.shtml ).
+
+        Example:
+
+         uridnsbl        URIBL_SBLXBL    sbl-xbl.spamhaus.org.   TXT
+         body            URIBL_SBLXBL    eval:check_uridnsbl('URIBL_SBLXBL')
+         describe        URIBL_SBLXBL    Contains a URL listed in the SBL/XBL blocklist
+         tflags          URIBL_SBLXBL    net ns
+
+    uridnssub NAME_OF_RULE dnsbl_zone lookuptype subtest
+        Specify a DNSBL-style domain lookup with a sub-test. "NAME_OF_RULE"
+        is the name of the rule to be used, "dnsbl_zone" is the zone to look
+        up IPs in, and "lookuptype" is the type of lookup (TXT or A).
+
+        Tflags 'ns' and 'a' on a corresponding body rule are recognized and
+        have the same meaning as in the uridnsbl directive.
+
+        "subtest" is a sub-test to run against the returned data. The
+        sub-test may be in one of the following forms: m, n1-n2, or n/m,
+        where n,n1,n2,m can be any of: decimal digits, 0x followed by up to
+        8 hexadecimal digits, or an IPv4 address in quad-dot form. The 'A'
+        records (IPv4 dotted address) as returned by DNSBLs lookups are
+        converted into a numerical form (r) and checked against the
+        specified sub-test as follows: for a range n1-n2 the following must
+        be true: (r >= n1 && r <= n2); for a n/m form the following must be
+        true: (r & m) == (n & m); for a single value in quad-dot form the
+        following must be true: r == n; for a single decimal or hex form the
+        following must be true: ((r & n) != 0) && ((r & 0xff000000) ==
+        0x7f000000), i.e. within 127.0.0.0/8
+
+        Some typical examples of a sub-test 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 .
+
+        Note that, as with "uridnsbl", you must also define a body-eval rule
+        calling "check_uridnsbl()" to use this.
+
+        Example:
+
+          uridnssub   URIBL_DNSBL_4    dnsbl.example.org.   A    127.0.0.4
+          uridnssub   URIBL_DNSBL_8    dnsbl.example.org.   A    8
+
+    urirhsbl NAME_OF_RULE rhsbl_zone lookuptype
+        Specify a RHSBL-style domain lookup. "NAME_OF_RULE" is the name of
+        the rule to be used, "rhsbl_zone" is the zone to look up domain
+        names in, and "lookuptype" is the type of lookup (TXT or A). Note
+        that you must also define a body-eval rule calling
+        "check_uridnsbl()" to use this.
+
+        An RHSBL zone is one where the domain name is looked up, as a
+        string; e.g. a URI using the domain "foo.com" will cause a lookup of
+        "foo.com.uriblzone.net". Note that hostnames are stripped from the
+        domain used in the URIBL lookup, so the domain "foo.bar.com" will
+        look up "bar.com.uriblzone.net", and "foo.bar.co.uk" will look up
+        "bar.co.uk.uriblzone.net".
+
+        If an URI consists of an IP address instead of a hostname, the IP
+        address is looked up (using the standard reversed quads method) in
+        each "rhsbl_zone".
+
+        Example:
+
+          urirhsbl        URIBL_RHSBL    rhsbl.example.org.   TXT
+
+    urirhssub NAME_OF_RULE rhsbl_zone lookuptype subtest
+        Specify a RHSBL-style domain lookup with a sub-test. "NAME_OF_RULE"
+        is the name of the rule to be used, "rhsbl_zone" is the zone to look
+        up domain names in, and "lookuptype" is the type of lookup (TXT or
+        A).
+
+        "subtest" is a sub-test to run against the returned data. The
+        sub-test may be in one of the following forms: m, n1-n2, or n/m,
+        where n,n1,n2,m can be any of: decimal digits, 0x followed by up to
+        8 hexadecimal digits, or an IPv4 address in quad-dot form. The 'A'
+        records (IPv4 dotted address) as returned by DNSBLs lookups are
+        converted into a numerical form (r) and checked against the
+        specified sub-test as follows: for a range n1-n2 the following must
+        be true: (r >= n1 && r <= n2); for a n/m form the following must be
+        true: (r & m) == (n & m); for a single value in quad-dot form the
+        following must be true: r == n; for a single decimal or hex form the
+        following must be true: ((r & n) != 0) && ((r & 0xff000000) ==
+        0x7f000000), i.e. within 127.0.0.0/8
+
+        Some typical examples of a sub-test are: 127.0.1.2,
+        127.0.1.20-127.0.1.39, 127.2.3.0/255.255.255.0, 0.0.0.16/0.0.0.16,
+        0x10/0x10, 16, 0x10 .
+
+        Note that, as with "urirhsbl", you must also define a body-eval rule
+        calling "check_uridnsbl()" to use this.
+
+        Example:
+
+          urirhssub   URIBL_RHSBL_4    rhsbl.example.org.   A    127.0.0.4
+          urirhssub   URIBL_RHSBL_8    rhsbl.example.org.   A    8
+
+    urinsrhsbl NAME_OF_RULE rhsbl_zone lookuptype
+        Perform a RHSBL-style domain lookup against the contents of the NS
+        records for each URI. In other words, a URI using the domain
+        "foo.com" will cause an NS lookup to take place; assuming that
+        domain has an NS of "ns0.bar.com", that will cause a lookup of
+        "bar.com.uriblzone.net". Note that hostnames are stripped from both
+        the domain used in the URI, and the domain in the lookup.
+
+        "NAME_OF_RULE" is the name of the rule to be used, "rhsbl_zone" is
+        the zone to look up domain names in, and "lookuptype" is the type of
+        lookup (TXT or A).
+
+        Note that, as with "urirhsbl", you must also define a body-eval rule
+        calling "check_uridnsbl()" to use this.
+
+    urinsrhssub NAME_OF_RULE rhsbl_zone lookuptype subtest
+        Specify a RHSBL-style domain-NS lookup, as above, with a sub-test.
+        "NAME_OF_RULE" is the name of the rule to be used, "rhsbl_zone" is
+        the zone to look up domain names in, and "lookuptype" is the type of
+        lookup (TXT or A). "subtest" is the sub-test to run against the
+        returned data; see <urirhssub>.
+
+        Note that, as with "urirhsbl", you must also define a body-eval rule
+        calling "check_uridnsbl()" to use this.
+
+    urifullnsrhsbl NAME_OF_RULE rhsbl_zone lookuptype
+        Perform a RHSBL-style domain lookup against the contents of the NS
+        records for each URI. In other words, a URI using the domain
+        "foo.com" will cause an NS lookup to take place; assuming that
+        domain has an NS of "ns0.bar.com", that will cause a lookup of
+        "ns0.bar.com.uriblzone.net". Note that hostnames are stripped from
+        the domain used in the URI.
+
+        "NAME_OF_RULE" is the name of the rule to be used, "rhsbl_zone" is
+        the zone to look up domain names in, and "lookuptype" is the type of
+        lookup (TXT or A).
+
+        Note that, as with "urirhsbl", you must also define a body-eval rule
+        calling "check_uridnsbl()" to use this.
+
+    urifullnsrhssub NAME_OF_RULE rhsbl_zone lookuptype subtest
+        Specify a RHSBL-style domain-NS lookup, as above, with a sub-test.
+        "NAME_OF_RULE" is the name of the rule to be used, "rhsbl_zone" is
+        the zone to look up domain names in, and "lookuptype" is the type of
+        lookup (TXT or A). "subtest" is the sub-test to run against the
+        returned data; see <urirhssub>.
+
+        Note that, as with "urirhsbl", you must also define a body-eval rule
+        calling "check_uridnsbl()" to use this.
+
+    tflags NAME_OF_RULE ips_only
+        Only URIs containing IP addresses as the "host" component will be
+        matched against the named "urirhsbl"/"urirhssub" rule.
+
+    tflags NAME_OF_RULE domains_only
+        Only URIs containing a non-IP-address "host" component will be
+        matched against the named "urirhsbl"/"urirhssub" rule.
+
+    tflags NAME_OF_RULE ns
+        The 'ns' flag may be applied to rules corresponding to uridnsbl and
+        uridnssub directives. Host names from URLs will be mapped to their
+        name server IP addresses (a NS lookup followed by an A lookup),
+        which in turn will be sent to blocklists. This is a default when
+        neither 'a' nor 'ns' flags are specified.
+
+    tflags NAME_OF_RULE a
+        The 'a' flag may be applied to rules corresponding to uridnsbl and
+        uridnssub directives. Host names from URLs will be mapped to their
+        IP addresses, which will be sent to blocklists. When both 'ns' and
+        'a' flags are specified, both queries will be performed.
+
+ADMINISTRATOR SETTINGS
+    uridnsbl_max_domains N (default: 20)
+        The maximum number of domains to look up.
+
+NOTES
+    The "uridnsbl_timeout" option has been obsoleted by the "rbl_timeout"
+    option. See the "Mail::SpamAssassin::Conf" POD for details on
+    "rbl_timeout".
+

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_URIDetail.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_URIDetail.html?rev=1567225&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_URIDetail.html (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_URIDetail.html Tue Feb 11 17:26:49 2014
@@ -0,0 +1,64 @@
+<!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>URIDetail - test URIs using detailed URI information</title>
+<link rev="made" href="mailto:root@twm2005-dev.thoughtworthy.com" />
+</head>
+
+<body style="background-color: white">
+
+<p><a name="__index__"></a></p>
+<!-- INDEX BEGIN -->
+
+<ul>
+
+	<li><a href="#name">NAME</a></li>
+	<li><a href="#synopsis">SYNOPSIS</a></li>
+	<li><a href="#rule_definitions_and_privileged_settings">RULE DEFINITIONS AND PRIVILEGED SETTINGS</a></li>
+</ul>
+<!-- INDEX END -->
+
+<hr />
+<p>
+</p>
+<h1><a name="name">NAME</a></h1>
+<p>URIDetail - test URIs using detailed URI information</p>
+<p>
+</p>
+<hr />
+<h1><a name="synopsis">SYNOPSIS</a></h1>
+<p>This plugin creates a new rule test type, known as ``uri_detail''.  These
+rules apply to all URIs found in the message.</p>
+<pre>
+  loadplugin    Mail::SpamAssassin::Plugin::URIDetail</pre>
+<p>
+</p>
+<hr />
+<h1><a name="rule_definitions_and_privileged_settings">RULE DEFINITIONS AND PRIVILEGED SETTINGS</a></h1>
+<p>The format for defining a rule is as follows:</p>
+<pre>
+  uri_detail SYMBOLIC_TEST_NAME key1 =~ /value1/  key2 !~ /value2/ ...</pre>
+<p>Supported keys are:</p>
+<p><code>raw</code> is the raw URI prior to any cleaning
+(e.g. ``http://spamassassin.apache%2Eorg/'').</p>
+<p><code>type</code> is the <code>tag(s)</code> which referenced the raw_uri.  <em>parsed</em> is a
+faked type which specifies that the raw_uri was parsed from the
+rendered text.</p>
+<p><code>cleaned</code> is a list including the raw URI and various cleaned
+versions of the raw URI (http://spamassassin.apache%2Eorg/,
+<a href="http://spamassassin.apache.org/).">http://spamassassin.apache.org/).</a></p>
+<p><code>text</code> is the anchor <code>text(s)</code> (text between &lt;a&gt; and &lt;/a&gt;) that
+linked to the raw URI.</p>
+<p><code>domain</code> is the <code>domain(s)</code> found in the cleaned URIs.</p>
+<p>Example rule for matching a URI where the raw URI matches ``%2Ebar'',
+the domain ``bar.com'' is found, and the type is ``a'' (an anchor tag).</p>
+<pre>
+  uri_detail TEST1 raw =~ /%2Ebar/  domain =~ /^bar\.com$/  type =~ /^a$/</pre>
+<p>Example rule to look for suspicious ``https'' links:</p>
+<pre>
+  uri_detail FAKE_HTTPS text =~ /\bhttps:/  cleaned !~ /\bhttps:/</pre>
+<p>Regular expressions should be delimited by slashes.</p>
+
+</body>
+
+</html>

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_URIDetail.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_URIDetail.txt?rev=1567225&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_URIDetail.txt (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_URIDetail.txt Tue Feb 11 17:26:49 2014
@@ -0,0 +1,42 @@
+NAME
+    URIDetail - test URIs using detailed URI information
+
+SYNOPSIS
+    This plugin creates a new rule test type, known as "uri_detail". These
+    rules apply to all URIs found in the message.
+
+      loadplugin    Mail::SpamAssassin::Plugin::URIDetail
+
+RULE DEFINITIONS AND PRIVILEGED SETTINGS
+    The format for defining a rule is as follows:
+
+      uri_detail SYMBOLIC_TEST_NAME key1 =~ /value1/  key2 !~ /value2/ ...
+
+    Supported keys are:
+
+    "raw" is the raw URI prior to any cleaning (e.g.
+    "http://spamassassin.apache%2Eorg/").
+
+    "type" is the tag(s) which referenced the raw_uri. *parsed* is a faked
+    type which specifies that the raw_uri was parsed from the rendered text.
+
+    "cleaned" is a list including the raw URI and various cleaned versions
+    of the raw URI (http://spamassassin.apache%2Eorg/,
+    http://spamassassin.apache.org/).
+
+    "text" is the anchor text(s) (text between <a> and </a>) that linked to
+    the raw URI.
+
+    "domain" is the domain(s) found in the cleaned URIs.
+
+    Example rule for matching a URI where the raw URI matches "%2Ebar", the
+    domain "bar.com" is found, and the type is "a" (an anchor tag).
+
+      uri_detail TEST1 raw =~ /%2Ebar/  domain =~ /^bar\.com$/  type =~ /^a$/
+
+    Example rule to look for suspicious "https" links:
+
+      uri_detail FAKE_HTTPS text =~ /\bhttps:/  cleaned !~ /\bhttps:/
+
+    Regular expressions should be delimited by slashes.
+

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_VBounce.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_VBounce.html?rev=1567225&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_VBounce.html (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_VBounce.html Tue Feb 11 17:26:49 2014
@@ -0,0 +1,62 @@
+<!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>Mail::SpamAssassin::Plugin::VBounce - aid in rescuing genuine bounces</title>
+<link rev="made" href="mailto:root@twm2005-dev.thoughtworthy.com" />
+</head>
+
+<body style="background-color: white">
+
+<p><a name="__index__"></a></p>
+<!-- INDEX BEGIN -->
+
+<ul>
+
+	<li><a href="#name">NAME</a></li>
+	<li><a href="#synopsis">SYNOPSIS</a></li>
+	<li><a href="#user_preferences">USER PREFERENCES</a></li>
+</ul>
+<!-- INDEX END -->
+
+<hr />
+<p>
+</p>
+<h1><a name="name">NAME</a></h1>
+<p>Mail::SpamAssassin::Plugin::VBounce - aid in rescuing genuine bounces</p>
+<p>
+</p>
+<hr />
+<h1><a name="synopsis">SYNOPSIS</a></h1>
+<pre>
+ loadplugin Mail::SpamAssassin::Plugin::VBounce [/path/to/VBounce.pm]</pre>
+<p>
+</p>
+<hr />
+<h1><a name="user_preferences">USER PREFERENCES</a></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><strong><a name="item_whitelist_bounce_relays_hostname__5bhostname2__2e_">whitelist_bounce_relays hostname [hostname2 ...]</a></strong><br />
+</dt>
+<dd>
+This is used to 'rescue' legitimate bounce messages that were generated in
+response to mail you really *did* send.  List the MTA relays that your outbound
+mail is delivered through.  If a bounce message is found, and it contains one
+of these hostnames in a 'Received' header, it will not be marked as a blowback
+virus-bounce.
+</dd>
+<dd>
+<p>The hostnames can be file-glob-style patterns, so <code>relay*.isp.com</code> will work.
+Specifically, <code>*</code> and <code>?</code> are allowed, but all other metacharacters are not.
+Regular expressions are not used for security reasons.</p>
+</dd>
+<dd>
+<p>Multiple addresses per line, separated by spaces, is OK.  Multiple
+<code>whitelist_bounce_relays</code> lines are also OK.</p>
+</dd>
+<p></p></dl>
+
+</body>
+
+</html>

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_VBounce.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_VBounce.txt?rev=1567225&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_VBounce.txt (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_VBounce.txt Tue Feb 11 17:26:49 2014
@@ -0,0 +1,26 @@
+NAME
+    Mail::SpamAssassin::Plugin::VBounce - aid in rescuing genuine bounces
+
+SYNOPSIS
+     loadplugin Mail::SpamAssassin::Plugin::VBounce [/path/to/VBounce.pm]
+
+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.
+
+    whitelist_bounce_relays hostname [hostname2 ...]
+        This is used to 'rescue' legitimate bounce messages that were
+        generated in response to mail you really *did* send. List the MTA
+        relays that your outbound mail is delivered through. If a bounce
+        message is found, and it contains one of these hostnames in a
+        'Received' header, it will not be marked as a blowback virus-bounce.
+
+        The hostnames can be file-glob-style patterns, so "relay*.isp.com"
+        will work. Specifically, "*" and "?" are allowed, but all other
+        metacharacters are not. Regular expressions are not used for
+        security reasons.
+
+        Multiple addresses per line, separated by spaces, is OK. Multiple
+        "whitelist_bounce_relays" lines are also OK.
+

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_WhiteListSubject.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_WhiteListSubject.html?rev=1567225&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_WhiteListSubject.html (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_WhiteListSubject.html Tue Feb 11 17:26:49 2014
@@ -0,0 +1,52 @@
+<!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>Mail::SpamAssassin::Plugin::WhiteListSubject - whitelist by Subject header</title>
+<link rev="made" href="mailto:root@twm2005-dev.thoughtworthy.com" />
+</head>
+
+<body style="background-color: white">
+
+<p><a name="__index__"></a></p>
+<!-- INDEX BEGIN -->
+
+<ul>
+
+	<li><a href="#name">NAME</a></li>
+	<li><a href="#synopsis">SYNOPSIS</a></li>
+	<li><a href="#description">DESCRIPTION</a></li>
+</ul>
+<!-- INDEX END -->
+
+<hr />
+<p>
+</p>
+<h1><a name="name">NAME</a></h1>
+<p>Mail::SpamAssassin::Plugin::WhiteListSubject - whitelist by Subject header</p>
+<p>
+</p>
+<hr />
+<h1><a name="synopsis">SYNOPSIS</a></h1>
+<pre>
+ loadplugin Mail::SpamAssassin::Plugin::WhiteListSubject</pre>
+<pre>
+ header SUBJECT_IN_WHITELIST eval:check_subject_in_whitelist()
+ header SUBJECT_IN_BLACKLIST eval:check_subject_in_blacklist()</pre>
+<pre>
+ score SUBJECT_IN_WHITELIST -100
+ score SUBJECT_IN_BLACKLIST 100</pre>
+<pre>
+ whitelist_subject [Bug *]
+ blacklist_subject Make Money Fast</pre>
+<p>
+</p>
+<hr />
+<h1><a name="description">DESCRIPTION</a></h1>
+<p>This SpamAssassin plugin module provides eval tests for whitelisting and blacklisting
+particular strings in the Subject header.  The value for whitelist_subject or
+blacklist_subject are strings which may contain file -glob -style patterns,
+similar to the other whitelist_* config options.</p>
+
+</body>
+
+</html>

Added: spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_WhiteListSubject.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_WhiteListSubject.txt?rev=1567225&view=auto
==============================================================================
--- spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_WhiteListSubject.txt (added)
+++ spamassassin/site/full/3.4.x/doc/Mail_SpamAssassin_Plugin_WhiteListSubject.txt Tue Feb 11 17:26:49 2014
@@ -0,0 +1,23 @@
+NAME
+    Mail::SpamAssassin::Plugin::WhiteListSubject - whitelist by Subject
+    header
+
+SYNOPSIS
+     loadplugin Mail::SpamAssassin::Plugin::WhiteListSubject
+
+     header SUBJECT_IN_WHITELIST eval:check_subject_in_whitelist()
+     header SUBJECT_IN_BLACKLIST eval:check_subject_in_blacklist()
+
+     score SUBJECT_IN_WHITELIST -100
+     score SUBJECT_IN_BLACKLIST 100
+
+     whitelist_subject [Bug *]
+     blacklist_subject Make Money Fast
+
+DESCRIPTION
+    This SpamAssassin plugin module provides eval tests for whitelisting and
+    blacklisting particular strings in the Subject header. The value for
+    whitelist_subject or blacklist_subject are strings which may contain
+    file -glob -style patterns, similar to the other whitelist_* config
+    options.
+