128 lines
3.2 KiB
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
|
|
* < 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 <f3> "|bmf -S\n<save-message>=zspam\n" "SPAM"
|
|
macro index <f4> "|bmf -N\n<save-message>=inbox\n" "NOT SPAM"
|
|
macro pager <f3> "|bmf -S\n<save-message>=zspam\n" "SPAM"
|
|
macro pager <f4> "|bmf -N\n<save-message>=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
|
|
* < 256000
|
|
| bmf -p
|
|
|
|
:0e
|
|
{
|
|
EXITCODE=$?
|
|
}
|
|
|
|
:0:
|
|
* ^X-Spam-Status: Yes
|
|
zspam-bmf
|
|
|
|
|
|
:0fw
|
|
* < 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>
|