openbsd-ports/mail/bmf/files/OpenBSD-bmf-mini-howto.html

128 lines
3.2 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>bmf mini-howto</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" >
<link rel="STYLESHEET" href="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/docbook.css">
</head>
<body>
<h3>Theoretical part:</h3>
<p>Before you start to use bmf it is a good thing to know a little bit about
the theoretical background of
<a href="http://www.paulgraham.com/spam.html">Bayesian spamfiltering</a>.
<h3>Training bmf:</h3>
<p>Lets take a look at this basic <tt class="FILENAME">.procmailrc</tt> example.
<dl><dd><pre>
:0fw
* &lt; 256000
| bmf -p
:0e
{
EXITCODE=$?
}
:0:
* ^X-Spam-Status: Yes
zspam # This is the mailbox where all spam goes.
:0w
inbox # This is your inbox</pre></dd></dl>
<p>bmf will now sort your mail in a spam and non-spam folder. Training
bmf means you have to tell it when it has made a mistake.
As an example you can add these shortcuts to your <tt class="FILENAME">.muttrc</tt>
<dl><dd><pre>
macro index &lt;f3&gt; "|bmf -S\n&lt;save-message&gt;=zspam\n" "SPAM"
macro index &lt;f4&gt; "|bmf -N\n&lt;save-message&gt;=inbox\n" "NOT SPAM"
macro pager &lt;f3&gt; "|bmf -S\n&lt;save-message&gt;=zspam\n" "SPAM"
macro pager &lt;f4&gt; "|bmf -N\n&lt;save-message&gt;=inbox\n" "NOT SPAM"
</pre></dd></dl>
<p>Now you can press the F3 button to tell bmf a message in your inbox
is spam ( <tt class="FILENAME">bmf -S</tt> ) and move it to your
spam-folder. If you find a non-spam message in your spam-folder you
can press F4 and bmf will unregister the message as spam and put it
in your normal mailfolder.
<h3>Feeding a spam-archive to bmf:</h3>
<p>To speed up the process of feeding the bmf-database you can also
download a recent
<a href="http://www.em.ca/~bruceg/spam/">spam archive</a>
and run the files in the archive through the following one-liner:
<dl><dd><pre>for i in * ; do bmf -s -i $i; done</pre></dd></dl>
<p>This method is not recommended by the author since the headers of a
message are also taken in account. And the headers of the messages
from a spam-archive do not match yours. But I had good results with
this method.
<h3>Mixing with SpamAssassin:</h3>
<p>You can also mix bmf with
<a href="http://spamassassin.org">SpamAssassin</a>.
bmf is much lighter than spamassassin but SpamAssassin does not have
to be trained. You can actually use SpamAssassin to train bmf. Change
your <tt class="FILENAME">.procmailrc</tt> to something like this:
<dl><dd><pre>
:0fw
* &lt; 256000
| bmf -p
:0e
{
EXITCODE=$?
}
:0:
* ^X-Spam-Status: Yes
zspam-bmf
:0fw
* &lt; 256000
| spamc -p 4321 -f
:0e
{
EXITCODE=$?
}
:0:
* ^X-Spam-Status: Yes
{
:0c
| spamassassin -d | bmf -S
:0
zspam-sa
}
:0w
inbox</pre></dd></dl>
<p>All spam caught by bmf will be send to the zspam-bmf folder. All spam
missed by bmf but caught by SpamAssassin will be fed to bmf for
training and then send to the zspam-sa folder.
<h3>Disclaimer:</h3>
<p>If anything bad happens to your email I am not responsible. If you
have any improvements to this document please send them to the
maintainer of this port.
</body>
</html>