You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by pa...@apache.org on 2011/06/22 17:01:03 UTC
svn commit: r1138498 [11/15] - in /spamassassin/site/full/3.3.x: ./ doc/
Added: spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_SpamCop.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_SpamCop.html?rev=1138498&view=auto
==============================================================================
--- spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_SpamCop.html (added)
+++ spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_SpamCop.html Wed Jun 22 15:00:59 2011
@@ -0,0 +1,84 @@
+<?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>Mail::SpamAssassin::Plugin::SpamCop - perform SpamCop reporting of messages</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<link rev="made" href="mailto:parker@minotaur.apache.org" />
+</head>
+
+<body style="background-color: white">
+
+
+<!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
+
+<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>
+
+<hr name="index" />
+</div>
+<!-- INDEX END -->
+
+<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="com" class="item">spamcop_from_address <a href="mailto:user@example.com">user@example.com</a> (default: none)</a></strong></dt>
+
+<dd>
+<p>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.</p>
+</dd>
+<dt><strong>spamcop_to_address <a href="mailto:user@example.com">user@example.com</a> (default: generic reporting address)</strong></dt>
+
+<dd>
+<p>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.</p>
+</dd>
+<dt><strong><a name="spamcop_max_report_size" class="item">spamcop_max_report_size (default: 50)</a></strong></dt>
+
+<dd>
+<p>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.</p>
+</dd>
+</dl>
+
+</body>
+
+</html>
Added: spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_SpamCop.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_SpamCop.txt?rev=1138498&view=auto
==============================================================================
--- spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_SpamCop.txt (added)
+++ spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_SpamCop.txt Wed Jun 22 15:00:59 2011
@@ -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.3.x/doc/Mail_SpamAssassin_Plugin_Test.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_Test.html?rev=1138498&view=auto
==============================================================================
--- spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_Test.html (added)
+++ spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_Test.html Wed Jun 22 15:00:59 2011
@@ -0,0 +1,48 @@
+<?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>Test - test plugin</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<link rev="made" href="mailto:parker@minotaur.apache.org" />
+</head>
+
+<body style="background-color: white">
+
+
+<!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
+
+<ul>
+
+ <li><a href="#name">NAME</a></li>
+ <li><a href="#synopsis">SYNOPSIS</a></li>
+ <li><a href="#description">DESCRIPTION</a></li>
+</ul>
+
+<hr name="index" />
+</div>
+<!-- INDEX END -->
+
+<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.3.x/doc/Mail_SpamAssassin_Plugin_Test.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_Test.txt?rev=1138498&view=auto
==============================================================================
--- spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_Test.txt (added)
+++ spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_Test.txt Wed Jun 22 15:00:59 2011
@@ -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.3.x/doc/Mail_SpamAssassin_Plugin_TextCat.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_TextCat.html?rev=1138498&view=auto
==============================================================================
--- spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_TextCat.html (added)
+++ spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_TextCat.html Wed Jun 22 15:00:59 2011
@@ -0,0 +1,263 @@
+<?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>Mail::SpamAssassin::Plugin::TextCat - TextCat language guesser</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<link rev="made" href="mailto:parker@minotaur.apache.org" />
+</head>
+
+<body style="background-color: white">
+
+
+<!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
+
+<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>
+
+<hr name="index" />
+</div>
+<!-- INDEX END -->
+
+<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="ok_languages_xx_yy_zz_default_all" class="item">ok_languages xx [ yy zz ... ] (default: all)</a></strong></dt>
+
+<dd>
+<p>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.</p>
+<p>Note that the language cannot always be recognized with sufficient
+confidence. In that case, no action is taken.</p>
+<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>
+<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>
+<p>Examples:</p>
+<pre>
+ ok_languages all (allow all languages)
+ ok_languages en (only allow English)
+ ok_languages en ja zh (allow English, Japanese, and Chinese)</pre>
+<p>Note: if there are multiple ok_languages lines, only the last one is used.</p>
+<p>Select the languages to allow from the list below:</p>
+<dl>
+<dt><strong><a name="af_afrikaans" class="item">af - Afrikaans</a></strong></dt>
+
+<dt><strong><a name="am_amharic" class="item">am - Amharic</a></strong></dt>
+
+<dt><strong><a name="ar_arabic" class="item">ar - Arabic</a></strong></dt>
+
+<dt><strong><a name="be_byelorussian" class="item">be - Byelorussian</a></strong></dt>
+
+<dt><strong><a name="bg_bulgarian" class="item">bg - Bulgarian</a></strong></dt>
+
+<dt><strong><a name="bs_bosnian" class="item">bs - Bosnian</a></strong></dt>
+
+<dt><strong><a name="ca_catalan" class="item">ca - Catalan</a></strong></dt>
+
+<dt><strong><a name="cs_czech" class="item">cs - Czech</a></strong></dt>
+
+<dt><strong><a name="cy_welsh" class="item">cy - Welsh</a></strong></dt>
+
+<dt><strong><a name="da_danish" class="item">da - Danish</a></strong></dt>
+
+<dt><strong><a name="de_german" class="item">de - German</a></strong></dt>
+
+<dt><strong><a name="el_greek" class="item">el - Greek</a></strong></dt>
+
+<dt><strong><a name="en_english" class="item">en - English</a></strong></dt>
+
+<dt><strong><a name="eo_esperanto" class="item">eo - Esperanto</a></strong></dt>
+
+<dt><strong><a name="es_spanish" class="item">es - Spanish</a></strong></dt>
+
+<dt><strong><a name="et_estonian" class="item">et - Estonian</a></strong></dt>
+
+<dt><strong><a name="eu_basque" class="item">eu - Basque</a></strong></dt>
+
+<dt><strong><a name="fa_persian" class="item">fa - Persian</a></strong></dt>
+
+<dt><strong><a name="fi_finnish" class="item">fi - Finnish</a></strong></dt>
+
+<dt><strong><a name="fr_french" class="item">fr - French</a></strong></dt>
+
+<dt><strong><a name="fy_frisian" class="item">fy - Frisian</a></strong></dt>
+
+<dt><strong><a name="ga_irish_gaelic" class="item">ga - Irish Gaelic</a></strong></dt>
+
+<dt><strong><a name="gd_scottish_gaelic" class="item">gd - Scottish Gaelic</a></strong></dt>
+
+<dt><strong><a name="he_hebrew" class="item">he - Hebrew</a></strong></dt>
+
+<dt><strong><a name="hi_hindi" class="item">hi - Hindi</a></strong></dt>
+
+<dt><strong><a name="hr_croatian" class="item">hr - Croatian</a></strong></dt>
+
+<dt><strong><a name="hu_hungarian" class="item">hu - Hungarian</a></strong></dt>
+
+<dt><strong><a name="hy_armenian" class="item">hy - Armenian</a></strong></dt>
+
+<dt><strong><a name="id_indonesian" class="item">id - Indonesian</a></strong></dt>
+
+<dt><strong><a name="is_icelandic" class="item">is - Icelandic</a></strong></dt>
+
+<dt><strong><a name="it_italian" class="item">it - Italian</a></strong></dt>
+
+<dt><strong><a name="ja_japanese" class="item">ja - Japanese</a></strong></dt>
+
+<dt><strong><a name="ka_georgian" class="item">ka - Georgian</a></strong></dt>
+
+<dt><strong><a name="ko_korean" class="item">ko - Korean</a></strong></dt>
+
+<dt><strong><a name="la_latin" class="item">la - Latin</a></strong></dt>
+
+<dt><strong><a name="lt_lithuanian" class="item">lt - Lithuanian</a></strong></dt>
+
+<dt><strong><a name="lv_latvian" class="item">lv - Latvian</a></strong></dt>
+
+<dt><strong><a name="mr_marathi" class="item">mr - Marathi</a></strong></dt>
+
+<dt><strong><a name="ms_malay" class="item">ms - Malay</a></strong></dt>
+
+<dt><strong><a name="ne_nepali" class="item">ne - Nepali</a></strong></dt>
+
+<dt><strong><a name="nl_dutch" class="item">nl - Dutch</a></strong></dt>
+
+<dt><strong><a name="no_norwegian" class="item">no - Norwegian</a></strong></dt>
+
+<dt><strong><a name="pl_polish" class="item">pl - Polish</a></strong></dt>
+
+<dt><strong><a name="pt_portuguese" class="item">pt - Portuguese</a></strong></dt>
+
+<dt><strong><a name="qu_quechua" class="item">qu - Quechua</a></strong></dt>
+
+<dt><strong><a name="rm_rhaeto_romance" class="item">rm - Rhaeto-Romance</a></strong></dt>
+
+<dt><strong><a name="ro_romanian" class="item">ro - Romanian</a></strong></dt>
+
+<dt><strong><a name="ru_russian" class="item">ru - Russian</a></strong></dt>
+
+<dt><strong><a name="sa_sanskrit" class="item">sa - Sanskrit</a></strong></dt>
+
+<dt><strong><a name="sco_scots" class="item">sco - Scots</a></strong></dt>
+
+<dt><strong><a name="sk_slovak" class="item">sk - Slovak</a></strong></dt>
+
+<dt><strong><a name="sl_slovenian" class="item">sl - Slovenian</a></strong></dt>
+
+<dt><strong><a name="sq_albanian" class="item">sq - Albanian</a></strong></dt>
+
+<dt><strong><a name="sr_serbian" class="item">sr - Serbian</a></strong></dt>
+
+<dt><strong><a name="sv_swedish" class="item">sv - Swedish</a></strong></dt>
+
+<dt><strong><a name="sw_swahili" class="item">sw - Swahili</a></strong></dt>
+
+<dt><strong><a name="ta_tamil" class="item">ta - Tamil</a></strong></dt>
+
+<dt><strong><a name="th_thai" class="item">th - Thai</a></strong></dt>
+
+<dt><strong><a name="tl_tagalog" class="item">tl - Tagalog</a></strong></dt>
+
+<dt><strong><a name="tr_turkish" class="item">tr - Turkish</a></strong></dt>
+
+<dt><strong><a name="uk_ukrainian" class="item">uk - Ukrainian</a></strong></dt>
+
+<dt><strong><a name="vi_vietnamese" class="item">vi - Vietnamese</a></strong></dt>
+
+<dt><strong><a name="yi_yiddish" class="item">yi - Yiddish</a></strong></dt>
+
+<dt><strong><a name="chinese" class="item">zh - Chinese (both Traditional and Simplified)</a></strong></dt>
+
+<dt><strong>zh.big5 - Chinese (Traditional only)</strong></dt>
+
+<dt><strong>zh.gb2312 - Chinese (Simplified only)</strong></dt>
+
+</dl>
+<p></p>
+</dd>
+<dt><strong><a name="inactive_languages_xx_yy_zz_default_see_below" class="item">inactive_languages xx [ yy zz ... ] (default: see below)</a></strong></dt>
+
+<dd>
+<p>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.</p>
+<p>The default setting is:</p>
+<dl>
+<dt><strong><a name="bs_cy_eo_et_eu_fy_ga_gd_is_la_lt_lv_rm_sa_sco_sl_yi" class="item">bs cy eo et eu fy ga gd is la lt lv rm sa sco sl yi</a></strong></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>
+</dd>
+<dt><strong><a name="n" class="item">textcat_max_languages N (default: 3)</a></strong></dt>
+
+<dd>
+<p>The maximum number of languages before the classification is considered unknown.</p>
+</dd>
+<dt><strong>textcat_optimal_ngrams N (default: 0)</strong></dt>
+
+<dd>
+<p>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.</p>
+</dd>
+<dt><strong>textcat_max_ngrams N (default: 400)</strong></dt>
+
+<dd>
+<p>The maximum number of ngrams that should be compared with each of the languages
+models (note that each of those models is used completely).</p>
+</dd>
+<dt><strong>textcat_acceptable_score N (default: 1.02)</strong></dt>
+
+<dd>
+<p>Include any language that scores at least <code>textcat_acceptable_score</code> in the
+returned list of languages.</p>
+</dd>
+</dl>
+
+</body>
+
+</html>
Added: spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_TextCat.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_TextCat.txt?rev=1138498&view=auto
==============================================================================
--- spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_TextCat.txt (added)
+++ spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_TextCat.txt Wed Jun 22 15:00:59 2011
@@ -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 before the 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.3.x/doc/Mail_SpamAssassin_Plugin_URIDNSBL.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_URIDNSBL.html?rev=1138498&view=auto
==============================================================================
--- spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_URIDNSBL.html (added)
+++ spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_URIDNSBL.html Wed Jun 22 15:00:59 2011
@@ -0,0 +1,259 @@
+<?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>URIDNSBL - look up URLs against DNS blocklists</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<link rev="made" href="mailto:parker@minotaur.apache.org" />
+</head>
+
+<body style="background-color: white">
+
+
+<!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
+
+<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>
+
+<hr name="index" />
+</div>
+<!-- INDEX END -->
+
+<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 the
+domain names from those, querying their NS records in DNS, resolving
+the hostnames used therein, and querying various DNS blocklists for
+those IP addresses. This is quite effective.</p>
+<p>
+</p>
+<hr />
+<h1><a name="user_settings">USER SETTINGS</a></h1>
+<dl>
+<dt><strong><a name="skip_uribl_checks" class="item">skip_uribl_checks ( 0 | 1 ) (default: 0)</a></strong></dt>
+
+<dd>
+<p>Turning on the skip_uribl_checks setting will disable the URIDNSBL plugin.</p>
+<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>
+<p>See also a related configuration parameter skip_rbl_checks,
+which controls the DNSEval plugin (documented in the Conf man page).</p>
+</dd>
+</dl>
+<dl>
+<dt><strong><a name="uridnsbl_skip_domain_domain1_domain2" class="item">uridnsbl_skip_domain domain1 domain2 ...</a></strong></dt>
+
+<dd>
+<p>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.</p>
+</dd>
+</dl>
+<dl>
+<dt><strong><a name="clear_uridnsbl_skip_domain_domain1_domain2" class="item">clear_uridnsbl_skip_domain [domain1 domain2 ...]</a></strong></dt>
+
+<dd>
+<p>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.</p>
+<p>When given a list of domains as arguments, only the specified domains
+are removed from the list of skipped domains.</p>
+</dd>
+</dl>
+<p>
+</p>
+<hr />
+<h1><a name="rule_definitions_and_privileged_settings">RULE DEFINITIONS AND PRIVILEGED SETTINGS</a></h1>
+<dl>
+<dt><strong><a name="uridnsbl_name_of_rule_dnsbl_zone_lookuptype" class="item">uridnsbl NAME_OF_RULE dnsbl_zone lookuptype</a></strong></dt>
+
+<dd>
+<p>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.</p>
+<p>Example:</p>
+<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</pre>
+</dd>
+<dt><strong><a name="uridnssub_name_of_rule_dnsbl_zone_lookuptype_subtest" class="item">uridnssub NAME_OF_RULE dnsbl_zone lookuptype subtest</a></strong></dt>
+
+<dd>
+<p>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>).</p>
+<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 >= 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.</p>
+<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>
+<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>
+<p>Example:</p>
+<pre>
+ uridnssub URIBL_DNSBL_4 dnsbl.example.org. A 127.0.0.4
+ uridnssub URIBL_DNSBL_8 dnsbl.example.org. A 8</pre>
+</dd>
+<dt><strong><a name="urirhsbl_name_of_rule_rhsbl_zone_lookuptype" class="item">urirhsbl NAME_OF_RULE rhsbl_zone lookuptype</a></strong></dt>
+
+<dd>
+<p>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.</p>
+<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>
+<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>
+<p>Example:</p>
+<pre>
+ urirhsbl URIBL_RHSBL rhsbl.example.org. TXT</pre>
+</dd>
+<dt><strong><a name="urirhssub_name_of_rule_rhsbl_zone_lookuptype_subtest" class="item">urirhssub NAME_OF_RULE rhsbl_zone lookuptype subtest</a></strong></dt>
+
+<dd>
+<p>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>).</p>
+<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 >= 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.</p>
+<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>
+<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>
+<p>Example:</p>
+<pre>
+ urirhssub URIBL_RHSBL_4 rhsbl.example.org. A 127.0.0.4
+ urirhssub URIBL_RHSBL_8 rhsbl.example.org. A 8</pre>
+</dd>
+<dt><strong><a name="urinsrhsbl_name_of_rule_rhsbl_zone_lookuptype" class="item">urinsrhsbl NAME_OF_RULE rhsbl_zone lookuptype</a></strong></dt>
+
+<dd>
+<p>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.</p>
+<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>
+<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>
+<dt><strong><a name="urinsrhssub_name_of_rule_rhsbl_zone_lookuptype_subtest" class="item">urinsrhssub NAME_OF_RULE rhsbl_zone lookuptype subtest</a></strong></dt>
+
+<dd>
+<p>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
+<urirhssub>.</p>
+<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>
+<dt><strong><a name="urifullnsrhsbl_name_of_rule_rhsbl_zone_lookuptype" class="item">urifullnsrhsbl NAME_OF_RULE rhsbl_zone lookuptype</a></strong></dt>
+
+<dd>
+<p>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.</p>
+<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>
+<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>
+<dt><strong><a name="urifullnsrhssub_name_of_rule_rhsbl_zone_lookuptype_subtest" class="item">urifullnsrhssub NAME_OF_RULE rhsbl_zone lookuptype subtest</a></strong></dt>
+
+<dd>
+<p>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
+<urirhssub>.</p>
+<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>
+<dt><strong><a name="tflags_name_of_rule_ips_only" class="item">tflags NAME_OF_RULE ips_only</a></strong></dt>
+
+<dd>
+<p>Only URIs containing IP addresses as the "host" component will be matched
+against the named "urirhsbl"/"urirhssub" rule.</p>
+</dd>
+<dt><strong><a name="tflags_name_of_rule_domains_only" class="item">tflags NAME_OF_RULE domains_only</a></strong></dt>
+
+<dd>
+<p>Only URIs containing a non-IP-address "host" component will be matched against
+the named "urirhsbl"/"urirhssub" rule.</p>
+</dd>
+</dl>
+<p>
+</p>
+<hr />
+<h1><a name="administrator_settings">ADMINISTRATOR SETTINGS</a></h1>
+<dl>
+<dt><strong><a name="n" class="item">uridnsbl_max_domains N (default: 20)</a></strong></dt>
+
+<dd>
+<p>The maximum number of domains to look up.</p>
+</dd>
+</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.3.x/doc/Mail_SpamAssassin_Plugin_URIDNSBL.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_URIDNSBL.txt?rev=1138498&view=auto
==============================================================================
--- spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_URIDNSBL.txt (added)
+++ spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_URIDNSBL.txt Wed Jun 22 15:00:59 2011
@@ -0,0 +1,201 @@
+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 the
+ domain names from those, querying their NS records in DNS, resolving the
+ hostnames used therein, and querying various DNS blocklists for those IP
+ addresses. This is quite effective.
+
+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.
+
+ 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
+
+ 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).
+
+ "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.
+
+ 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.
+
+ 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.
+
+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.3.x/doc/Mail_SpamAssassin_Plugin_URIDetail.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_URIDetail.html?rev=1138498&view=auto
==============================================================================
--- spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_URIDetail.html (added)
+++ spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_URIDetail.html Wed Jun 22 15:00:59 2011
@@ -0,0 +1,70 @@
+<?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>URIDetail - test URIs using detailed URI information</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<link rev="made" href="mailto:parker@minotaur.apache.org" />
+</head>
+
+<body style="background-color: white">
+
+
+<!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
+
+<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>
+
+<hr name="index" />
+</div>
+<!-- INDEX END -->
+
+<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 tag(s) 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 text(s) (text between <a> and </a>) that
+linked to the raw URI.</p>
+<p><code>domain</code> is the domain(s) 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.3.x/doc/Mail_SpamAssassin_Plugin_URIDetail.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_URIDetail.txt?rev=1138498&view=auto
==============================================================================
--- spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_URIDetail.txt (added)
+++ spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_URIDetail.txt Wed Jun 22 15:00:59 2011
@@ -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.3.x/doc/Mail_SpamAssassin_Plugin_VBounce.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_VBounce.html?rev=1138498&view=auto
==============================================================================
--- spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_VBounce.html (added)
+++ spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_VBounce.html Wed Jun 22 15:00:59 2011
@@ -0,0 +1,64 @@
+<?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>Mail::SpamAssassin::Plugin::VBounce - aid in rescuing genuine bounces</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<link rev="made" href="mailto:parker@minotaur.apache.org" />
+</head>
+
+<body style="background-color: white">
+
+
+<!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
+
+<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>
+
+<hr name="index" />
+</div>
+<!-- INDEX END -->
+
+<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="whitelist_bounce_relays_hostname_hostname2" class="item">whitelist_bounce_relays hostname [hostname2 ...]</a></strong></dt>
+
+<dd>
+<p>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.</p>
+<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>
+<p>Multiple addresses per line, separated by spaces, is OK. Multiple
+<code>whitelist_bounce_relays</code> lines are also OK.</p>
+</dd>
+</dl>
+
+</body>
+
+</html>
Added: spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_VBounce.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_VBounce.txt?rev=1138498&view=auto
==============================================================================
--- spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_VBounce.txt (added)
+++ spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_VBounce.txt Wed Jun 22 15:00:59 2011
@@ -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.3.x/doc/Mail_SpamAssassin_Plugin_WhiteListSubject.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_WhiteListSubject.html?rev=1138498&view=auto
==============================================================================
--- spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_WhiteListSubject.html (added)
+++ spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_WhiteListSubject.html Wed Jun 22 15:00:59 2011
@@ -0,0 +1,58 @@
+<?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>Mail::SpamAssassin::Plugin::WhiteListSubject - whitelist by Subject header</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<link rev="made" href="mailto:parker@minotaur.apache.org" />
+</head>
+
+<body style="background-color: white">
+
+
+<!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
+
+<ul>
+
+ <li><a href="#name">NAME</a></li>
+ <li><a href="#synopsis">SYNOPSIS</a></li>
+ <li><a href="#description">DESCRIPTION</a></li>
+</ul>
+
+<hr name="index" />
+</div>
+<!-- INDEX END -->
+
+<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.3.x/doc/Mail_SpamAssassin_Plugin_WhiteListSubject.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_WhiteListSubject.txt?rev=1138498&view=auto
==============================================================================
--- spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_WhiteListSubject.txt (added)
+++ spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Plugin_WhiteListSubject.txt Wed Jun 22 15:00:59 2011
@@ -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.
+
Added: spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_SQLBasedAddrList.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_SQLBasedAddrList.html?rev=1138498&view=auto
==============================================================================
--- spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_SQLBasedAddrList.html (added)
+++ spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_SQLBasedAddrList.html Wed Jun 22 15:00:59 2011
@@ -0,0 +1,147 @@
+<?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>Mail::SpamAssassin::SQLBasedAddrList - SpamAssassin SQL Based Auto Whitelist</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<link rev="made" href="mailto:parker@minotaur.apache.org" />
+</head>
+
+<body style="background-color: white">
+
+
+<!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
+
+<ul>
+
+ <li><a href="#name">NAME</a></li>
+ <li><a href="#synopsis">SYNOPSIS</a></li>
+ <li><a href="#description">DESCRIPTION</a></li>
+ <ul>
+
+ <li><a href="#new">new</a></li>
+ <li><a href="#new_checker">new_checker</a></li>
+ <li><a href="#get_addr_entry">get_addr_entry</a></li>
+ <li><a href="#add_score">add_score</a></li>
+ <li><a href="#remove_entry">remove_entry</a></li>
+ <li><a href="#finish">finish</a></li>
+ <li><a href="#_unpack_addr">_unpack_addr</a></li>
+ </ul>
+
+</ul>
+
+<hr name="index" />
+</div>
+<!-- INDEX END -->
+
+<p>
+</p>
+<h1><a name="name">NAME</a></h1>
+<p>Mail::SpamAssassin::SQLBasedAddrList - SpamAssassin SQL Based Auto Whitelist</p>
+<p>
+</p>
+<hr />
+<h1><a name="synopsis">SYNOPSIS</a></h1>
+<pre>
+ my $factory = Mail::SpamAssassin::SQLBasedAddrList->new()
+ $spamtest->set_persistent_addr_list_factory ($factory);
+ ... call into SpamAssassin classes...</pre>
+<p>SpamAssassin will call:</p>
+<pre>
+ my $addrlist = $factory->new_checker($spamtest);
+ $entry = $addrlist->get_addr_entry ($addr, $origip);
+ ...</pre>
+<p>
+</p>
+<hr />
+<h1><a name="description">DESCRIPTION</a></h1>
+<p>A SQL based persistent address list implementation.</p>
+<p>See <code>Mail::SpamAssassin::PersistentAddrList</code> for more information.</p>
+<p>Uses DBI::DBD module access to your favorite database (tested with
+MySQL, SQLite and PostgreSQL) to store user auto-whitelists.</p>
+<p>The default table structure looks like this:
+CREATE TABLE awl (
+ username varchar(100) NOT NULL default '',
+ email varchar(255) NOT NULL default '',
+ ip varchar(16) NOT NULL default '',
+ count int(11) NOT NULL default '0',
+ totscore float NOT NULL default '0',
+ signedby varchar(255) NOT NULL default '',
+ PRIMARY KEY (username,email,signedby,ip)
+) TYPE=MyISAM;</p>
+<p>Your table definition may change depending on which database driver
+you choose. There is a config option to override the table name.</p>
+<p>This module introduces several new config variables:</p>
+<p>user_awl_dsn</p>
+<p>user_awl_sql_username</p>
+<p>user_awl_sql_password</p>
+<p>user_awl_sql_table</p>
+<p>user_awl_sql_override_username</p>
+<p>see <code>Mail::SpamAssassin::Conf</code> for more information.</p>
+<p>
+</p>
+<h2><a name="new">new</a></h2>
+<p>public class (Mail::SpamAssassin::SQLBasedAddrList) new ()</p>
+<p>Description:
+This method creates a new instance of the SQLBasedAddrList factory and calls
+the parent's (PersistentAddrList) new method.</p>
+<p>
+</p>
+<h2><a name="new_checker">new_checker</a></h2>
+<p>public instance (Mail::SpamAssassin::SQLBasedAddrList) new_checker (\% $main)</p>
+<p>Description:
+This method is called to setup a new checker interface and return a blessed
+copy of itself. Here is where we setup the SQL database connection based
+on the config values.</p>
+<p>
+</p>
+<h2><a name="get_addr_entry">get_addr_entry</a></h2>
+<p>public instance (\%) get_addr_entry (String $addr, String $signedby)</p>
+<p>Description:
+This method takes a given <code>$addr</code> and splits it between the email address
+component and the ip component and performs a lookup in the database. If
+nothing is found in the database then a blank entry hash is created and
+returned, otherwise an entry containing the found information is returned.
+If a with_awl_signer configuration option is enabled only addresses signed
+by the given signing identity are taken into account, or, if $signedby is
+undefined (or empty) only unsigned entries are considered.</p>
+<p>A key, <code>exists_p</code>, is set to 1 if an entry already exists in the database,
+otherwise it is set to 0.</p>
+<p>
+</p>
+<h2><a name="add_score">add_score</a></h2>
+<p>public instance (\%) add_score (\% $entry, Integer $score)</p>
+<p>Description:
+This method adds a given <code>$score</code> to a given <code>$entry</code>. If the entry was
+marked as not existing in the database then an entry will be inserted,
+otherwise a simple update will be performed.</p>
+<p>NOTE: This code uses a self referential SQL call (ie set foo = foo + 1) which
+is supported by most modern database backends, but not everything calling
+itself a SQL database.</p>
+<p>
+</p>
+<h2><a name="remove_entry">remove_entry</a></h2>
+<p>public instance () remove_entry (\% $entry)</p>
+<p>Description:
+This method removes a given <code>$entry</code> from the database. If the
+ip portion of the entry address is equal to "none" then remove any
+perl-IP entries for this address as well.</p>
+<p>
+</p>
+<h2><a name="finish">finish</a></h2>
+<p>public instance () finish ()</p>
+<p>Description:
+This method provides the necessary cleanup for the address list.</p>
+<p>
+</p>
+<h2><a name="_unpack_addr">_unpack_addr</a></h2>
+<p>private instance (String, String) _unpack_addr(string $addr)</p>
+<p>Description:
+This method splits an autowhitelist address into it's two components,
+email and ip address.</p>
+
+</body>
+
+</html>
Added: spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_SQLBasedAddrList.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_SQLBasedAddrList.txt?rev=1138498&view=auto
==============================================================================
--- spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_SQLBasedAddrList.txt (added)
+++ spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_SQLBasedAddrList.txt Wed Jun 22 15:00:59 2011
@@ -0,0 +1,105 @@
+NAME
+ Mail::SpamAssassin::SQLBasedAddrList - SpamAssassin SQL Based Auto
+ Whitelist
+
+SYNOPSIS
+ my $factory = Mail::SpamAssassin::SQLBasedAddrList->new()
+ $spamtest->set_persistent_addr_list_factory ($factory);
+ ... call into SpamAssassin classes...
+
+ SpamAssassin will call:
+
+ my $addrlist = $factory->new_checker($spamtest);
+ $entry = $addrlist->get_addr_entry ($addr, $origip);
+ ...
+
+DESCRIPTION
+ A SQL based persistent address list implementation.
+
+ See "Mail::SpamAssassin::PersistentAddrList" for more information.
+
+ Uses DBI::DBD module access to your favorite database (tested with
+ MySQL, SQLite and PostgreSQL) to store user auto-whitelists.
+
+ The default table structure looks like this: CREATE TABLE awl ( username
+ varchar(100) NOT NULL default '', email varchar(255) NOT NULL default
+ '', ip varchar(16) NOT NULL default '', count int(11) NOT NULL default
+ '0', totscore float NOT NULL default '0', signedby varchar(255) NOT NULL
+ default '', PRIMARY KEY (username,email,signedby,ip) ) TYPE=MyISAM;
+
+ Your table definition may change depending on which database driver you
+ choose. There is a config option to override the table name.
+
+ This module introduces several new config variables:
+
+ user_awl_dsn
+
+ user_awl_sql_username
+
+ user_awl_sql_password
+
+ user_awl_sql_table
+
+ user_awl_sql_override_username
+
+ see "Mail::SpamAssassin::Conf" for more information.
+
+ new
+ public class (Mail::SpamAssassin::SQLBasedAddrList) new ()
+
+ Description: This method creates a new instance of the SQLBasedAddrList
+ factory and calls the parent's (PersistentAddrList) new method.
+
+ new_checker
+ public instance (Mail::SpamAssassin::SQLBasedAddrList) new_checker (\%
+ $main)
+
+ Description: This method is called to setup a new checker interface and
+ return a blessed copy of itself. Here is where we setup the SQL database
+ connection based on the config values.
+
+ get_addr_entry
+ public instance (\%) get_addr_entry (String $addr, String $signedby)
+
+ Description: This method takes a given $addr and splits it between the
+ email address component and the ip component and performs a lookup in
+ the database. If nothing is found in the database then a blank entry
+ hash is created and returned, otherwise an entry containing the found
+ information is returned. If a with_awl_signer configuration option is
+ enabled only addresses signed by the given signing identity are taken
+ into account, or, if $signedby is undefined (or empty) only unsigned
+ entries are considered.
+
+ A key, "exists_p", is set to 1 if an entry already exists in the
+ database, otherwise it is set to 0.
+
+ add_score
+ public instance (\%) add_score (\% $entry, Integer $score)
+
+ Description: This method adds a given $score to a given $entry. If the
+ entry was marked as not existing in the database then an entry will be
+ inserted, otherwise a simple update will be performed.
+
+ NOTE: This code uses a self referential SQL call (ie set foo = foo + 1)
+ which is supported by most modern database backends, but not everything
+ calling itself a SQL database.
+
+ remove_entry
+ public instance () remove_entry (\% $entry)
+
+ Description: This method removes a given $entry from the database. If
+ the ip portion of the entry address is equal to "none" then remove any
+ perl-IP entries for this address as well.
+
+ finish
+ public instance () finish ()
+
+ Description: This method provides the necessary cleanup for the address
+ list.
+
+ _unpack_addr
+ private instance (String, String) _unpack_addr(string $addr)
+
+ Description: This method splits an autowhitelist address into it's two
+ components, email and ip address.
+
Added: spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_SubProcBackChannel.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_SubProcBackChannel.html?rev=1138498&view=auto
==============================================================================
--- spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_SubProcBackChannel.html (added)
+++ spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_SubProcBackChannel.html Wed Jun 22 15:00:59 2011
@@ -0,0 +1,49 @@
+<?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>Mail::SpamAssassin::SubProcBackChannel - back-channel for communication between a master and multiple slave processes</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<link rev="made" href="mailto:parker@minotaur.apache.org" />
+</head>
+
+<body style="background-color: white">
+
+
+<!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
+
+<ul>
+
+ <li><a href="#name">NAME</a></li>
+ <li><a href="#methods">METHODS</a></li>
+ <li><a href="#see_also">SEE ALSO</a></li>
+</ul>
+
+<hr name="index" />
+</div>
+<!-- INDEX END -->
+
+<p>
+</p>
+<h1><a name="name">NAME</a></h1>
+<p>Mail::SpamAssassin::SubProcBackChannel - back-channel for communication between a master and multiple slave processes</p>
+<p>
+</p>
+<hr />
+<h1><a name="methods">METHODS</a></h1>
+<p>
+</p>
+<hr />
+<h1><a name="see_also">SEE ALSO</a></h1>
+<p><code>Mail::SpamAssassin</code>
+<code>Mail::SpamAssassin::ArchiveIterator</code>
+<code>Mail::SpamAssassin::SpamdPreforkScaling</code>
+<code>spamassassin</code>
+<code>spamd</code>
+<code>mass-check</code></p>
+
+</body>
+
+</html>
Added: spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_SubProcBackChannel.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_SubProcBackChannel.txt?rev=1138498&view=auto
==============================================================================
--- spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_SubProcBackChannel.txt (added)
+++ spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_SubProcBackChannel.txt Wed Jun 22 15:00:59 2011
@@ -0,0 +1,10 @@
+NAME
+ Mail::SpamAssassin::SubProcBackChannel - back-channel for communication
+ between a master and multiple slave processes
+
+METHODS
+SEE ALSO
+ "Mail::SpamAssassin" "Mail::SpamAssassin::ArchiveIterator"
+ "Mail::SpamAssassin::SpamdPreforkScaling" "spamassassin" "spamd"
+ "mass-check"
+
Added: spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Timeout.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Timeout.html?rev=1138498&view=auto
==============================================================================
--- spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Timeout.html (added)
+++ spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Timeout.html Wed Jun 22 15:00:59 2011
@@ -0,0 +1,125 @@
+<?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>Mail::SpamAssassin::Timeout - safe, reliable timeouts in perl</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<link rev="made" href="mailto:parker@minotaur.apache.org" />
+</head>
+
+<body style="background-color: white">
+
+
+<!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
+
+<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="#public_methods">PUBLIC METHODS</a></li>
+</ul>
+
+<hr name="index" />
+</div>
+<!-- INDEX END -->
+
+<p>
+</p>
+<h1><a name="name">NAME</a></h1>
+<p>Mail::SpamAssassin::Timeout - safe, reliable timeouts in perl</p>
+<p>
+</p>
+<hr />
+<h1><a name="synopsis">SYNOPSIS</a></h1>
+<pre>
+ # non-timeout code...</pre>
+<pre>
+ my $t = Mail::SpamAssassin::Timeout->new({ secs => 5, deadline => $when });
+
+ $t->run(sub {
+ # code to run with a 5-second timeout...
+ });</pre>
+<pre>
+ if ($t->timed_out()) {
+ # do something...
+ }</pre>
+<pre>
+ # more non-timeout code...</pre>
+<p>
+</p>
+<hr />
+<h1><a name="description">DESCRIPTION</a></h1>
+<p>This module provides a safe, reliable and clean API to provide
+<code>alarm(2)</code>-based timeouts for perl code.</p>
+<p>Note that <code>$SIG{ALRM}</code> is used to provide the timeout, so this will not
+interrupt out-of-control regular expression matches.</p>
+<p>Nested timeouts are supported.</p>
+<p>
+</p>
+<hr />
+<h1><a name="public_methods">PUBLIC METHODS</a></h1>
+<dl>
+<dt><strong><a name="new" class="item">my $t = Mail::SpamAssassin::Timeout->new({ ... options ... });</a></strong></dt>
+
+<dd>
+<p>Constructor. Options include:</p>
+<dl>
+<dt><strong><a name="secs_seconds" class="item">secs => $seconds</a></strong></dt>
+
+<dd>
+<p>time interval, in seconds. Optional; if neither <code>secs</code> nor <code>deadline</code> is
+specified, no timeouts will be applied.</p>
+</dd>
+<dt><strong><a name="deadline_unix_timestamp" class="item">deadline => $unix_timestamp</a></strong></dt>
+
+<dd>
+<p>Unix timestamp (seconds since epoch) when a timeout is reached in the latest.
+Optional; if neither <strong>secs</strong> nor <strong>deadline</strong> is specified, no timeouts will
+be applied. If both are specified, the shorter interval of the two prevails.</p>
+</dd>
+</dl>
+</dd>
+<dt><strong><a name="run" class="item">$t-><code>run($coderef)</code></a></strong></dt>
+
+<dd>
+<p>Run a code reference within the currently-defined timeout.</p>
+<p>The timeout is as defined by the <strong>secs</strong> and <strong>deadline</strong> parameters
+to the constructor.</p>
+<p>Returns whatever the subroutine returns, or <code>undef</code> on timeout.
+If the timer times out, <code>$t-<gt</code>timed_out()> will return <code>1</code>.</p>
+<p>Time elapsed is not cumulative; multiple runs of <a href="#run"><code>run</code></a> will restart the
+timeout from scratch. On the other hand, nested timers do observe outer
+timeouts if they are shorter, resignalling a timeout to the level which
+established them, i.e. code running under an inner timer can not exceed
+the time limit established by an outer timer. When restarting an outer
+timer on return, elapsed time of a running code is taken into account.</p>
+</dd>
+<dt><strong><a name="run_and_catch" class="item">$t-><code>run_and_catch($coderef)</code></a></strong></dt>
+
+<dd>
+<p>Run a code reference, as per <code>$t-<gt</code>run()>, but also catching any
+<code>die()</code> calls within the code reference.</p>
+<p>Returns <code>undef</code> if no <code>die()</code> call was executed and <code>$@</code> was unset, or the
+value of <code>$@</code> if it was set. (The timeout event doesn't count as a <code>die()</code>.)</p>
+</dd>
+<dt><strong><a name="timed_out" class="item">$t-><code>timed_out()</code></a></strong></dt>
+
+<dd>
+<p>Returns <code>1</code> if the most recent code executed in <a href="#run"><code>run()</code></a> timed out, or
+<code>undef</code> if it did not.</p>
+</dd>
+<dt><strong><a name="reset" class="item">$t-><code>reset()</code></a></strong></dt>
+
+<dd>
+<p>If called within a <a href="#run"><code>run()</code></a> code reference, causes the current alarm timer
+to be restored to its original setting (useful after our alarm setting was
+clobbered by some underlying module).</p>
+</dd>
+</dl>
+
+</body>
+
+</html>
Added: spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Timeout.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Timeout.txt?rev=1138498&view=auto
==============================================================================
--- spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Timeout.txt (added)
+++ spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Timeout.txt Wed Jun 22 15:00:59 2011
@@ -0,0 +1,75 @@
+NAME
+ Mail::SpamAssassin::Timeout - safe, reliable timeouts in perl
+
+SYNOPSIS
+ # non-timeout code...
+
+ my $t = Mail::SpamAssassin::Timeout->new({ secs => 5, deadline => $when });
+
+ $t->run(sub {
+ # code to run with a 5-second timeout...
+ });
+
+ if ($t->timed_out()) {
+ # do something...
+ }
+
+ # more non-timeout code...
+
+DESCRIPTION
+ This module provides a safe, reliable and clean API to provide
+ alarm(2)-based timeouts for perl code.
+
+ Note that $SIG{ALRM} is used to provide the timeout, so this will not
+ interrupt out-of-control regular expression matches.
+
+ Nested timeouts are supported.
+
+PUBLIC METHODS
+ my $t = Mail::SpamAssassin::Timeout->new({ ... options ... });
+ Constructor. Options include:
+
+ secs => $seconds
+ time interval, in seconds. Optional; if neither "secs" nor
+ "deadline" is specified, no timeouts will be applied.
+
+ deadline => $unix_timestamp
+ Unix timestamp (seconds since epoch) when a timeout is reached
+ in the latest. Optional; if neither secs nor deadline is
+ specified, no timeouts will be applied. If both are specified,
+ the shorter interval of the two prevails.
+
+ $t->run($coderef)
+ Run a code reference within the currently-defined timeout.
+
+ The timeout is as defined by the secs and deadline parameters to the
+ constructor.
+
+ Returns whatever the subroutine returns, or "undef" on timeout. If
+ the timer times out, "$t-<gt"timed_out()> will return 1.
+
+ Time elapsed is not cumulative; multiple runs of "run" will restart
+ the timeout from scratch. On the other hand, nested timers do
+ observe outer timeouts if they are shorter, resignalling a timeout
+ to the level which established them, i.e. code running under an
+ inner timer can not exceed the time limit established by an outer
+ timer. When restarting an outer timer on return, elapsed time of a
+ running code is taken into account.
+
+ $t->run_and_catch($coderef)
+ Run a code reference, as per "$t-<gt"run()>, but also catching any
+ "die()" calls within the code reference.
+
+ Returns "undef" if no "die()" call was executed and $@ was unset, or
+ the value of $@ if it was set. (The timeout event doesn't count as a
+ "die()".)
+
+ $t->timed_out()
+ Returns 1 if the most recent code executed in "run()" timed out, or
+ "undef" if it did not.
+
+ $t->reset()
+ If called within a "run()" code reference, causes the current alarm
+ timer to be restored to its original setting (useful after our alarm
+ setting was clobbered by some underlying module).
+
Added: spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Util.html
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Util.html?rev=1138498&view=auto
==============================================================================
--- spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Util.html (added)
+++ spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Util.html Wed Jun 22 15:00:59 2011
@@ -0,0 +1,77 @@
+<?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>Mail::SpamAssassin::Util - utility functions</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<link rev="made" href="mailto:parker@minotaur.apache.org" />
+</head>
+
+<body style="background-color: white">
+
+
+<!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
+
+<ul>
+
+ <li><a href="#name">NAME</a></li>
+ <li><a href="#description">DESCRIPTION</a></li>
+</ul>
+
+<hr name="index" />
+</div>
+<!-- INDEX END -->
+
+<p>
+</p>
+<h1><a name="name">NAME</a></h1>
+<p>Mail::SpamAssassin::Util - utility functions</p>
+<p>
+</p>
+<hr />
+<h1><a name="description">DESCRIPTION</a></h1>
+<p>A general class for utility functions. Please use this for functions that
+stand alone, without requiring a $self object, Portability functions
+especially.</p>
+<p>NOTE: The functions in this module are to be considered private. Their API may
+change at any point, and it's expected that they'll only be used by other
+Mail::SpamAssassin modules. (TODO: we should probably revisit this if
+it's useful for plugin development.)</p>
+<p>NOTE: Utility functions should not be changing global variables such
+as $_, $1, $2, ... $/, etc. unless explicitly documented. If these
+variables are in use by these functions, they should be localized.</p>
+<dl>
+<dt><strong><a name="first_available_module" class="item">$module = first_available_module (@module_list)</a></strong></dt>
+
+<dd>
+<p>Return the name of the first module that can be successfully loaded with
+<code>require</code> from the list. Returns <code>undef</code> if none are available.</p>
+<p>This is used instead of <code>AnyDBM_File</code> as follows:</p>
+<pre>
+ my $module = Mail::SpamAssassin::Util::first_available_module
+ (qw(DB_File GDBM_File NDBM_File SDBM_File));
+ tie %hash, $module, $path, [... args];</pre>
+<p>Note that <code>SDBM_File</code> is guaranteed to be present, since it comes
+with Perl.</p>
+</dd>
+<dt><strong><a name="my" class="item">my ($filepath, $filehandle) = <code>secure_tmpfile()</code>;</a></strong></dt>
+
+<dd>
+<p>Generates a filename for a temporary file, opens it exclusively and
+securely, and returns a filehandle to the open file (opened O_RDWR).</p>
+<p>If it cannot open a file after 20 tries, it returns <code>undef</code>.</p>
+</dd>
+<dt><strong>my ($dirpath) = <code>secure_tmpdir()</code>;</strong></dt>
+
+<dd>
+<p>Generates a directory for temporary files. Creates it securely and
+returns the path to the directory.</p>
+<p>If it cannot create a directory after 20 tries, it returns <code>undef</code>.</p>
+</dd>
+</dl>
+
+</body>
+
+</html>
Added: spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Util.txt
URL: http://svn.apache.org/viewvc/spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Util.txt?rev=1138498&view=auto
==============================================================================
--- spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Util.txt (added)
+++ spamassassin/site/full/3.3.x/doc/Mail_SpamAssassin_Util.txt Wed Jun 22 15:00:59 2011
@@ -0,0 +1,42 @@
+NAME
+ Mail::SpamAssassin::Util - utility functions
+
+DESCRIPTION
+ A general class for utility functions. Please use this for functions
+ that stand alone, without requiring a $self object, Portability
+ functions especially.
+
+ NOTE: The functions in this module are to be considered private. Their
+ API may change at any point, and it's expected that they'll only be used
+ by other Mail::SpamAssassin modules. (TODO: we should probably revisit
+ this if it's useful for plugin development.)
+
+ NOTE: Utility functions should not be changing global variables such as
+ $_, $1, $2, ... $/, etc. unless explicitly documented. If these
+ variables are in use by these functions, they should be localized.
+
+ $module = first_available_module (@module_list)
+ Return the name of the first module that can be successfully loaded
+ with "require" from the list. Returns "undef" if none are available.
+
+ This is used instead of "AnyDBM_File" as follows:
+
+ my $module = Mail::SpamAssassin::Util::first_available_module
+ (qw(DB_File GDBM_File NDBM_File SDBM_File));
+ tie %hash, $module, $path, [... args];
+
+ Note that "SDBM_File" is guaranteed to be present, since it comes
+ with Perl.
+
+ my ($filepath, $filehandle) = secure_tmpfile();
+ Generates a filename for a temporary file, opens it exclusively and
+ securely, and returns a filehandle to the open file (opened O_RDWR).
+
+ If it cannot open a file after 20 tries, it returns "undef".
+
+ my ($dirpath) = secure_tmpdir();
+ Generates a directory for temporary files. Creates it securely and
+ returns the path to the directory.
+
+ If it cannot create a directory after 20 tries, it returns "undef".
+