@menu
* Usage of Spam Filter:: \e$B;H$$J}\e(B
-* Spam Filter Processor:: \e$BBP1~$7$F$$$k\e(B Spam Filter
+* Spam Filter Processors:: \e$BBP1~$7$F$$$k\e(B Spam Filter
@end menu
-@node Usage of Spam Filter, Spam Filter Processor, Spam Filter, Spam Filter
+@node Usage of Spam Filter, Spam Filter Processors, Spam Filter, Spam Filter
@section \e$B;H$$J}\e(B
@subsection \e$B=i4|@_Dj\e(B
@end table
-@node Spam Filter Processor, , Usage of Spam Filter, Spam Filter
+@node Spam Filter Processors, , Usage of Spam Filter, Spam Filter
@section \e$BBP1~$7$F$$$k\e(B Spam Filter
@cindex Spam Filter, Bogofilter
@cindex Spam Filter, Spamfilter
@menu
* bogofilter:: bogofilter
* spamfilter:: spamfilter.el
-* Bsfilter:: bsfilter
+* bsfilter:: bsfilter
* SpamAssassin:: SpamAssassin
@end menu
-@node bogofilter, spamfilter, Spam Filter Processor, Spam Filter Processor
+@node bogofilter, spamfilter, Spam Filter Processors, Spam Filter Processors
@subsection bogofilter
@cindex bogofilter
@item elmo-spam-bogofilter-program
@vindex elmo-spam-bogofilter-program
\e$B=i4|@_Dj$O!"\e(B@file{bogofilter}\e$B!#\e(B
-bogofiler \e$B$N<B9T%U%!%$%k$NL>A0$r@_Dj$7$^$9!#<B9T%U%!%$%k$,!"4D6-JQ?t\e(B
+bogofilter \e$B$N<B9T%U%!%$%k$NL>A0$r@_Dj$7$^$9!#<B9T%U%!%$%k$,!"4D6-JQ?t\e(B
@env{PATH} \e$B>e$K$J$$>l9g$O!"%U%k%Q%9$r@_Dj$9$kI,MW$,$"$j$^$9!#\e(B
@item elmo-spam-bogofilter-args
@end table
-@node spamfilter, Bsfilter, bogofilter, Spam Filter Processor
+@node spamfilter, bsfilter, bogofilter, Spam Filter Processors
@subsection spamfilter.el
@cindex spamfilter
\e$B%3!<%Q%9%U%!%$%k$NL>A0$r@_Dj$7$^$9!#\e(B
@end table
-@node Bsfilter, SpamAssassin, spamfilter, Spam Filter Processor
+@node bsfilter, SpamAssassin, spamfilter, Spam Filter Processors
@subsection bsfilter
@cindex bsfilter
-not yet documented...
+bsfilter (@uref{http://bsfilter.org/}) \e$B$O!"\e(BRuby \e$B$G<BAu$5$l$?\e(B spam \e$B%U%#%k%?$G$9!#\e(B
-@node SpamAssassin, , Bsfilter, Spam Filter Processor
+bsfilter \e$B$K$h$k\e(B spam \e$B%U%#%k%?$r;HMQ$9$k$K$O!"\e(B@file{~/.wl} \e$B$J$I$K0J2<$N\e(B
+\e$B@_Dj$r5-=R$7$^$9!#\e(B
+
+@lisp
+@group
+(setq elmo-spam-scheme 'bsfilter)
+@end group
+@end lisp
+
+@subsubsection \e$B%+%9%?%^%$%:JQ?t\e(B
+
+@table @code
+@item elmo-spam-bsfilter-program
+@vindex elmo-spam-bsfilter-program
+\e$B=i4|@_Dj$O\e(B @file{bsfilter}\e$B!#\e(B
+@command{bsfilter} \e$B$N<B9T%U%!%$%k$NL>A0$r@_Dj$7$^$9!#<B9T%U%!%$%k$,!"\e(B
+\e$B4D6-JQ?t\e(B @env{PATH} \e$B>e$K$J$$>l9g$O!"%U%k%Q%9$r@_Dj$9$kI,MW$,$"$j$^$9!#\e(B
+
+@item elmo-spam-bsfilter-args
+@vindex elmo-spam-bsfilter-args
+\e$B=i4|@_Dj$O!"\e(B@code{nil}\e$B!#\e(B
+bsfilter \e$B$N<B9T;~$K<B9T%U%!%$%k$KEO$5$l$k0z?t$r;XDj$7$^$9!#\e(B
+
+@item elmo-spam-bsfilter-database-directory
+@vindex elmo-spam-bsfilter-database-directory
+\e$B;HMQ$9$kE}7W%G!<%?%Y!<%9$NB8:_$9$k%G%#%l%/%H%j$r;XDj$7$^$9!#\e(B@code{nil}
+\e$B$J$i%G%U%)%k%H$N0LCV\e(B (@file{~/.bsfilter}) \e$B$,;HMQ$5$l$^$9!#\e(B
+\e$B=i4|@_Dj$O!"\e(B@code{nil}\e$B!#\e(B
+
+@item elmo-spam-bsfilter-debug
+@vindex elmo-spam-bsfilter-debug
+\e$B=i4|@_Dj$O!"\e(B@code{nil}\e$B!#\e(B
+non-nil \e$B$r;XDj$9$k$H!"\e(B@command{bsfilter} \e$B$+$i$N=PNO$,\e(B
+@code{"*Debug ELMO Bsfilter*"}\e$B$H$$$&%P%C%U%!$K=PNO$5$l$^$9!#\e(B
+
+@item elmo-spam-bsfilter-shell-program
+@vindex elmo-spam-bsfilter-shell-program
+\e$B=i4|@_Dj$O!"\e(B@file{ruby}\e$B!#\e(B
+bsfilter \e$B$r5/F0$9$k%7%'%k$NL>A0$r@_Dj$7$^$9!#%7%'%k$,4D6-JQ?t\e(B
+@env{PATH} \e$B>e$K$J$$>l9g$O!"%U%k%Q%9$r@_Dj$9$kI,MW$,$"$j$^$9!#\e(B
+
+@item elmo-spam-bsfilter-shell-switch
+@vindex elmo-spam-bsfilter-shell-switch
+\e$B=i4|@_Dj$O!"\e(B@code{nil}\e$B!#\e(B
+bsfilter \e$B$r5/F0$9$k%7%'%k$KM?$($k0z?t$r;XDj$7$^$9!#\e(B
+
+@item elmo-spam-bsfilter-update-switch
+@vindex elmo-spam-bsfilter-update-switch
+\e$B=i4|@_Dj$O!"\e(B@code{"--synchronous-auto-update"}\e$B!#\e(B
+\e$B%a%C%;!<%8$r3X=,$9$k:]$K\e(B @command{bsfilter} \e$B$KM?$($k0z?t$r;XDj$7$^$9!#\e(B
+
+@end table
+
+@node SpamAssassin, , bsfilter, Spam Filter Processors
@subsection SpamAssassin
@cindex SpamAssassin
@menu
* Usage of Spam Filter:: Usage of Spam Filter
-* Spam Filter Processor:: Supported spam filters
+* Spam Filter Processors:: Supported spam filters
@end menu
-@node Usage of Spam Filter, Spam Filter Processor, Spam Filter, Spam Filter
+@node Usage of Spam Filter, Spam Filter Processors, Spam Filter, Spam Filter
@section Usage of Spam Filter
@subsection Initial Setting
@end table
-@node Spam Filter Processor, , Usage of Spam Filter, Spam Filter
+@node Spam Filter Processors, , Usage of Spam Filter, Spam Filter
@section Supported Spam Filters
@cindex Spam Filter, Bogofilter
@cindex Spam Filter, Spamfilter
@menu
* bogofilter:: bogofilter
* spamfilter:: spamfilter.el
-* Bsfilter:: bsfilter
+* bsfilter:: bsfilter
* SpamAssassin:: SpamAssassin
@end menu
-@node bogofilter, spamfilter, Spam Filter Processor, Spam Filter Processor
+@node bogofilter, spamfilter, Spam Filter Processors, Spam Filter Processors
@subsection bogofilter
@cindex bogofilter
@item elmo-spam-bogofilter-program
@vindex elmo-spam-bogofilter-program
The initial setting is @file{bogofilter}.
-Specify the name of executable of bogofiler. If the executable
+Specify the name of executable of bogofilter. If the executable
is not in your environmental variable @env{PATH}, you should
set this by full path.
@end table
-@node spamfilter, Bsfilter, bogofilter, Spam Filter Processor
+@node spamfilter, bsfilter, bogofilter, Spam Filter Processors
@subsection spamfilter.el
@cindex spamfilter
It specifies the name of corpus file.
@end table
-@node Bsfilter, SpamAssassin, spamfilter, Spam Filter Processor
+@node bsfilter, SpamAssassin, spamfilter, Spam Filter Processors
@subsection bsfilter
@cindex bsfilter
-not yet documented...
+bsfilter (@uref{http://bsfilter.org/index-e.html}) is a spam filter
+implemented by Ruby language.
-@node SpamAssassin, , Bsfilter, Spam Filter Processor
+To use spam filter with bsfilter, write following setting in
+@file{~/.wl} or somewhere else.
+
+@lisp
+@group
+(setq elmo-spam-scheme 'bsfilter)
+@end group
+@end lisp
+
+@subsubsection Customizable Variables
+
+@table @code
+@item elmo-spam-bsfilter-program
+@vindex elmo-spam-bsfilter-program
+The initial setting is @file{bsfilter}.
+Specify the name of executable of @command{bsfilter}. If the executable
+is not in your environmental variable @env{PATH}, you should
+set this by full path.
+
+@item elmo-spam-bsfilter-args
+@vindex elmo-spam-bsfilter-args
+The initial setting is @code{nil}.
+Specify arguments to be supplied for bsfilter executable.
+
+@item elmo-spam-bsfilter-database-directory
+@vindex elmo-spam-bsfilter-database-directory
+Specify the directory for statistical database to be used.
+@code{nil} to use default directory (@file{~/.bsfilter}).
+The initial setting is @code{nil}.
+
+@item elmo-spam-bsfilter-debug
+@vindex elmo-spam-bsfilter-debug
+The initial setting is @code{nil}.
+If you specify non-nil, the output from @command{bsfilter} is
+stored in the buffer named @code{"*Debug ELMO Bsfilter*"}.
+
+@item elmo-spam-bsfilter-shell-program
+@vindex elmo-spam-bsfilter-shell-program
+The initial setting is @file{ruby}.
+Specify the shell to execute @command{bsfilter}. If the shell is not
+in your environmental variable @env{PATH}, you should set this by full path.
+
+@item elmo-spam-bsfilter-shell-switch
+@vindex elmo-spam-bsfilter-shell-switch
+The initial setting is @code{nil}.
+Specify options to give to the shell executing @command{bsfilter}.
+
+@item elmo-spam-bsfilter-update-switch
+@vindex elmo-spam-bsfilter-update-switch
+The initial setting is @code{"--synchronous-auto-update"}.
+Specify options to give to @command{bsfilter} for learning messages.
+
+@end table
+
+@node SpamAssassin, , bsfilter, Spam Filter Processors
@subsection SpamAssassin
@cindex SpamAssassin