+Gnus\e$B!"$=$l$O\e(B(\e$B8@$$EA$($K$h$l$P\e(B)\e$B$+$D$F=q$+$l$?$$$+$J$k%W%m%0%i%`$h$j$bBg$-\e(B
+\e$B$/!"$"$J$?$,$d$C$FM_$7$$$H;W$&$5$^$6$^$J4qL/$J$3$H$r!"$"$J$?$N$$$J$$$H$3\e(B
+\e$B$m$G9T$C$F$/$l$k$b$N$G$9!#Nc$($P!"$"$J$?$O;~$?$^?7Ce%a!<%k$r%A%'%C%/$7$F\e(B
+\e$B$b$i$$$?$$$+$bCN$l$^$;$s!#$"$k$$$O\e(B Emacs \e$B$r$7$P$i$/J|$C$F$*$$$?$H$-A4$F\e(B
+\e$B$N%5!<%P$N@\B3$r@ZCG$7$F$b$i$$$?$/$J$k$+$b$7$l$^$;$s!#B>$K$b2?$+$=$&$$$C\e(B
+\e$B$?$3$H$G$9!#\e(B
+
+Gnus \e$B$O$5$^$6$^$J@)8f;R\e(B @dfn{handlers} \e$B$rDj5A$9$k$3$H$K$h$C$F$=$N$h$&$J\e(B
+\e$B$3$H$r2DG=$K$7$^$9!#3F@)8f;R$O;0$D$NMWAG$+$i@.$j$^$9!#\e(B
+@var{\e$B4X?t\e(B}, @var{\e$B;~4V\e(B}, @var{\e$B6uE>\e(B} \e$B%Q%i%a!<%?$G$9!#\e(B
+
+\e$B0J2<$O\e(B Emacs \e$B$,2?$b$7$J$$6uE>>uBV$,;0==J,B3$$$?$H$-$K@\B3$r@ZCG$9$k@)8f\e(B
+\e$B;R$NNc$G$9!#\e(B
+
+@lisp
+(gnus-demon-close-connections nil 30)
+@end lisp
+
+\e$B0J2<$O\e(B Emacs \e$B$,2?$b$7$F$$$J$$$H$-!"0l;~4VKh$K\e(B @acronym{PGP} \e$B%X%C%@!<$rAv\e(B
+\e$B::$9$k@)8f;R$G$9!#\e(B
+
+@lisp
+(gnus-demon-scan-pgp 60 t)
+@end lisp
+
+\e$B$3$N\e(B @var{\e$B;~4V\e(B} \e$B%Q%i%a!<%?$H$=$7$F\e(B @var{\e$B6uE>\e(B} \e$B%Q%i%a!<%?$O!"4qL/$G$+$DAG\e(B
+\e$B@2$i$7$$J}K!$G0l=o$KF0:n$7$^$9!#4pK\E*$K$O!"\e(B@var{\e$B6uE>\e(B} \e$B$,\e(B @code{nil} \e$B$N\e(B
+\e$B;~$K$O$3$N4X?t$O\e(B @var{\e$B;~4V\e(B} \e$BJ,Kh$K8F$S=P$5$l$^$9!#\e(B
+
+\e$B$b$7\e(B @var{\e$B6uE>\e(B} \e$B$,\e(B @code{t} \e$B$G$"$l$P!"$3$N4X?t$O\e(B Emacs \e$B$,2?$b$7$F$$$J$$\e(B
+\e$B;~$K8B$j!"\e(B@var{\e$B;~4V\e(B} \e$BJ,8e$K8F$S=P$5$l$^$9!#0lC6\e(B Emacs \e$B$,$:$C$H6uE>>uBV$K\e(B
+\e$B$J$C$?8e$O!"$3$N4X?t$O\e(B @var{\e$B;~4V\e(B} \e$BJ,Kh$K8F$S=P$5$l$^$9!#\e(B
+
+@var{\e$B6uE>\e(B} \e$B$,?t$G\e(B @var{\e$B;~4V\e(B} \e$B$b?t$G$"$k>l9g!"$3$N4X?t$O!"\e(BEmacs \e$B$N6uE>>u\e(B
+\e$BBV$,\e(B @var{\e$B6uE>\e(B} \e$BJ,B3$$$?;~$K8B$j!"\e(B@var{\e$B;~4V\e(B} \e$BJ,Kh$K8F$S=P$5$l$^$9!#\e(B
+
+@var{\e$B6uE>\e(B} \e$B$,?t$G\e(B @var{\e$B;~4V\e(B} \e$B$,\e(B @code{nil} \e$B$N>l9g!"$3$N4X?t$O!"\e(BEmacs \e$B$N\e(B
+\e$B6uE>>uBV$,\e(B @var{\e$B6uE>\e(B} \e$BJ,B3$/EY$K0lEY8F$S=P$5$l$^$9!#\e(B
+
+\e$B$=$7$F\e(B @var{\e$B;~4V\e(B} \e$B$,J8;zNs$N>l9g$O!"\e(B@samp{07:31} \e$B$N$h$&$J7A<0$G$J$1$l$P\e(B
+\e$B$J$i$:!"$3$N4X?t$OKhF|$=$N:"$N;~4V$K$J$k$H0lEY8F$S=P$5$l$^$9!#$b$A$m$s!"\e(B
+@var{\e$B6uE>\e(B} \e$B%Q%i%a!<%?$GF0:n$,JQ$o$j$^$9!#\e(B
+
+@vindex gnus-demon-timestep
+(\e$B$3$3$G\e(B ``\e$BJ,\e(B'' \e$B$H8@$C$?$H$-!"$=$l$O<B:]$K\e(B
+\e$B$O\e(B @code{gnus-demon-timestep} \e$BIC$N$3$H$G$9!#$3$l$O=i4|@_Dj$G$O\e(B 60 \e$B$G$9!#\e(B
+\e$B$b$7$3$NJQ?t$rJQ99$9$k$H!"A4$F$N@)8f;R$N7W;~$K1F6A$rM?$($^$9!#\e(B)
+
+\e$B$H$$$&$o$1$G!"@)8f;R$rDI2C$7$?$1$l$P!"\e(B@file{~/.gnus.el} \e$B%U%!%$%k$K!"0J2<\e(B
+\e$B$N$h$&$J$b$N$r=q$/$3$H$,$G$-$^$9!#\e(B
+
+@findex gnus-demon-add-handler
+@lisp
+(gnus-demon-add-handler 'gnus-demon-close-connections 30 t)
+@end lisp
+
+@findex gnus-demon-add-nocem
+@findex gnus-demon-add-scanmail
+@findex gnus-demon-add-rescan
+@findex gnus-demon-add-scan-timestamps
+@findex gnus-demon-add-disconnection
+\e$B$3$N$?$a$N4{@=4X?t$,$$$/$D$+:n@.$5$l$F$$$^$9!#\e(B@code{gnus-demon-add-nocem},
+@code{gnus-demon-add-disconnection},
+@code{gnus-demon-add-nntp-close-connection},
+@code{gnus-demon-add-scan-timestamps}, @code{gnus-demon-add-rescan},
+@code{gnus-demon-add-scanmail} \e$B$G\e(B
+\e$B$9!#$3$l$i$NG=NO$,M_$7$1$l$P!"C1$K$3$l$i$N4X?t$r\e(B @file{~/.gnus.el} \e$B$KF~\e(B
+\e$B$l$F$/$@$5$$!#\e(B
+
+@findex gnus-demon-init
+@findex gnus-demon-cancel
+@vindex gnus-demon-handlers
+\e$B$b$7\e(B @code{gnus-demon-handlers} \e$B$G@)8f;R$rD>@\DI2C$7$?>l9g$K$O!"$=$l$r8z\e(B
+\e$B$+$;$k$?$a$K\e(B @code{gnus-demon-init} \e$B$r<B9T$7$F$/$@$5$$!#A4$F$N%G!<%b%s$r\e(B
+\e$B<h$j>C$9$K$O!"\e(B@code{gnus-demon-cancel} \e$B4X?t$r;H$&$3$H$,$G$-$^$9!#\e(B
+
+\e$B%G!<%b%s$NDI2C$O!"$d$j$9$.$k$N$O$H$C$F$b$*9T57$N$h$/$J$$$3$H$G$9!#A4$F$N\e(B
+\e$B%5!<%P!<$+$iA4$F$N%K%e!<%9$H%a!<%k$rFsICKh$KD4$Y$^$o$94X?t$rIU$12C$($A$c$C\e(B
+\e$B$?$j$9$k$H!"$I$s$JN)GI$J%7%9%F%`$G$b4V0c$$$J$/$*J'$$H"$K$7$F$7$^$$$^$9!#\e(B
+\e$B$=$&F0$/$s$@$b$s!#\e(B
+
+@node NoCeM
+@section NoCeM
+@cindex nocem
+@cindex spam
+
+@dfn{Spam} \e$B$H$O!"F1$85-;v$r2?2s$b2?2s$b2?2s$bEj9F$9$k$3$H$G$9!#\e(BSpam \e$B$O0-\e(B
+\e$B$$$3$H$G$9!#\e(BSpam \e$B$O6'0-$G$9!#\e(B
+
+Spam \e$B$ODL>o0lF|$+$=$3$i$G!"$5$^$6$^$JH?\e(B spam \e$B5!4X$+$i<h$j>C$7$5$l$^$9!#\e(B
+\e$B$3$l$i$N5!4X$ODL>o0l=o$K!"\e(B@dfn{NoCeM} \e$B%a%C%;!<%8$bAw?.$7$^$9!#\e(B
+@dfn{NoCeM} \e$B$O\e(B ``no see-'em'' (\e$BH`$i$r8+$?$/$J$$\e(B)\e$B$HH/2;$5$l!"0UL#$O$=$NL>\e(B
+\e$BA0$NDL$j$G$9\e(B --- \e$B$3$N%a%C%;!<%8$O!":a$rHH$7$F$$$k5-;v$r!"$D$^$j!">C$7$F\e(B
+\e$B$7$^$$$^$9!#\e(B
+
+\e$B$I$&$;$=$N5-;v$,<h$j>C$7$5$l$F$7$^$&$N$J$i!"$3$l$i\e(B NoCeM \e$B%a%C%;!<%8$O2?\e(B
+\e$B$K;H$o$l$k$N$G$7$g$&\e(B? \e$B$"$k%5%$%H$G$O<h$j>C$7%a%C%;!<%8$r0z$-<u$1$:!"$"$k\e(B
+\e$B%5%$%H$G$OFCDj$N?t?M$+$i$N<h$j>C$7%a%C%;!<%8$N$_$7$+0z$-<u$1$^$;$s!#$=$l\e(B
+\e$B$G!"$"$J$?$O\e(B NoCeM \e$B%a%C%;!<%8$r;H$$$?$/$J$k$+$b$7$l$J$$$o$1$G$9!#$3$l$i\e(B
+\e$B$O\e(B @samp{alt.nocem.misc} \e$B%K%e!<%9%0%k!<%W$GG[I[$5$l$F$$$^$9!#\e(B
+
+Gnus \e$B$O$3$N%0%k!<%W$N%a%C%;!<%8$r<+F0E*$KFI$_!"2r<a$9$k$3$H$,$G$-!"$3$l\e(B
+\e$B$G\e(B spam \e$B$r>C$75n$j$^$9!#\e(B
+
+\e$B$b$A$m$s!"$3$l$i$r%+%9%?%^%$%:$9$k$?$a$NJQ?t$,$$$/$D$+$"$j$^$9!#\e(B
+
+@table @code
+@item gnus-use-nocem
+@vindex gnus-use-nocem
+\e$B$3$NJQ?t$r\e(B @code{t} \e$B$K@_Dj$9$k$3$H$G3hF0$r3+;O$5$;$^$9!#=i4|@_Dj$G\e(B
+\e$B$O\e(B @code{nil} \e$B$G$9!#\e(B
+
+@item gnus-nocem-groups
+@vindex gnus-nocem-groups
+Gnus \e$B$O$3$N%0%k!<%W%j%9%H$+$i\e(B NoCeM \e$B%a%C%;!<%8$rC5$7$^$9!#=i4|@_DjCM\e(B
+\e$B$O\e(B @code{("news.lists.filters" "news.admin.net-abuse.bulletins"
+"alt.nocem.misc" "news.admin.net-abuse.announce")} \e$B$G$9!#\e(B
+
+@item gnus-nocem-issuers
+@vindex gnus-nocem-issuers
+NoCeM \e$B%a%C%;!<%8$rH/9T$9$k?M$O$?$/$5$s$$$^$9!#$3$N%j%9%H$G$O!"C/$N8@$&$3\e(B
+\e$B$H$K=>$$$?$$$+$r;XDj$7$^$9!#=i4|@_DjCM$O\e(B @code{(("Automoose-1"
+"clewis@@ferret.ocunix.on.ca" "cosmo.roadkill" "SpamHippo"
+"hweede@@snafu.de")} \e$B$G$9!#H`$i$O$_$s$J!"N)GI$G9b7i$J;TL1$G$9!#\e(B
+
+\e$B$3$N%j%9%H$K4^$a$i$l$kM-L>$JH?\e(B spam \e$B2H$?$A\e(B
+\e$B$O\e(B @uref{http://www.xs4all.nl/~rosalind/nocemreg/nocemreg.html} \e$B$K:\$C$F\e(B
+\e$B$$$^$9!#\e(B
+
+\e$B$3$l$iA4$F$N?M!9$N\e(B NoCeM \e$B%a%C%;!<%8$KN10U$9$kI,MW$O$"$j$^$;$s\e(B --- \e$B8@$&$3\e(B
+\e$B$H$rJ9$-$?$$?M$@$1$G$$$$$s$G$9!#$^$?$=$N?M$+$i$N\e(B NoCeM\e$B%a%C%;!<%8A4$F$r<u\e(B
+\e$B$1F~$l$kI,MW$b$"$j$^$;$s!#\e(BNoCeM \e$B%a%C%;!<%8$K$O$=$l$>$l<oJL\e(B @dfn{type} \e$B%X%C\e(B
+\e$B%@!<$,$D$$$F$*$j!"$3$l$O$=$N%a%C%;!<%8$N87L)$JDj5A$rM?$($F$$$^$9\e(B(\e$BB?>/$O\e(B
+\e$B87L)$J!"DxEY$M!#$?$$$F$$$O>/$@$1$I\e(B)\e$B!#NI$/;H$o$l$k<oJL$K$O!"\e(B
+@samp{spam}, @samp{spew}, @samp{mmf}, @samp{binary}, @samp{troll} \e$B$,$"$j\e(B
+\e$B$^$9!#$3$l$r;XDj$9$k$K$O!"%j%9%H$NCf$G\e(B @code{(@var{\e$BH/9T<T\e(B} @var{\e$B>r\e(B
+\e$B7o\e(B} @dots{})} \e$BMWAG$r;H$&I,MW$,$"$j$^$9!#3F>r7o$OJ8;zNs\e(B (\e$B;H$$$?$$<oJL$K%^%C\e(B
+\e$B%A$9$k@55,I=8=\e(B) \e$B$+!"$^$?$O\e(B @code{(not @var{\e$BJ8;zNs\e(B})} \e$B$H$$$&7A<0$N%j%9%H\e(B
+\e$B$G$9!#$3$N>l9g$O\e(B @var{\e$BJ8;zNs\e(B} \e$B$O;H$$$?$/$J$$<oJL$K%^%C%A$9$k@55,I=8=$G$9\e(B
+
+\e$BNc$($P!"\e(BChris Lewis \e$B$+$i$N\e(B NoCeM \e$B%a%C%;!<%8$G!"\e(B@samp{troll} \e$B%a%C%;!<%80J\e(B
+\e$B30$NA4$F$rM_$7$$>l9g$K$O!"\e(B
+
+@lisp
+("clewis@@ferret.ocunix.on.ca" ".*" (not "troll"))
+@end lisp
+
+\e$B0lJ}!"H`$N\e(B @samp{spam} \e$B$H\e(B @samp{spew} \e$B%a%C%;!<%80J30$O2?$b$7$?$/$J$1$l$P!"\e(B
+\e$B0J2<$N$h$&$K$G$-$^$9!#\e(B
+
+@lisp
+("clewis@@ferret.ocunix.on.ca" (not ".*") "spew" "spam")
+@end lisp
+
+\e$B$3$N;XDj$O:8$+$i1&$KE,MQ$5$l$^$9!#\e(B
+
+@item gnus-nocem-verifyer
+@vindex gnus-nocem-verifyer
+@findex mc-verify
+\e$B$3$l$O\e(B NoCeM \e$BH/9T<T$,C/$G$"$k$+$H8@$C$F$$$k$+$r>ZL@$9$k4X?t$G$J$/$F$O$J\e(B
+\e$B$j$^$;$s!#=i4|@_Dj$G$O\e(B @code{mc-verify} \e$B$G$"$j!"$3$l$O\e(B Mailcrypt \e$B4X?t$G\e(B
+\e$B$9!#$b$7$3$l$,Hs>o$KCY$/$F!"$"$J$?$,>ZL@7k2L$r5$$K$7$J$$\e(B (\e$B$3$l$O$?$V$s4m\e(B
+\e$B81$G$9\e(B) \e$B$N$G$"$l$P!"$3$NJQ?t$r\e(B @code{nil} \e$B$K$9$k$3$H$,$G$-$^$9!#\e(B
+
+\e$B$b$7=pL>:Q$_$N\e(B NoCeM \e$B%a%C%;!<%8$r>ZL@:Q$_!"L$=pL>$N%a%C%;!<%8$rL$>Z\e(B
+\e$BL@\e(B (\e$B$G$b$=$l$r;H$&\e(B) \e$B$H$7$?$$$N$J$i!"0J2<$N$h$&$K$9$k$3$H$,$G$-$^$9!#\e(B
+
+@lisp
+(setq gnus-nocem-verifyer 'my-gnus-mc-verify)
+
+(defun my-gnus-mc-verify ()
+ (not (eq 'forged
+ (ignore-errors
+ (if (mc-verify)
+ t
+ 'forged)))))
+@end lisp
+
+\e$B$^$"!"$3$l$O$?$V$s4m81$G$7$g$&$1$I$M!#\e(B
+
+@item gnus-nocem-directory
+@vindex gnus-nocem-directory
+\e$B$3$l$O\e(B gnus \e$B$,\e(B NoCeM \e$B%-%c%C%7%e%U%!%$%k$rJ]B8$9$k>l=j$G$9!#=i4|@_DjCM\e(B
+\e$B$O\e(B @file{~/News/NoCeM/} \e$B$G$9!#\e(B
+
+@item gnus-nocem-expiry-wait
+@vindex gnus-nocem-expiry-wait
+\e$B8E$$\e(B NoCeM \e$B9`L\$r%-%c%C%7%e$+$i>C$9$^$G$NF|?t!#=i4|@_DjCM$O\e(B 15 \e$B$G$9!#$3\e(B
+\e$B$l$rC;$/$9$k$[$I\e(B gnus \e$B$OB.$/$J$j$^$9$,!"8E$$\e(B spam \e$B$r8+$k$3$H$K$J$C$F$7$^\e(B
+\e$B$&$+$b$7$l$^$;$s!#\e(B
+
+@item gnus-nocem-check-from
+@vindex gnus-nocem-check-from
+\e$BHs\e(B@code{nil} \e$B$G$O!"5-;v$N%\%G%#$K$"$kH/9T?M$N@5Ev@-$rD4$Y$^$9!#$=$&$G$J\e(B
+\e$B$$>l9g$O!"Cx<T$,@5$7$$H/9T?M$G$J$/$F$b5$$K$;$:$K5-;v$r<h$j9~$_$^$9$,!"$b\e(B
+\e$B$7$"$J$?$,@5$7$$H/9T?M$r8+J,$1$i$l$k$J$i$P!"$=$&$7$?J}$,$H$F$bB.$/$J$k$G\e(B
+\e$B$7$g$&!#\e(B
+
+@item gnus-nocem-check-article-limit
+@vindex gnus-nocem-check-article-limit
+\e$BHs\e(B@code{nil} \e$B$G!"A4$F$N\e(B NoCeM \e$B%0%k!<%W$K$*$1$k%A%'%C%/$9$k5-;v$N:GBg?t$r\e(B
+\e$B;XDj$7$^$9!#\e(BNoCeM \e$B%0%k!<%W$O5pBg$K$J$k$3$H$,$"$j!"$=$&$J$k$H=hM}$,$H$F$b\e(B
+\e$BCY$/$J$j$^$9!#\e(B
+@end table
+
+NoCeM \e$B$r;H$&$H!"$b$7$+$9$k$H%a%b%j6t$$$K$J$k$+$b$7$l$^$;$s!#$"$J$?$,$?$/\e(B
+\e$B$5$s$N@8$-$?%0%k!<%W\e(B (\e$B$D$^$j9XFI$"$k$$$OHs9XFI%0%k!<%W\e(B) \e$B$r;}$C$F$$$k$N$J\e(B
+\e$B$i!"\e(BEmacs \e$B%W%m%;%9$OBg$-$/$J$C$F$7$^$&$G$7$g$&!#$b$7$3$l$,LdBj$G$"$l$P!"\e(B
+\e$BHs9XFI$N%0%k!<%W$rA4It\e(B (\e$B$"$k$$$O$=$NB?$/$r\e(B) \e$B>C$75n$C$F$7$^$C$?J}$,NI$$$G\e(B
+\e$B$9\e(B (@pxref{Subscription Commands})\e$B!#\e(B
+
+@node Undo
+@section \e$B$d$jD>$7\e(B
+@cindex undo
+
+\e$B<B9T$7$?$3$H$N$d$jD>$7$,$G$-$k$H!"$H$F$bJXMx$G$9!#IaDL$N\e(B Emacs \e$B%P%C%U%!\e(B
+\e$B$G$O!"$3$l$O==J,4JC1$G$9\e(B --- \e$BC1$K\e(B @code{undo} \e$B%\%?%s$r2!$9$@$1$G$9!#$7$+\e(B
+\e$B$7\e(B gnus \e$B$N%P%C%U%!$G$O!"$3$l$O4JC1$G$O$"$j$^$;$s!#\e(B
+
+Gnus \e$B$,%P%C%U%!!<Fb$KI=<($7$F$$$k$b$N$O!"\e(Bgnus \e$B$K$H$C$F$OA4$/2?$N2ACM$b$"\e(B
+\e$B$j$^$;$s\e(B --- \e$B$3$l$O$_$s$J!"MxMQ<T$K4qNo$K8+$($k$h$&$K%G%6%$%s$5$l$F$$$k\e(B
+\e$B$?$@$N%G!<%?$J$N$G$9!#\e(B@kbd{C-k} \e$B$G%0%k!<%W%P%C%U%!$+$i%0%k!<%W$r>C5n$9$k\e(B
+\e$B$N$O!"$=$N9T$O>C$(5n$j$^$9$,!"$=$l$O<B:]$NF0:n\e(B --- \e$BLdBj$N%0%k!<%W\e(B
+\e$B$r\e(B gnus \e$B$NFbIt9=B$BN$+$i:o=|$9$k$3$H!"$NC1$J$kI{:nMQ$G$7$+$"$j$^$;$s!#$3\e(B
+\e$B$l$i$N$d$jD>$7$O!"DL>o$N\e(B Emacs \e$B$N\e(B @code{undo} \e$B4X?t$G$O9T$J$&$3$H$,$G$-$^\e(B
+\e$B$;$s!#\e(B
+
+Gnus \e$B$O!"MxMQ<T$,2?$r$9$k$+$r21$($F$*$-!"$=$NMxMQ<T$NF0:n$N5U$r9T$J$&F0\e(B
+\e$B:n$rDs6!$9$k$3$H$K$h$C$F!"$3$l$r2?$H$+5_:Q$7$h$&$H$7$^$9!#$=$7$FMxMQ<T\e(B
+\e$B$,\e(B @code{undo} \e$B%-!<$r2!$7$?$H$-!"\e(Bgnus \e$B$O$=$N0l$D<jA0$NF0:n$"$k$$$OF0:n72\e(B
+\e$B$N5U$N%3!<%I$r<B9T$7$^$9!#$7$+$7!"A4$F$NF0:n$,4JC1$K2D5U$G$"$k$o$1$G$O$J\e(B
+\e$B$$$N$G!"\e(Bgnus \e$B$O8=:_!"$d$jD>$72DG=$J%-!<4X?t$O6O$+$7$+Ds6!$7$F$$$^$;$s!#\e(B
+\e$B$3$l$i$O!"%0%k!<%W$N:o=|!"%0%k!<%W$NE=$jIU$1!"%0%k!<%W$N4{FI5-;v$N%j%9%H\e(B
+\e$B$NJQ99!"$=$l$@$1$J$s$G$9!#>-Mh$O$b$C$H4X?t$,DI2C$5$l$k$+$b$7$l$^$;$s$,!"\e(B
+\e$B4X?t$NDI2C$O$=$l$>$lJ]B8$9$k$Y$-%G!<%?$rA}$d$9$3$H$K$J$k$N$G!"\e(Bgnus \e$B$O7h\e(B
+\e$B$7$F40A4$d$jD>$72DG=$K$O$J$i$J$$$G$7$g$&!#\e(B
+
+@findex gnus-undo-mode
+@vindex gnus-use-undo
+@findex gnus-undo
+\e$B$d$jD>$75!G=$O\e(B @code{gnus-undo-mode} \e$B%^%$%J!<%b!<%I$K$h$C$FDs6!$5$l$^$9!#\e(B
+\e$B$3$l$O\e(B @code{gnus-use-undo} \e$B$,\e(B @code{nil} \e$B0J30$G$"$l$P;HMQ$5$l!"$3$l$,=i\e(B
+\e$B4|@_Dj$G$9!#\e(B@kbd{C-M-_} \e$B%-!<$,\e(B @code{gnus-undo} \e$BL?Na$r<B9T$7$^$9!#$3$l$O\e(B
+\e$BDL>o$N\e(B Emacs \e$B$N\e(B @code{undo} \e$BL?Na$K$A$g$C$H$@$1;w$F$$$k$H;W$o$l$k$G$7$g$&!#\e(B
+
+@node Predicate Specifiers
+@section \e$B=R8l$N@_Dj\e(B
+@cindex predicate specifiers
+
+\e$B$$$/$D$+$N\e(B gnus \e$B$NJQ?t\e(B
+\e$B$O\e(B @dfn{\e$B=R8l;X<(;R\e(B} (@dfn{predicate specifiers}) \e$B$G$9!#$3$l$O=R8l$N;EMM\e(B
+\e$B$KM;DL$r8z$+$;$k$3$H$,$G$-$kFCJL$J7A<0$G$9!#\e(B
+
+\e$B$3$l$i$N;X<(;R$O4X?t$K$h$k%j%9%H!"%7%s%\%k$^$?$O%j%9%H$G$9!#\e(B
+
+\e$B$3$l$ONc$G$9\e(B:
+
+@lisp
+(or gnus-article-unseen-p
+ gnus-article-unread-p)
+@end lisp
+
+\e$BMxMQ$G$-$k%7%s%\%k$O\e(B @code{or}\e$B!"\e(B@code{and} \e$B$*$h$S\e(B @code{not} \e$B$G$9!#4X?t\e(B
+\e$B$O$9$Y$F0l$D$N%Q%i%a!<%?$r<u$1<h$j$^$9!#\e(B
+
+@findex gnus-make-predicate
+\e$BFbItE*$K!"\e(Bgnus \e$B$O8F$V$3$H$,$G$-$k4X?t$r:n$k$?$a$K!"$3$l$i$N;X<(;R$K$D$$\e(B
+\e$B$F\e(B @code{gnus-make-predicate} \e$B$r;H$$$^$9!#$3$N4X?t$X$N$3$NF~NO%Q%i%a!<%?\e(B
+\e$B$O!"=R8l;X<(;R$N$9$Y$F$N4X?t$KEO$5$l$^$9!#\e(B
+
+@node Moderation
+@section \e$B;J2qLr\e(B
+@cindex moderation
+
+\e$B$b$7$"$J$?$,;J2q<T\e(B (\e$B%b%G%l!<%?!<\e(B) \e$B$J$i$P!"\e(B@file{gnus-mdrtn.el} \e$B%Q%C%1!<\e(B
+\e$B%8$r;H$&$3$H$,$G$-$^$9!#$3$l$OI8=`\e(B gnus \e$B%Q%C%1!<%8$K$O4^$^$l$^$;$s!#\e(B
+@samp{larsi@@gnus.org} \e$B$K!"$I$N%0%k!<%W$N;J2q$r9T$J$&$N$+$r=R$Y$?%a!<%k\e(B
+\e$B$r=q$$$F$/$@$5$$!#$=$&$9$l$P%3%T!<$r<j$KF~$l$i$l$^$9!#\e(B
+
+\e$B;J2q<TMQ%Q%C%1!<%8$O35N,%P%C%U%!$N%^%$%J!<%b!<%I$H$7$F<BAu$5$l$F$$$^$9!#\e(B
+
+@lisp
+(add-hook 'gnus-summary-mode-hook 'gnus-moderate)
+@end lisp
+
+\e$B$r$"$J$?$N\e(B @file{~/.gnus.el} \e$B%U%!%$%k$KF~$l$F$/$@$5$$!#\e(B
+
+\e$B$"$J$?$,\e(B @samp{rec.zoofle} \e$B$N;J2q<T$@$H$9$k$H!"$3$l$O0J2<$N$h$&$KF0:n$9\e(B
+\e$B$k$h$&$K$J$C$F$$$^$9!#\e(B
+
+@enumerate
+@item
+@samp{Newsgroups:.*rec.zoofle} \e$B$K%^%C%A$9$k<u?.%a!<%k$rJ,N%$7$^$9!#$3$l\e(B
+\e$B$OEj9F$5$l$h$&$H$7$F$$$k5-;v$rA4$F$"$k%a!<%k%0%k!<%W\e(B --- \e$BNc$(\e(B
+\e$B$P\e(B @samp{nnml:rec.zoofle} \e$B$KF~$l$^$9!#\e(B
+
+@item
+\e$B$"$J$?$O;~@^$3$N%0%k!<%W$KF~$j!"\e(B@kbd{e} (edit-and-post) \e$B$"$k$$\e(B
+\e$B$O\e(B @kbd{s} (just send unedited) \e$BL?Na$r;H$C$F5-;v$rEj9F$7$^$9!#\e(B
+
+@item
+@samp{rec.zoofle} \e$B%K%e!<%9%0%k!<%W$rFI$s$G$$$kESCf$G!"$b$7$"$J$?$,>5G'$7\e(B
+\e$B$F$$$J$$5-;v$r$?$^$?$^8+$D$1$?$H$7$?$i!"\e(B@kbd{c} \e$BL?Na$G<h$j>C$7$G$-$^$9!#\e(B
+@end enumerate
+
+\e$BFs$D$N%0%k!<%W$G;J2q<T%b!<%I$r;H$&$H$9$l$P!"$3$&$J$j$^$9!#\e(B
+
+@lisp
+(setq gnus-moderated-list
+ "^nnml:rec.zoofle$\\|^rec.zoofle$")
+@end lisp
+
+@node Fetching a Group
+@section \e$B%0%k!<%W$r<hF@$9$k\e(B
+@cindex fetching a group
+
+@findex gnus-fetch-group
+\e$B;~!9!"!H$3$N%0%k!<%W$rFI$_$?$$$N$G$"$C$F!"\e(Bgnus \e$B$,5/F0$7$F$$$k$+$I$&$+$r\e(B
+\e$B5$$K$7$?$/$J$$!#!I$H$$$&$3$H$,$G$-$l$PJXMx$J$3$H$,$"$j$^$9!#$3$l$O!"MxMQ\e(B
+\e$B<T$h$j$b%W%m%0%i%`$N%3!<%I$r=q$/?M$KJXMx$J5!G=$G$9$,!"$I$A$i$K$7$m!"%3%^\e(B
+\e$B%s%I\e(B @code{gnus-fetch-group} \e$B$O$3$N5!G=$rDs6!$7$^$9!#$=$N%3%^%s%I$O!"%0\e(B
+\e$B%k!<%W$NL>A0$r0z?t$H$7$F$H$j$^$9!#\e(B
+
+@node Image Enhancements
+@section \e$B2hA|$N3HD%\e(B
+
+XEmacs \e$B$=$l$K\e(B Emacs 21@footnote{MS \e$B%&%#%s%I%&%:$N\e(B Emacs 21 \e$B$O$^$@2hA|$r\e(B
+\e$B%5%]!<%H$7$F$$$^$;$s!#\e(B} \e$B$O3($d$=$NB>$N$b$N$rI=<($9$k$3$H$,$G$-$k$N$G!"\e(B
+gnus \e$B$O$3$l$rMxMQ$9$k$3$H$K$7$^$9!#\e(B
+
+@menu
+* X-Face:: \e$B%U%!%s%-!<$G$A$C$A$c$JGr9u$N3($rI=<($9$k\e(B
+* Face:: \e$B$h$j%U%!%s%-!<$G$A$C$A$c$J%+%i!<$N3($rI=<($9$k\e(B
+* Smileys:: \e$BI=<($5$l$k$Y$/@8$^$l$?9,$;$=$&$J4i$rI=<($9$kJ}K!\e(B
+* Picons:: \e$B$"$J$?$,FI$s$G$$$k$b$N$N3($rI=<($9$kJ}K!\e(B
+* XVarious:: \e$B$=$NB>$N\e(B XEmacs \e$B$G\e(B Gnus \e$B$JJQ?t\e(B
+@end menu
+
+@node X-Face
+@subsection X-Face
+@cindex x-face
+
+@code{X-Face} \e$B%X%C%@!<$O!"%a%C%;!<%8$NCx<T$rI=$o$9$3$H$K$J$C$F$$$k\e(B 48\e$B!_\e(B
+48 \e$B2hAG$NGr9u\e(B (1 bit \e$B$N?<$5\e(B) \e$B$N3($rIA$-$^$9!#$3$l$O?J2=$7B3$1$k$"$^$?$N\e(B
+\e$B%a!<%k$H%K%e!<%9%j!<%@!<$K$h$C$F%5%]!<%H$5$l$k$G$7$g$&!#\e(B
+
+@cindex x-face
+@findex gnus-article-display-x-face
+@vindex gnus-article-x-face-command
+@vindex gnus-article-x-face-too-ugly
+@iftex
+@iflatex
+\include{xface}
+@end iflatex
+@end iftex
+@c @anchor{X-Face}
+
+@code{X-Face} \e$B%X%C%@!<$N%G%3!<%I$K$O!"\e(BEmacs \e$B$,\e(B @samp{compface} \e$B$r%5%]!<\e(B
+\e$B%H\e(B (XEmacs \e$B$N$[$H$s$I$,%5%]!<%H\e(B) \e$B$7$F$$$k$+!"$"$J$?$N%7%9%F%`\e(B
+\e$B$K\e(B @samp{compface} \e$B$,%$%s%9%H!<%k$5$l$F$$$kI,MW$,$"$j$^$9!#$b$7$I$A$i$+\e(B
+\e$B$,??$J$i$P!"\e(Bgnus \e$B$O%G%#%U%)%k%H$G\e(B @code{X-Face} \e$B%X%C%@!<$rI=<($7$^$9!#\e(B
+
+\e$B$3$l$r@)8f$9$k$N$OJQ?t\e(B @code{gnus-article-x-face-command} \e$B$G$9!#$3$NJQ?t\e(B
+\e$B$,J8;zNs$J$i$P!"$3$NJ8;zNs$,%5%V%7%'%k$G<B9T$5$l$^$9!#4X?t$J$i$P!"$3$N4X\e(B
+\e$B?t$,4i$r0z?t$H$7$F8F$P$l$^$9!#$b\e(B
+\e$B$7\e(B @code{gnus-article-x-face-too-ugly} (\e$B$3$l$O@55,I=8=$G\e(B
+\e$B$9\e(B) \e$B$,\e(B @code{From} \e$BMs$K9gCW$9$l$P!"4i$OI=<($5$l$^$;$s!#\e(B
+
+Emacs 20 \e$B$G$N%G%#%U%)%k%H$NF0:n$O\e(B @code{display} \e$B%W%m%0%i\e(B
+\e$B%`\e(B @footnote{@code{display} \e$B$O\e(B ImageMagick \e$B%Q%C%1!<%8$K4^$^$l$F$$$^$9!#\e(B
+@code{uncompface} \e$B$H\e(B @code{icontopbm} \e$B$NN>%W%m%0%i%`$K$D$$$F$O!"\e(B
+`compface' \e$B$d\e(B GNU/Linux \e$B%7%9%F%`$K$*$1$k\e(B `faces-xface' \e$B$N$h$&$J%Q%C%1!<\e(B
+\e$B%8$rC5$7$F2<$5$$!#\e(B} \e$B$r%U%)!<%/$7$F8+$h$&$H$7$^$9!#\e(B
+
+XEmacs \e$B$+@E;_2h$r%5%]!<%H$7$F$$$k\e(B Emacs 21+ \e$B$G$N%G%#%U%)%k%H$NF0:n\e(B
+\e$B$O\e(B @code{From} \e$BMs$NA0$K4i$rI=<($9$k$3$H$G$9!#\e(B(XEmacs \e$B$,\e(B X-Face \e$B5!G=IU$-\e(B
+\e$B$G%3%s%Q%$%k$5$l$F$$$k$HNI$$$G$7$g$&!=!=$=$l$OI=<($r>/$7Aa$/$7$^$9!#$b$7\e(B
+\e$B:,K\E*\e(B X-Face \e$B5!G=$,$J$$$N$G$"$l$P!"\e(Bgnus \e$B$O\e(B @code{pbmplus} \e$B$d$=$NCg4V$N\e(B
+\e$B30It%W%m%0%i%`$r;H$C$F\e(B @code{X-Face} \e$BMs$rJQ49$7$h$&$H;n$_$^$9\e(B @footnote{
+GNU/Linux \e$B%7%9%F%`$G$O\e(B @code{netpbm}\e$B!"\e(B@code{libgr-progs} \e$B$^$?\e(B
+\e$B$O\e(B @code{compface} \e$B$N$h$&$JL>A0$N%Q%C%1!<%8$rC5$7$F2<$5$$!#\e(B}\e$B!#\e(B)
+
+(\e$BCm\e(B: \e$BJQ?t\e(B/\e$B4X?tL>$K$O\e(B @code{xface} \e$B$G$O$J$/\e(B @code{x-face} \e$B$,;H$o$l$^$9!#\e(B)
+
+\e$B%U%'!<%9$HJQ?t\e(B:
+
+@table @code
+@item gnus-x-face
+@vindex gnus-x-face
+X-Face \e$B$rI=<($9$k$?$a$N%U%'!<%9!#$3$N%U%'!<%9$N?'$,I=<($5$l$k\e(B X-Face \e$B$N\e(B
+\e$BA07J?'$HGX7J?'$H$7$F;H$o$l$^$9!#%G%#%U%)%k%H$N?'$OGr$H9u$G$9!#\e(B
+
+@item gnus-face-properties-alist
+@vindex gnus-face-properties-alist
+Face (@pxref{Face}) \e$B$H\e(B X-Face \e$B2hA|$KE,MQ$5$l$k!"2hA|$N7A<0$H%W%m%Q%F%#$N\e(B
+\e$BO"A[%j%9%H$G$9!#%G%#%U%)%k%HCM$O\e(B Emacs \e$BMQ$N\e(B @code{((pbm . (:face
+gnus-x-face)) (png . nil))} \e$B$^$?$O\e(B XEmacs \e$BMQ$N\e(B @code{((xface . (:face
+gnus-x-face)))} \e$B$G$9!#Nc$r5s$2$^$7$g$&\e(B:
+
+@lisp
+;; From \e$B%X%C%@!<$K$*$1$k\e(B Face \e$B$H\e(B X-Face \e$B$N9b$5$r;XDj$7$^$9!#\e(B
+(setq gnus-face-properties-alist
+ '((pbm . (:face gnus-x-face :ascent 80))
+ (png . (:ascent 80))))
+
+;; Face \e$B$H\e(B X-Face \e$B$r1z$s$@%\%?%s$N$h$&$KI=<($7$^$9!#\e(B
+(setq gnus-face-properties-alist
+ '((pbm . (:face gnus-x-face :relief -2))
+ (png . (:relief -2))))
+@end lisp
+
+\e$B$$$m$$$m$J2hA|$N7A<0$GMxMQ2DG=$J%W%m%Q%F%#$K$D$$$F$O\e(B @pxref{Image
+Descriptors, ,Image Descriptors, elisp, The Emacs Lisp Reference
+Manual} \e$B$r;2>H$7$F2<$5$$!#:#$N$H$3$m\e(B Emacs \e$B$G$O\e(B @code{pbm} \e$B$,\e(B X-Face \e$B2h\e(B
+\e$BA|$K;H$o$l!"\e(B @code{png} \e$B$,\e(B Face \e$B2hA|$K;H$o$l$^$9!#\e(BXEmacs \e$B$G$O!"$=$l\e(B
+\e$B$,\e(B @samp{libcompface} \e$B%i%$%V%i%j$H$H$b$K9=C[$5$l$F$$$l$P!"\e(B
+@code{xface} \e$B2hA|7A<0$K\e(B @code{:face} \e$B%W%m%Q%F%#$@$1$,8z2L$r5Z$\$7$^$9!#\e(B
+@end table
+
+gnus \e$B$O!"30$K=P$9%a%C%;!<%8$K\e(B X-Face \e$B%X%C%@!<$r4JC1$KA^F~$9$k$?$a$N!"JX\e(B
+\e$BMx$J4X?t$HJQ?t$r>/$7$P$+$jDs6!$7$^$9!#\e(B
+
+@findex gnus-random-x-face
+@vindex gnus-convert-pbm-to-x-face-command
+@vindex gnus-x-face-directory
+@code{gnus-random-x-face} \e$B$O\e(B @code{gnus-x-face-directory} \e$B$K$"$k$9$Y$F\e(B
+\e$B$N\e(B @samp{pbm} \e$B$r$/$^$J$/C5$7$F%i%s%@%`$K0l$D$rA*$S<h$j!"%7%'%k%3%^%s\e(B
+\e$B%I\e(B @code{gnus-convert-pbm-to-x-face-command} \e$B$r;H$C$F$=$l$r\e(B X-Face \e$B$N7A\e(B
+\e$B<0$KJQ49$7$^$9!#\e(B@samp{pbm} \e$B%U%!%$%k$O\e(B 48\e$B!_\e(B48 \e$B2hAG$NBg$-$5$G$J$1$l$P$J$j\e(B
+\e$B$^$;$s!#$=$l$O\e(B X-Face \e$B%X%C%@!<$N%G!<%?$rJ8;zNs$GJV$7$^$9!#\e(B
+
+@findex gnus-insert-random-x-face-header
+@code{gnus-insert-random-x-face-header} \e$B$O\e(B @code{gnus-random-x-face} \e$B$r\e(B
+\e$B8F$s$G!"%i%s%@%`$K@8@.$5$l$?%G!<%?$K$h$k\e(B X-Face \e$B%X%C%@!<$rA^F~$7$^$9!#\e(B
+
+@findex gnus-x-face-from-file
+@vindex gnus-convert-image-to-x-face-command
+@code{gnus-x-face-from-file} \e$B$O%Q%i%a!<%?$H$7$F\e(B GIF \e$B%U%!%$%k$r<u$1<h$j!"\e(B
+\e$B%7%'%k%3%^%s%I\e(B @code{gnus-convert-image-to-x-face-command} \e$B$r;H$C$F$=$N\e(B
+\e$B%U%!%$%k$r\e(B X-Face \e$B$N7A<0$KJQ49$7$^$9!#\e(B
+
+\e$B0lHVL\$O0lHLE*$K;H$&$G$"$m$&4X?t$G$9!#0J2<$N$h$&$J$b$N\e(B
+\e$B$r\e(B @file{~/.gnus.el} \e$B%U%!%$%k$K=q$$$F2<$5$$\e(B:
+
+@lisp
+(setq message-required-news-headers
+ (nconc message-required-news-headers
+ (list '(X-Face . gnus-random-x-face))))
+@end lisp
+
+\e$B:G8e$N4X?t$r;H$&$N$O!"$3$N$h$&$K$J$k$G$7$g$&\e(B:
+
+@lisp
+(setq message-required-news-headers
+ (nconc message-required-news-headers
+ (list '(X-Face . (lambda ()
+ (gnus-x-face-from-file
+ "~/My-face.gif"))))))
+@end lisp
+
+@node Face
+@subsection Face
+@cindex face
+
+@c #### FIXME: faces and x-faces'implementations should really be harmonized.
+
+@code{Face} \e$B%X%C%@!<$O!"K\<AE*$K$h$j%U%!%s%-!<$J\e(B @code{X-Face} \e$B$NJQ7A$G\e(B
+\e$B$9!#$=$l$i$O!"%a%C%;!<%8$r=q$$$??M$r>]D'$7$F$$$k$3$H$,4|BT$5$l$k!"\e(B
+48\e$B!_\e(B48 \e$B2hAG$N%+%i!<2hA|$rIA$-$^$9!#\e(B
+
+@cindex face
+@findex gnus-article-display-face
+@code{Face} \e$B%X%C%@!<$NFbMF$O!"\e(Bbase64 \e$B$G%(%s%3!<%I$5$l$?\e(B PNG \e$B$N2hA|$G$J$1\e(B
+\e$B$l$P$J$j$^$;$s!#@53N$J;EMM$K$D$$$F!"\e(B
+@uref{http://quimby.gnus.org/circus/face/} \e$B$r;2>H$7$F2<$5$$!#\e(B
+
+\e$BJQ?t\e(B @code{gnus-face-properties-alist} \e$B$OI=<($5$l$k\e(B Face \e$B2hA|$N304Q$K1F\e(B
+\e$B6A$7$^$9!#\e(B@xref{X-Face}.
+
+\e$BAw?.$9$k%a%C%;!<%8$K4JC1$K\e(B Face \e$B%X%C%@!<$rA^F~$G$-$k$h$&$K$9$k$?$a$K!"\e(B
+Gnus \e$B$O\e(B 2\e$B!A\e(B3 \e$B$N4X?t$HJQ?t$rDs6!$7$^$9!#\e(B
+
+@findex gnus-convert-png-to-face
+@code{gnus-convert-png-to-face} \e$B$O\e(B 726-byte \e$B0J2<$N\e(B 48\e$B!_\e(B48 \e$B$N\e(B PNG \e$B$N2hA|\e(B
+\e$B$rFI$_9~$s$G!"$=$l$r\e(B Face \e$B$KJQ49$7$^$9!#\e(B
+
+@findex gnus-face-from-file
+@vindex gnus-convert-image-to-face-command
+@code{gnus-face-from-file} \e$B$O\e(B JPEG \e$B$N%U%!%$%kL>$r%Q%i%a!<%?$H$7$F<u$1<h\e(B
+\e$B$j!"\e(Bshell \e$B%3%^%s%I\e(B @code{gnus-convert-image-to-face-command} \e$B$r;H$C$F$=\e(B
+\e$B$N%U%!%$%k$r\e(B Face \e$B%U%)!<%^%C%H$KJQ49$7$^$9!#\e(B
+
+\e$B$3$N4X?t$NBeI=E*$J;H$$J}$r5s$2$F$*$-$^$7$g$&!#0J2<$N$h$&$J$b$N\e(B
+\e$B$r\e(B @file{~/.gnus.el} \e$B%U%!%$%k$KF~$l$F2<$5$$\e(B:
+
+@lisp
+(setq message-required-news-headers
+ (nconc message-required-news-headers
+ (list '(Face . (lambda ()
+ (gnus-face-from-file "~/face.jpg"))))))
+@end lisp
+
+@node Smileys
+@subsection \e$B%9%^%$%j!<\e(B
+@cindex smileys
+
+@iftex
+@iflatex
+\gnusfig{-3cm}{0.5cm}{\epsfig{figure=ps/BigFace,height=20cm}}
+\input{smiley}
+@end iflatex
+@end iftex
+
+\e$B%9%^%$%j!<\e(B @dfn{smiley} \e$B$O\e(B gnus \e$B$H$OJL$N%Q%C%1!<%8$G$9$,!"%9%^%$%j!<$r;H$C\e(B
+\e$B$F$$$k%Q%C%1!<%8$O8=:_\e(B gnus \e$B$@$1$G$9$N$G!"$3$3$G@bL@$7$^$9!#\e(B
+
+\e$B0l8@$G8@$($P\e(B --- gnus \e$B$G%9%^%$%j!<$r;H$&$K$O!"0J2<\e(B
+\e$B$r\e(B @file{~/.gnus.el} \e$B%U%!%$%k$K=q$$$F$/$@$5$$!#\e(B
+
+@lisp
+(setq gnus-treat-display-smileys t)
+@end lisp
+
+\e$B%9%^%$%j!<$O!"J8;z$N4i%^!<%/\e(B --- @samp{:-)}, @samp{8-)}, @samp{:-(} \e$B$J$I\e(B
+\e$B$H$$$C$?$b$N\e(B --- \e$B$r3($KBP1~$5$;!"J8;z$N4i%^!<%/$NBe$o$j$K$=$N3($rI=<($7\e(B
+\e$B$^$9!#$3$NJQ49$OJ8;z$K%^%C%A$9$k@55,I=8=$H$=$l$N%U%!%$%kL>$X$NBP1~$N%j%9\e(B
+\e$B%H$G@)8f$5$l$^$9!#\e(B
+
+@vindex smiley-regexp-alist
+\e$B;H$o$l$kO"A[%j%9%H$O!"JQ?t\e(B @code{smiley-regexp-alist} \e$B$G@_Dj$7$^$9!#3FMW\e(B
+\e$BAG$N:G=i$N9`L\$O%^%C%A$5$;$?$$@55,I=8=$G!"FsHVL\$NMWAG$O3($GCV$-49$($?$$\e(B
+\e$B%0%k!<%W$K%^%C%A$9$k@55,I=8=!"$=$7$F;0HVL\$NMWAG$OI=<($5$;$?$$%U%!%$%k$N\e(B
+\e$BL>A0$G$9!#\e(B
+
+\e$B0J2<$NJQ?t$O!"%9%^%$%j!<$,$3$l$i$N%U%!%$%k$rC5$9>l=j$r%+%9%?%^%$%:$7$^$9\e(B:
+
+@table @code
+@item smiley-data-directory
+@vindex smiley-data-directory
+\e$B%9%^%$%j!<$,4i%U%!%$%k$rC5$9>l=j!#\e(B
+
+@item gnus-smiley-file-types
+@vindex gnus-smiley-file-types
+\e$B%9%^%$%j!<$N%U%!%$%kL>$H$7$F;n$7$F$_$k3HD%;R$N%j%9%H$G$9!#\e(B
+@end table
+
+@node Picons
+@subsection Picons
+
+@iftex
+@iflatex
+\include{picons}
+@end iflatex
+@end iftex
+
+\e$B$=$l$G!D!"$"$J$?$O$3$N%K%e!<%9%j!<%@!<$r$5$i$K$b$C$HCY$/$7$?$$$C$F$o$1$@\e(B
+\e$B$M\e(B! \e$B$3$l$O$=$&$9$k$N$K$T$C$?$j$JJ}K!$G$9!#$5$i$K$3$l$O!"$"$J$?$,%K%e!<%9\e(B
+\e$B$rFI$s$G$$$k$s$@$H$$$&$3$H$r!"$"$J$?$N8*1[$7$K8+$D$a$F$$$k?M$K0u>]$E$1$k\e(B
+\e$B$?$a$NAG@2$i$7$$J}K!$G$b$"$j$^$9!#\e(B
+
+Picon \e$B$H$O$J$s$G$7$g$&\e(B? Picons \e$B%&%'%V%5%$%H$+$iD>@\0zMQ$7$^$7$g$&!#\e(B
+
+@iftex
+@iflatex
+\margindex{}
+@end iflatex
+@end iftex
+
+@quotation
+@dfn{Picon} \e$B$H$O!"\e(B``\e$B8D?M%"%$%3%s\e(B (personal icons)'' \e$B$NN,$G$9!#$3$l$O!"%M%C\e(B
+\e$B%H>e$NMxMQ<T$d%I%a%$%s$rI=8=$9$k$N$K;H$o$l$k$?$a$N>.$5$J2hA|$G!"%G!<%?%Y!<\e(B
+\e$B%9$r;}$?$;$F!"$"$kEE;R%a!<%k%"%I%l%9$,$"$C$?$i!"$=$l$KE,@Z$J2hA|$r8+$D$1\e(B
+\e$B$i$l$k$h$&$K$7$F$*$/$b$N$G$9!#MxMQ<T$H%I%a%$%s0J30$K$b!"\e(BUsenet \e$B%K%e!<%9\e(B
+\e$B%0%k!<%W$dE75$M=Js$N$?$a$N\e(Bpicon \e$B%G!<%?%Y!<%9$,$"$j$^$9!#\e(Bpicon \e$B$OGr9u\e(B
+\e$B$N\e(B @code{XBM} \e$B7A<0$G$b%+%i!<$N\e(B @code{XPM} \e$B7A<0$G$b\e(B @code{GIF} \e$B7A<0$G$b9=\e(B
+\e$B$$$^$;$s!#\e(B
+@end quotation
+
+@vindex gnus-picon-databases
+Picon \e$B%G!<%?%Y!<%9$NF~<j$H%$%s%9%H!<%k$N<j=g$K$D$$$F$O!"%&%'%V%V%i%&%6!<\e(B
+\e$B$G\e(B @uref{http://www.cs.indiana.edu/picons/ftp/index.html} \e$B$rK,$M$F$_$F2<\e(B
+\e$B$5$$!#\e(B
+
+\e$B$b$7\e(B Debian GNU/Linux \e$B$r;H$C$F$$$k$N$J$i!"\e(B@samp{apt-get install
+picons.*} \e$B$H8@$($P\e(B gnus \e$B$,8+$D$1$k$3$H$,$G$-$k\e(B picon \e$B$,%$%s%9%H!<%k$5$l\e(B
+\e$B$^$9!#\e(B
+
+Picon \e$B$NI=<($,$G$-$k$h$&$K$9$k$?$a$K$O!"\e(Bpicon \e$B%G!<%?%Y!<%9$,$"$k%G%#%l%/\e(B
+\e$B%H%j$,!"$?$@C1$K\e(B @code{gnus-picon-databases} \e$B$K@_Dj$5$l$F$$$k$h$&$K$7$F\e(B
+\e$B2<$5$$!#\e(B
+
+@vindex gnus-picon-style
+\e$BJQ?t\e(B @code{gnus-picon-style} \e$B$O\e(B picon \e$B$r$I$N$h$&$KI=<($9$k$+$r@)8f$7$^$9!#\e(B
+@code{inline} \e$B$@$C$?$i%F%-%9%H7A<0$NI=8=$,CV$-49$($i$l$^$9!#\e(B
+@code{right} \e$B$@$C$?$i!"%F%-%9%H7A<0$NI=8=$N1&B&$K\e(B picon \e$B$,2C$($i$l$^$9!#\e(B
+
+\e$B$b$N$4$H$N=j:_$r4IM}$9$k$?$a$K!"0J2<$NJQ?t$r@_$1$F$$$^$9!#\e(B
+
+@table @code
+@item gnus-picon-databases
+@vindex gnus-picon-databases
+Picon \e$B%G!<%?%Y!<%9$N>l=j$G$9!#$3$l$O\e(B @file{news}, @file{domains},
+@file{users} (\e$B$J$I$J$I\e(B) \e$B$N%5%V%G%#%l%/%H%j!<$,4^$^$l$F$$$k%G%#%l%/%H%j!<\e(B
+\e$B$N%j%9%H$G$9!#\e(B@code{("/usr/lib/picon" "/usr/local/faces")} \e$B$,%G%#%U%)%k\e(B
+\e$B%H$G$9!#\e(B
+
+@item gnus-picon-news-directories
+@vindex gnus-picon-news-directories
+@code{gnus-picon-databases} \e$B$+$i%K%e!<%9%0%k!<%WMQ$N%U%'!<%9$rC5$9$?$a$N\e(B
+\e$B%5%V%G%#%l%/%H%j!<$N%j%9%H$G$9!#%G%#%U%)%k%H$O\e(B @code{("news")} \e$B$G$9!#\e(B
+
+@item gnus-picon-user-directories
+@vindex gnus-picon-user-directories
+@code{gnus-picon-databases} \e$B$+$i%f!<%6$N%U%'!<%9$rC5$9$?$a$N%5%V%G%#%l%/\e(B
+\e$B%H%j!<$N%j%9%H$G$9!#\e(B@code{("local" "users" "usenix" "misc")} \e$B$,%G%#%U%)\e(B
+\e$B%k%H$G$9!#\e(B
+
+@item gnus-picon-domain-directories
+@vindex gnus-picon-domain-directories
+@code{gnus-picon-databases} \e$B$+$i%I%a%$%sL>$N%U%'!<%9$rC5$9$?$a$N%5%V%G%#\e(B
+\e$B%l%/%H%j!<$N%j%9%H$G$9!#%G%#%U%)%k%H$O\e(B @code{("domains")} \e$B$G$9!#$3$N%j%9\e(B
+\e$B%H$K\e(B @samp{"unknown"} \e$B$rDI2C$7$F$*$-$?$/$J$k?M$b$$$k$G$7$g$&!#\e(B
+
+@item gnus-picon-file-types
+@vindex gnus-picon-file-types
+Picon \e$B$N%U%!%$%kL>$H$7$F;n$7$F$_$k3HD%;R$N=gHV%j%9%H$G$9!#%G%#%U%)%k%H$O!"\e(B
+@code{("xpm" "gif" "xbm")} \e$B$+$i\e(B Emacs \e$B$KAH$_9~$^$l$F$$$J$$$b$N$r=|30$7$?\e(B
+\e$B$b$N$G$9!#\e(B
+@end table
+
+@node XVarious
+@subsection \e$B$5$^$6$^$J\e(B XEmacs \e$BJQ?t\e(B
+
+@table @code
+@item gnus-xmas-glyph-directory
+@vindex gnus-xmas-glyph-directory
+\e$B$3$l$O\e(B gnus \e$B$,3($rC5$9>l=j$G$9!#\e(BGnus \e$B$ODL>o$3$N%G%#%l%/%H%j$r<+F08!=P$7\e(B
+\e$B$^$9$,!"$b$7I8=`E*$G$J$$%G%#%l%/%H%j!<9=B$$r;}$C$F$$$k>l9g$O!"$3$l$r<jF0\e(B
+\e$B$G@_Dj$9$k$3$H$,$G$-$^$9!#\e(B
+
+@item gnus-xmas-logo-color-alist
+@vindex gnus-xmas-logo-color-alist
+\e$B$3$l$OO"A[%j%9%H$G!"%-!<$O<oJL%7%s%\%k!"CM$O%?%$%H%kJG3(J8;z$NA0LL?'$HGX\e(B
+\e$B7J?'$G$9!#\e(B
+
+@item gnus-xmas-logo-color-style
+@vindex gnus-xmas-logo-color-style
+\e$B$3$l$OA05-$NO"A[%j%9%H$G?'$r8!:w$9$k$N$K;H$o$l$k%-!<$G$9!#M-8z$JCM$K\e(B
+\e$B$O\e(B @code{flame}, @code{pine}, @code{moss}, @code{irish}, @code{sky},
+@code{tin}, @code{velvet}, @code{grape}, @code{labia}, @code{berry},
+@code{neutral}, @code{september} \e$B$,$"$j$^$9!#\e(B
+
+@item gnus-xmas-modeline-glyph
+@vindex gnus-xmas-modeline-glyph
+\e$BA4$F$N\e(B gnus \e$B%b!<%I9T$GI=<($5$l$k3(J8;z!#$3$l$O=i4|@_Dj$G$O$A$$$5$J\e(B
+\e$B%L!<\e(B (gnu) \e$B$NF,$G$9!#\e(B
+@end table
+
+@subsubsection \e$B%D!<%k%P!<\e(B
+
+@table @code
+@item gnus-use-toolbar
+@vindex gnus-use-toolbar
+@code{nil} \e$B$J$i$P%D!<%k%P!<$rI=<($7$^$;$s!#\e(B@code{nil} \e$B0J30$N>l9g$O!"\e(B
+@code{default-toolbar}, @code{top-toolbar}, @code{bottom-toolbar},
+@code{right-toolbar}, @code{left-toolbar} \e$B$N$I$l$+$G$J$/$F$O$J$j$^$;$s!#\e(B
+
+@item gnus-group-toolbar
+@vindex gnus-group-toolbar
+\e$B%0%k!<%W%P%C%U%!Fb$N%D!<%k%P!<$G$9!#\e(B
+
+@item gnus-summary-toolbar
+@vindex gnus-summary-toolbar
+\e$B35N,%P%C%U%!Fb$N%D!<%k%P!<$G$9!#\e(B
+
+@item gnus-summary-mail-toolbar
+@vindex gnus-summary-mail-toolbar
+\e$B%a!<%k%0%k!<%W$N35N,%P%C%U%!Fb$N%D!<%k%P!<$G$9!#\e(B
+@end table
+
+@iftex
+@iflatex
+\margindex{}
+@end iflatex
+@end iftex
+
+@node Fuzzy Matching
+@section \e$B%U%!%8!<$J0lCW\e(B
+@cindex fuzzy matching
+
+Gnus \e$B$O!"%9%3%"IU$1!"%9%l%C%I$N7A@.!"%9%l%C%IHf3S$J$I$r9T$&$H$-$K!"\e(B
+@code{Subject} \e$B9T$N%U%!%8!<$J0lCW\e(B @dfn{fuzzy matching} \e$BJ}K!$rDs6!$7$F$$\e(B
+\e$B$^$9!#\e(B
+
+\e$B@55,I=8=0lCW$H$O0c$C$F!"%U%!%8!<$J0lCW$O$H$C$F$b%U%!%8!<$G$9!#$"$^$j$K$b\e(B
+\e$B%U%!%8!<$9$.$F!"2?$,%U%!%8!<\e(B @dfn{fuzziness} \e$B$G$"$k$+$H$$$&Dj5A$5$($"$j\e(B
+\e$B$^$;$s$7!"<BAu$b2?EY$bJQ99$5$l$F$$$^$9!#\e(B
+
+\e$B4pK\E*$K$O!"$3$l$OHf3S$NA0$K9T$+$i<YKbJ*$r<h$j=|$3$&$H$7$^$9!#\e(B
+@samp{Re: } \e$B$dA^F~6g$N0u$d6uGrJ8;zEy!9$OJ8;zNs$+$i=|5n$5$l!"$=$N7k2L$rHf\e(B
+\e$B3S$7$^$9!#$3$l$O$[$H$s$I$N>l9gBEEv$J7k2L$r=P$7$^$9\e(B --- \e$B$?$H$(%K%e!<%9%j!<\e(B
+\e$B%@!<$N2>LL$r$+$V$C$?J8;zNs@Z$j9o$_5!$G@8@.$5$l$?J8;zNs$,:9$7=P$5$l$F$b!"\e(B
+\e$B$G$9!#\e(B
+
+@node Thwarting Email Spam
+@section spam \e$B%a!<%k$NN"$r$+$/\e(B
+@cindex email spam
+@cindex spam
+@cindex UCE
+@cindex unsolicited commercial email
+
+\e$B$3$3:G6a$N\e(B USENET \e$B$G$O!"@kEA$N%O%2%?%+$I$b$,!"H`$i$N:>5=$d@=IJ$r2!$7IU$1\e(B
+\e$B$k$?$a$NEE;R%a!<%k%"%I%l%9$rC5$=$&$H$7$F!"5$0c$$$N$h$&$K%K%e!<%9>e$r$&$m\e(B
+\e$B$D$$$F\e(B grep \e$B$7$^$/$C$F$$$^$9!#$3$l$KBP$9$kH?F0$H$7$F!"B?$/$N?M!9\e(B
+\e$B$,\e(B @code{From} \e$B9T$KL50UL#$J%"%I%l%9$rF~$l$O$8$a$k$h$&$K$J$C$F$7$^$$$^$7\e(B
+\e$B$?!#$3$l$OHs@8;:E*$J$3$H$@$H;d$O;W$$$^$9\e(B --- \e$B$"$J$?$,=q$$$?$3$H$KBP$9$k\e(B
+\e$BJV?.$H$7$F@5Ev$J%a!<%k$rAw$k$3$H$rLLE]$K$5$;!"$^$?C/$,=q$$$?$b$N$J$N$+$r\e(B
+\e$BJ,$+$j$E$i$/$7$^$9!#$3$s$J=q$-49$($O7k6I$O!"2!$7IU$1@kEA%a!<%k$=$l<+?H$h\e(B
+\e$B$j$bBg$-$J6<0R$H$J$k$+$b$7$l$^$;$s!#\e(B
+
+\e$B;d$K$H$C$F$N\e(B spam \e$B%a!<%k$N:GBg$NLdBj$O!"13$N8}<B$GF~$C$F$/$k$+$i$G$9!#;d\e(B
+\e$B$,\e(B @kbd{g} \e$B$r2!$7$?$H$9$k$H!"\e(Bgnus \e$B$O==DL$N?7Ce%a!<%k$,$"$j$^$9$HM[5$$K;d\e(B
+\e$B$K65$($F$/$l$^$9!#;d$O\e(B ``\e$B$*$*$C!"$o!<$$\e(B! \e$BKM$C$F9,$;\e(B!'' \e$B$H8@$C$F%a!<%k%0\e(B
+\e$B%k!<%W$rA*Br$7$^$9!#$7$+$7$=$3$K$O!"Fs$D$N%M%:%_9V$H!"<7$D$N9-\e(B
+\e$B9p\e(B (``\e$B:G?7\e(B! \e$B4q@W$NA}LS%H%K%C%/!"$U$5$U$5$G$D$d$D$d$NH1$r!"$"$J$?$N$D$^@h\e(B
+\e$B$^$G\e(B!'') \e$B$H!"2y$$2~$a?@$r?.$8$h!"$H$$$&0l$D$N%a!<%k$,$"$k$@$1$J$N$G$9!#\e(B
+
+\e$B$3$l$OITL{2w$G$9!#$"$J$?$,$=$l$K4X$7$F$G$-$k$3$H$,$"$j$^$9!#\e(B
+
+@menu
+* The problem of spam:: \e$BGX7J!"$=$7$F2r7h\e(B
+* Anti-Spam Basics:: \e$B$?$/$5$s$N\e(B spam \e$B$r8:$i$94JC1$JJ}K!\e(B
+* SpamAssassin:: Spam \e$BBP:v%D!<%k$N;H$$J}\e(B
+* Hashcash:: CPU \e$B;~4V$rHq$d$7$F\e(B spam \e$BB`<#$9$k\e(B
+* Filtering Spam Using The Spam ELisp Package::
+* Filtering Spam Using Statistics with spam-stat::
+@end menu
+
+@node The problem of spam
+@subsection Spam \e$B$NLdBj\e(B
+@cindex email spam
+@cindex spam filtering approaches
+@cindex filtering approaches, spam
+@cindex UCE
+@cindex unsolicited commercial email
+
+\e$B=i$a$K\e(B spam \e$B$NGX7J$+$i!#\e(B
+
+\e$B$"$J$?$,EE;R%a!<%k$r;H$C$F$$$k$J$i$P!"\e(Bspam (\e$B@lLgMQ8l$H$7$F$O\e(B Unsolicited
+Commercial E-mail -- \e$BK>$^$l$J$$>&MQEE;R%a!<%k\e(B -- \e$B$NF,J8\e(B
+\e$B;z\e(B @acronym{UCE}) \e$B$N$3$H$O$h$/CN$C$F$$$k$G$7$g$&!#4JC1$K8@$($P$=$l$O;f$N\e(B
+\e$B%a!<%k$KHf$Y$FEE;R%a!<%k$NG[Aw$,$H$F$b0B$/$D$/$?$a$KB8:_$7!"Hs>o$K>.$5$J\e(B
+\e$B3d9g$N?M!9$,\e(B UCE \e$B$K1~Ez$9$k$@$1$G9-9p<g$KMx1W$r$b$?$i$9$N$G$9!#HiFy$J$3\e(B
+\e$B$H$K:G$b0lHLE*$J\e(B spam \e$B$N0l$D$O!"$5$i$K\e(B spam \e$B$r=uD9$9$k$?$a$NEE;R%a!<%k%"\e(B
+\e$B%I%l%9$N%G!<%?%Y!<%9$rDs6!$7$^$9!#\e(BSpam \e$B$NAw?.<T$O$U$D\e(B
+\e$B$&\e(B @emph{spammers} \e$B$H8F$P$l$^$9$,!"\e(B@emph{vermin}\e$B!"\e(B@emph{scum}\e$B!"\e(B
+@emph{sociopaths} \e$B$*$h$S\e(B @emph{morons} \e$B$N$h$&$JMQ8l$b$h$/;H$o$l$F$$$^$9!#\e(B
+
+Spam \e$B$O<o!9$5$^$6$^$J=P$I$3$m$+$i$d$C$FMh$^$9!#M-MQ$J%a%C%;!<%8$r<N$F$:\e(B
+\e$B$K$9$Y$F$N\e(B spam \e$B$rC1$K;OKv$9$k$3$H$OIT2DG=$G$9!#NI$$Nc$O\e(B TMDA (\e$BLuCm\e(B: \e$BAw\e(B
+\e$B?.$9$kEY$K%f%K!<%/$J%"%I%l%9$r;H$&\e(B) \e$B%7%9%F%`$G!"$=$l$O$"$J$?$,CN$i$J$$Aw\e(B
+\e$B?.<T$K!"H`$i$NEE;R%a!<%k$,FO$/A0$KH`$i$,@5Ev$JAw?.<T$G$"$k$3$H$N3NG'$r5a\e(B
+\e$B$a$^$9!#@5Ev$J=P$I$3$m$+$i$NEE;R%a!<%k$,\e(B TMDA \e$B%7%9%F%`$K$h$C$F$=$l$i$N=P\e(B
+\e$B$I$3$m$,3NG'$G$-$J$$!"$^$?$O9T$J$o$l$J$$>l9g$O<N$F$i$l$F$7$^$&$+$b$7$l$J\e(B
+\e$B$$$H$$$&%^%$%J%9LL$O!"\e(BTMDA \e$B$N5;=QE*$JB&LL$KN)$AF~$i$J$/$F$bL@Gr$G$9!#$b\e(B
+\e$B$&0l$D$N\e(B TMDA \e$B$NLdBj$O!"EE;R%a!<%k$NG[Aw$H=hM}$X$N4pK\E*$JM}2r$r%f!<%6!<\e(B
+\e$B$K5a$a$F$$$k$3$H$G$9!#\e(B
+
+Spam \e$B$N=|5n\e(B (filtering) \e$B$X$N:G$bC1=c$J<h$jAH$_$O!"%a!<%k%5!<%P!<$G!"$"$k\e(B
+\e$B$$$OF~$C$F$-$?%a!<%k$rJ,N`$9$k$H$-$K_I2a$9$k$3$H\e(B (filtering) \e$B$G$9!#Kh\e(B
+\e$BF|\e(B @samp{random-address@@vmadmin.com} \e$B$+$i\e(B 200\e$BDL$N\e(B spam \e$B%a%C%;!<%8$r<u$1\e(B
+\e$B<h$k$N$J$i$P!"\e(B@samp{vmadmin.com} \e$B$rAK;_$9$l$P$h$m$7$$!#\e(B
+@samp{\e$B%P%$%"%0%i\e(B} \e$B$K4X$9$k%a%C%;!<%8$r\e(B 200\e$BDL<u$1<h$k$N$J$i$P!"\e(B
+@samp{\e$B%P%$%"%0%i\e(B} \e$B$r4^$`$9$Y$F$N%a%C%;!<%8$r<N$F$F$7$^$($P$h$m$7$$!#Nc$(\e(B
+\e$B$P%V%k%,%j%"$+$i$?$/$5$s$N\e(B spam \e$B$,$d$C$FMh$k$N$J$i$P!"%V%k%,%j%"$N\e(B IP \e$B$+\e(B
+\e$B$iMh$k$9$Y$F$N%a!<%k$r_I2a$9$l$P$h$m$7$$!#\e(B
+
+\e$B$3$l$O!";DG0$J$,$i@5Ev$JEE;R%a!<%k$r<N$F$k$?$a$N$9$0$l$?J}K!$G$9!#$"$J$?\e(B
+\e$B$K@\?($7$h$&$H$9$k9q\e(B (\e$B%V%k%,%j%"!"%N%k%&%'!<!"%J%$%8%'%j%"!"Cf9q!"Ey\e(B) \e$BA4\e(B
+\e$BBN!"$^$?$OBgN&\e(B (\e$B%"%8%"!"%"%U%j%+!"%h!<%m%C%Q!"Ey\e(B) \e$B$5$($bIu$89~$a$F$7$^$&\e(B
+\e$B4m81$OL@$i$+$J$N$G!"$"$J$?$KA*Br8"$,$"$k$N$J$i$P!"$=$s$J$3$H$O$7$J$$$G2<\e(B
+\e$B$5$$!#\e(B
+
+\e$B$b$&0l$D$NNc$H$7$F!"$H$F$b<(:6$KIY$s$GM-1W$J\e(B RISKS \e$B%@%$%8%'%9%H$O!"$=$l\e(B
+\e$B$,\e(B spam \e$B%a%C%;!<%8$H6&DL$N8l$r\e(B @strong{\e$B4^$s$G\e(B} \e$B$$$k$?$a$K!"G.?4$9$.$k%a!<\e(B
+\e$B%k_I2a4o$K$h$C$FAK;_$5$l$F$7$^$$$^$9!#$=$l$G$b$J$*8IN)$7$?4D6-$G$O!"Cm0U\e(B
+\e$B?<$/;H$&$3$H$K$h$C$FD>@\$N_I2a$OM-1W$K$J$jF@$^$9!#\e(B
+
+\e$B$b$&0l$D$NEE;R%a!<%k_I2a$X$N<h$jAH$_$OJ,;67?\e(B spam \e$B=hM}$G!"\e(BDCC (\e$BLuCm\e(B:
+Distributed Checksum Clearinghouse --
+@uref{http://www.rhyolite.com/anti-spam/dcc/}) \e$B$,$=$N$h$&$J%7%9%F%`$rF3\e(B
+\e$BF~$7$F$$$^$9!#K\<AE*$K$O!"@$3&Cf$N\e(B @var{N} \e$B8D$N%7%9%F%`$,!"%,!<%J!"%(%9\e(B
+\e$B%H%K%"$"$k$$$O%+%j%U%)%k%K%"$K$"$k%^%7%s\e(B @var{X} \e$B$,\e(B spam \e$BEE;R%a!<%k$rAw\e(B
+\e$B=P$7$F$$$k$3$H$rG'$a$?$i!"$=$l$i\e(B @var{N} \e$B8D$N%7%9%F%`$O\e(B @var{X} \e$B$^$?\e(B
+\e$B$O\e(B @var{X} \e$B$+$i$d$C$FMh$?\e(B spam \e$B%a!<%k$r%G!<%?%Y!<%9$K5-F~$7$^$9!#\e(BSpam \e$B8!\e(B
+\e$B=P$N4p=`$OJQ$o$j$^$9!#$=$l$OAw$i$l$?%a%C%;!<%8$N?t$d%a%C%;!<%8$NFbMF$J$I\e(B
+\e$B$G$"$k$+$b$7$l$^$;$s!#%a%C%;!<%8$,\e(B spam \e$B$+$I$&$+$rJ,;6=hM}%7%9%F%`$N%f!<\e(B
+\e$B%6$,CN$j$?$$>l9g!"H`$O$=$l$i$N\e(B @var{N} \e$B8D$N%7%9%F%`$N$&$A$N0l$D$rD4$Y$^\e(B
+\e$B$9!#\e(B
+
+\e$BJ,;67?\e(B spam \e$B=hM}$OF1;~$KB?$/$N%a%C%;!<%8$rAw$k\e(B spammers \e$B$HHs>o$K$h$/@o$C\e(B
+\e$B$F$/$l$^$9$,!"$=$l$O%f!<%6!<$,$+$J$jJ#;($J%A%'%C%/$r@_Dj$9$k$3$H$r5a$a$^\e(B
+\e$B$9!#>&MQ$H!"%U%j!<$JJ,;67?\e(B spam \e$B=hM}%7%9%F%`$,$"$j$^$9!#J,;67?\e(B spam \e$B=hM}\e(B
+\e$B$O!"$=$l<+BN$N4m81$b$O$i$s$G$$$^$9!#Nc$($P!"@5Ev$JAw?.<T$,\e(B spam \e$B$rAw$C$?\e(B
+\e$B$+$I$GHsFq$5$l!"H`$i$N%&%'%V%5%$%H$d%a!<%j%s%0%j%9%H$,$=$N;v7o$N$?$a$K;C\e(B
+\e$B$/$N4VJD:?$5$l$F$7$^$&!"$H$+!#\e(B
+
+Spam \e$B_I2a$X$NE}7WE*$J<h$jAH$_$b$^$?Ia5Z$7$F$$$^$9!#$=$l$O2a5n$N\e(B spam \e$B%a%C\e(B
+\e$B%;!<%8$NE}7WJ,@O$K4p$E$$$F$$$^$9!#DL>o$=$NJ,@O$O!"$*$=$i$/C18l$NBP$+;0$D\e(B
+\e$B$NC18l$NAH9g$;$N9g@.$K$h$k!"C18l$N=P8=IQEY$NC1=c$J7W?t$G$9!#\e(BSpam \e$B$NE}7W\e(B
+\e$BJ,@O$O$[$H$s$I$N>l9g$K$H$F$b$h$/F/$/$N$G$9$,!";~$H$7$F@5Ev$JEE;R%a!<%k\e(B
+\e$B$r\e(B spam \e$B$H$7$FJ,N`$7$F$7$^$&$3$H$,$"$j$^$9!#J,@O$K$O;~4V$,$+$+$j$^$9!#$9\e(B
+\e$B$Y$F$N%a%C%;!<%8$rJ,@O$7$J$1$l$P$J$j$^$;$s!#$=$7$F%f!<%6!<$O\e(B spam \e$B$rJ,@O\e(B
+\e$B$9$k$?$a$N%G!<%?%Y!<%9$rMQ0U$7$J$1$l$P$J$j$^$;$s!#%5!<%P!<$G$NE}7WJ,@O$O\e(B
+\e$B?M5$$rF@$F$$$^$9!#$3$l$K$O!"%f!<%6!<$OC1$K%a!<%k$rFI$a$PNI$$$H$$$&D9=j$H!"\e(B
+\e$B$7$+$7%5!<%P!<$K$=$l$,2a$C$F%a!<%k$rJ,N`$7$?$3$H$rEA$($k$N$,:$Fq$@$H$$$&\e(B
+\e$BC;=j$,$"$j$^$9!#\e(B
+
+\e$BM>?M$N8@$rBT$?$:$H$b!"\e(Bspam \e$B$H$N@o$$$O3Z$G$O$"$j$^$;$s!#%^%^$+$i$NEE;R%a!<\e(B
+\e$B%k$H%P%$%"%0%i9-9p$r6hJL$9$kKbK!$N%9%$%C%A$O$"$j$^$;$s!#?M!9$O\e(B
+\e$BHs\e(B-spam \e$B$H\e(B spam \e$B$r6hJL$9$k$N$K<j$r>F$$$F$$$k$H$$$&$N$K!#$=$l$O!"\e(B
+spammers \e$B$,7|L?$K$=$l$i$r%^%^$@$H;W$o$;$h$&$H$7$F$$$k$N$,K\<A$@$+$i$G$9!#\e(B
+Spamming \e$B$O!"@$3&$,H`$i$K285A$,$"$k$H;W$C$F$$$k?M!9$N0lCD$+$i$N!"J"N)$?\e(B
+\e$B$7$/!"L5@UG$$G!"$P$+$2$?9T0Y$G$9!#0J2<$N3F9`$,\e(B spam \e$B$J$k1VIB$H$N@o$$$N=u\e(B
+\e$B$1$K$J$k$3$H$rK>$_$^$9!#\e(B
+
+@node Anti-Spam Basics
+@subsection Spam \e$BB`<#$N4pAC\e(B
+@cindex email spam
+@cindex spam
+@cindex UCE
+@cindex unsolicited commercial email
+
+Spam \e$B$KBP=h$9$k0l$D$NJ}K!$O!"\e(Bgnus \e$B$KA4$F$N\e(B spam \e$B$r\e(B @samp{spam} \e$B%a!<%k%0\e(B
+\e$B%k!<%W$KJ,N%$5$;$F$7$^$&$3$H$G$9\e(B (@pxref{Splitting Mail})\e$B!#\e(B
+
+\e$B:G=i$K!"$"$J$?$KE~C#@-$N$"$k@5$7$$%a!<%k%"%I%l%9$r0l$DA*$S!"$=$l$rA4$F$N\e(B
+\e$B$"$J$?$N%K%e!<%95-;v$N\e(B @code{From} \e$B%X%C%@!<$KF~$l$^$9!#\e(B(\e$B$3$3$G$O\e(B
+@samp{larsi@@trym.ifi.uio.no} \e$B$rA*$S$^$7$?$,!"\e(B
+@samp{larsi+usenet@@ifi.uio.no} \e$B7A<0$N$?$/$5$s$N%"%I%l%9$NJ}$,NI$$A*Br$G\e(B
+\e$B$9!#$"$J$?$N%5%$%H$N\e(B sendmail \e$B$N@_Dj$,%a!<%k%"%I%l%9$N%m!<%+%kIt$H$7$F$I\e(B
+\e$B$s$J%-!<%o!<%I$r<u$1IU$1$k$+$O!"$"$J$?$N%5%$%H$N%7%9%F%`4IM}<T$KJ9$$$F$/\e(B
+\e$B$@$5$$!#\e(B)
+
+@lisp
+(setq message-default-news-headers
+ "From: Lars Magne Ingebrigtsen <larsi@@trym.ifi.uio.no>\n")
+@end lisp
+
+\e$B$=$7$F\e(B @code{nnmail-split-fancy} \e$B$K0J2<$NJ,N%5,B'$rF~$l$^\e(B
+\e$B$9\e(B (@pxref{Fancy Mail Splitting})\e$B!#\e(B
+
+@lisp
+(...
+ (to "larsi@@trym.ifi.uio.no"
+ (| ("subject" "re:.*" "misc")
+ ("references" ".*@@.*" "misc")
+ "spam"))
+ ...)
+@end lisp
+
+\e$B$3$N0UL#$O!"$3$N%"%I%l%9$KFO$$$?A4$F$N%a!<%k$r$^$:5?$$$^$9$,!"\e(B
+@samp{Re:} \e$B$G;O$^$k\e(B @code{Subject} \e$B$,$D$$$F$$$k$+!"\e(B@code{References} \e$B%X%C\e(B
+\e$B%@!<$,$D$$$F$$$l$P$*$=$i$/\e(B OK \e$B$@$m$&!"$H$$$&$3$H$G$9!#;D$j$OA4$F\e(B
+@samp{spam} \e$B%0%k!<%W$K9T$-$^$9!#\e(B(\e$B$3$N%"%$%G%"$O$*$=$i$/\e(B Tim Pierce \e$B;a$K\e(B
+\e$B$h$k$b$N$G$9!#\e(B)
+
+\e$B$3$l$K2C$($F!"B?$/$N%a!<%k\e(B spam \e$B20$O!"$"$J$?$N$H$3$m$N\e(B @acronym{SMTP} \e$B%5!<\e(B
+\e$B%P!<$HD>@\OC$7!"\e(B@code{To} \e$B%X%C%@!<$K$"$J$?$N%a!<%k%"%I%l%9$,L@<($5$l$J$$\e(B
+\e$B$h$&$K$7$^$9!#$J$s$G$=$s$J$3$H$r$9$k$N$+$O$o$+$j$^$;$s$,\e(B --- \e$B$*$=$i$/;d\e(B
+\e$B$?$A$NN"$r$+$/5!9=$NN"$r$+$/$?$a$+$J\e(B? \e$B$I$A$i$K$7$F$b!"BP=h$O4JC1$J$3$H$G\e(B
+\e$B$9\e(B --- \e$B$"$J$?08$F$G$J$$$b$N$rA4It\e(B @samp{spam} \e$B%0%k!<%W$K$$$l$k$@$1$G$9!#\e(B
+\e$B$3$l$O$*9%$_J,N%5,B'$N:G8e$K$3$s$JIw$KF~$l$k$3$H$G$G$-$^$9!#\e(B
+
+@lisp
+(
+ ...
+ (to "larsi" "misc")
+ "spam")
+@end lisp
+
+\e$B;d$N7P83$G$O!"$3$l$G;v<B>eA4$F$,@5$7$$%0%k!<%W$KJ,N`$5$l$^$9!#$^$"!"$=$l\e(B
+\e$B$G$b$H$-$I$-\e(B @samp{spam} \e$B%0%k!<%W$r%A%'%C%/$7$F!"@5$7$$%a!<%k$,$"$k$+%A%'%C\e(B
+\e$B%/$7$J$/$F$O$$$1$^$;$s$1$I$M!#$b$7$"$J$?$O<+J,$,NI$$%M%C%H%o!<%/;TL1$G$"\e(B
+\e$B$k$H;W$C$F$$$k$J$i!"$=$l$>$l$N2!$7IU$1@kEA%a!<%k$N4X78Ev6I$K6l>p$rAw$jIU\e(B
+\e$B$1$k$3$H$5$($b$G$-$^$9\e(B --- \e$B2K$J$H$-$K$G$b$M!#\e(B
+
+\e$B$3$l$G;d$N$H$3$m$G$OF0$$$F$$$^$9!#$3$l$G$_$s$J$O4JC1$JJ}K!$G;d$KO"Mm$r<h\e(B
+\e$B$k$3$H$,$G$-\e(B (\e$BIaDL$K\e(B @kbd{r} \e$B$r2!$9$@$1$G$G$-$k\e(B)\e$B!";d$O\e(B spam \e$B$KHQ$o$5$l$k\e(B
+\e$B$3$H$OA4$/$"$j$^$;$s!#F@!9>uBV$G$9!#;d$N0U8+$H$7$F$O!"\e(B@code{From} \e$B%X%C%@!<\e(B
+\e$B$r56B$$7$FB8:_$7$J$$%I%a%$%s$KAw$i$;$k$N$O%-%?%J%$$G$9!#\e(B
+
+\e$B$3$N<jK!$K$OCm0U$7$F2<$5$$!#\e(BSpammers \e$B$O$=$l$K5$IU$$$F$$$^$9!#\e(B
+
+@node SpamAssassin
+@subsection SpamAssassin, Vipul's Razor, DCC, etc
+@cindex SpamAssassin
+@cindex Vipul's Razor
+@cindex DCC
+
+Spam \e$B$rHr$1$k$?$a$NA09`$N%R%s%H$,==J,$@$C$?F|!9$O2a$.5n$j$^$7$?!#:#$G$O\e(B
+\e$B<u$1<h$C$?$?$/$5$s$N\e(B spam \e$B$r8:$i$9$?$a$NB?$/$NF;6q$,$"$j$^$9!#$3$N9`$O?7\e(B
+\e$B5lCV$-49$($K$h$C$F$9$0$K;~BeCY$l$K$J$C$F$7$^$&$G$7$g$&$,!"9,$$$J$3$H$K$[\e(B
+\e$B$H$s$I$NF;6q$ON`;w$N%$%s%?!<%U%'!<%9$r;}$C$F$$$^$9!#$3$N9`$ONc$H$7\e(B
+\e$B$F\e(B SpamAssassin \e$B$r;H$C$F$$$^$9$,!"B>$N$[$H$s$I$NF;6q$K$b4JC1$KE,9g$9$k$O\e(B
+\e$B$:$G$9!#\e(B
+
+\e$B$3$N9`$O\e(B @code{spam.el} \e$B%Q%C%1!<%8$H$O4X78L5$$$3$H$KCm0U$7$F2<$5$$!#$=$l\e(B
+\e$B$O<!$N9`$GO@$8$i$l$^$9!#$9$Y$F$N\e(B @code{spam.el} \e$B$N5!G=$K4X?4$,L5$$$N$J$i\e(B
+\e$B$P!"$3$l$i$NC1=c$J%l%7%T$G4V$K9g$o$;$k$3$H$,$G$-$^$9!#\e(B
+
+\e$B$b$7$"$J$?$,;H$&F;6q$,%a!<%k%5!<%P!<$K%$%s%9%H!<%k$5$l$F$$$J$$$J$i$P!"$"\e(B
+\e$B$J$?<+?H$,$=$l$r8F$S=P$9I,MW$,$"$j$^$9!#0J2<$K\e(B @code{:postscript} \e$B%a!<%k\e(B
+\e$B%=!<%9;X<(;R\e(B (@pxref{Mail Source Specifiers}) \e$B$r;H$&>l9g$N9M$(J}$r<($7$^\e(B
+\e$B$9!#\e(B
+
+@lisp
+(setq mail-sources
+ '((file :prescript "formail -bs spamassassin < /var/mail/%u")
+ (pop :user "jrl"
+ :server "pophost"
+ :postscript
+ "mv %t /tmp/foo; formail -bs spamc < /tmp/foo > %t")))
+@end lisp
+
+\e$B$$$C$?$s!"%a!<%k$r<u$1$k%9%W!<%k$r$I$&$K$+$7$F=hM}$9$k!"Nc$($P\e(B@: \e$B%a!<%k\e(B
+\e$B$K\e(B spam \e$B$G$"$k$3$H$rI=<($9$k%X%C%@!<$r4^$a$k!"$h$&$K$9$l$P!"$=$l$r$U$k$$\e(B
+\e$BMn$H$9=`Hw$O40N;$G$9!#;H$&$N$OIaDL$NJ,3dJ}<0\e(B (@pxref{Splitting Mail}) \e$B$G\e(B
+\e$B$9\e(B:
+
+@lisp
+(setq nnmail-split-methods '(("spam" "^X-Spam-Flag: YES")
+ ...))
+@end lisp
+
+\e$B$^$?$OFC5iJ,3dJ}<0\e(B (@pxref{Fancy Mail Splitting}) \e$B$G$9\e(B:
+
+@lisp
+(setq nnmail-split-methods 'nnmail-split-fancy
+ nnmail-split-fancy '(| ("X-Spam-Flag" "YES" "spam")
+ ...))
+@end lisp
+
+\e$B$$$/$i$+$N?M$?$A$O\e(B @code{:prescript} \e$B$r;H$C$F%a!<%k$r$$$m$s$J%W%m%0%i%`\e(B
+\e$B$K%Q%$%W$9$k$3$H$r7y$&$+$b$7$l$^$;$s\e(B (\e$B$b$72?$+$N%W%m%0%i%`$K%P%0$,$"$C$?\e(B
+\e$B$i!"$9$Y$F$N%a!<%k$r<:$C$F$7$^$&$+$b$7$l$^$;$s\e(B)\e$B!#$"$J$?$,$=$l$i$N0l?M$J\e(B
+\e$B$i$P!"JL$N2r$OJ,3d$9$k$H$-$K30It$NF;6q$r8F$V$3$H$G$9!#FC5iJ,3dJ}<0$NNc$G\e(B
+\e$B$9\e(B:
+
+@lisp
+(setq nnmail-split-fancy '(| (: kevin-spamassassin)
+ ...))
+(defun kevin-spamassassin ()
+ (save-excursion
+ (widen)
+ (if (eq 1 (call-process-region (point-min) (point-max)
+ "spamc" nil nil nil "-c"))
+ "spam")))
+@end lisp
+
+\e$B$5$i$K\e(B nnimap \e$B%P%C%/%(%s%I$N>l9g!"%G%#%U%)%k%H$G$O5-;v$N%\%G%#$,%@%&%s%m!<\e(B
+\e$B%I$5$l$J$$$3$H$KCm0U$7$F2<$5$$!#$=$l$r$9$k$?$a$K$O!"\e(B
+@code{nnimap-split-download-body} \e$B$r\e(B @code{t} \e$B$K@_Dj$9$kI,MW$,$"$j$^\e(B
+\e$B$9\e(B (@pxref{Splitting in IMAP})\e$B!#\e(B
+
+\e$B0J>e$,$3$l$K4X$9$k$3$H$G$9!#$$$/$D$+$N\e(B spam \e$B$O$I$&$7$F$bAGDL$j$7$F$7$^$&\e(B
+\e$B$N$G!"\e(Bspam \e$B$rFI$`$O$a$K$J$C$?$H$-$K8F$V$?$a$N5$$NMx$$$?4X?t$,M_$7$$$G$7$g\e(B
+\e$B$&!#$3$l$,$=$N5$$NMx$$$?4X?t$G$9\e(B:
+
+@lisp
+ (defun my-gnus-raze-spam ()
+ "Submit SPAM to Vipul's Razor, then mark it as expirable."
+ (interactive)
+ (gnus-summary-show-raw-article)
+ (gnus-summary-save-in-pipe "razor-report -f -d")
+ (gnus-summary-mark-as-expirable 1))
+@end lisp
+
+@node Hashcash
+@subsection Hashcash
+@cindex hashcash
+
+Spam \e$B$H@o$&$?$a$N?7$7$$5;K!$O!"$$$/$P$/$+$NIiC4$K$O$J$k$,L@$i$+$KFHFC$J\e(B
+\e$B$3$H$r!"Aw?.$9$k%a%C%;!<%8$KBP$7$FAw?.<T$,9T$J$&$3$H$r5a$a$k$3$H$G$9!#$3\e(B
+\e$B$l$O%$%s%?!<%M%C%HI8=`$N0lIt$G$O$J$$$N$G!"@$3&Cf$N$9$Y$F$N?M$,$3$N5;K!$r\e(B
+\e$B;H$&$3$H$OEv$F$K$G$-$J$$$H$$$&L@$i$+$J7gE@$,$"$j$^$9$,!">.5,LO$J6&F1BN$G\e(B
+\e$B$OLr$KN)$D$G$7$g$&!#\e(B
+
+\e$BA09`$NF;6qN`$,<B:]$K$&$^$/F/$$$?$H$7$F$b!"$=$l$i$O?7$7$$7A<0$N\e(B spam \e$B$,8=\e(B
+\e$B$l$k$?$S$K$7$g$C$A$e$&99?7$+$D@0Hw$5$l$k$3$H$K$h$C$F$N$_F0:n$7$^$9!#$3$N\e(B
+\e$B$3$H$O!">.$5$J%Q!<%;%s%F!<%8$N\e(B spam \e$B$,$$$D$bAGDL$j$7$F$7$^$&$3$H$r0UL#$7\e(B
+\e$B$^$9!#$=$l$O$^$?!"$I$3$+$G$@$l$+$,$=$l$i$NF;6q$r99?7$9$k$?$a$K!"$?$/$5$s\e(B
+\e$B$N\e(B spam \e$B$rFI$^$J$1$l$P$J$i$J$$$3$H$r$b0UL#$7$^$9!#\e(BHashcash \e$B$O$=$l$r2sHr\e(B
+\e$B$7$^$9$,!"Be$o$j$K$"$J$?$,EE;R%a!<%k$GO"Mm$9$k$9$Y$F$N?M$?$A$K!"$J$k$Y$/\e(B
+\e$B$=$N;EAH$_$r;H$C$F$b$i$&I,MW$,$"$j$^$9!#$"$J$?$O<BMQ\e(B (pragmatic) \e$B$H65\e(B
+\e$B>r\e(B (dogmatic) \e$B$NFs$D$N<h$jAH$_$r9M$($k$3$H$,$G$-$^$9!#$=$l$i$N<h$jAH$_$K\e(B
+\e$B$OMxE@$b$"$l$PITMx$JE@$b$"$j$^$9$,!"$=$l$O@$$NCf$G$OIaDL$N$3$H$G!"$=$l$i\e(B
+\e$B$rO"78$5$;$?$b$N$,B>$N$P$i$P$i$J$b$N$h$j6/NO$J$N$G$9!#\e(B
+
+@cindex X-Hashcash
+\e$B!V$$$/$P$/$+$NIiC4!W$H$O\e(B CPU \e$B;~4V$r>CHq$9$k$3$H$G!"6qBNE*$K$O0lDj?t$N%S%C\e(B
+\e$B%H$^$G%O%C%7%e$N>WFM\e(B (hash collision) \e$B$r7W;;$9$k$3$H$G$9!#$=$N7k2L$H$7$F\e(B
+\e$B$N\e(B hashcash \e$B%/%C%-!<$O\e(B @samp{X-Hashcash:} \e$B%X%C%@!<$KA^F~$5$l$^$9!#$b$C$H\e(B
+\e$B>\$7$$$3$H!"$=$7$F$3$N5!G=$r;H$&$?$a$K%$%s%9%H!<%k$9$kI,MW$,$"$k30It%"%W\e(B
+\e$B%j%1!<%7%g%s$N\e(B @code{hashcash} \e$B$K$D$$$F\e(B
+\e$B$O\e(B @uref{http://www.hashcash.org/} \e$B$r;2>H$7$F2<$5$$!#$5$i$J$k>pJs\e(B
+\e$B$,\e(B @uref{http://www.camram.org/} \e$B$G8+$D$+$k$G$7$g$&!#\e(B
+
+\e$BAw?.$9$k%a%C%;!<%8$N$=$l$>$l$K$D$$$F\e(B hashcash \e$B$r@8@.$5$;$h$&$H;W$&$J$i!"\e(B
+\e$B0J2<$N$h$&$K\e(B @code{message-generate-hashcash} (@pxref{Mail Headers,,Mail
+Headers,message-ja, The Message Manual}) \e$B$r%+%9%?%^%$%:$7$F2<$5$$\e(B:
+
+@lisp
+(setq message-generate-hashcash t)
+@end lisp
+
+\e$B$$$/$D$+$NDI2C$NJQ?t$N@_Dj$b$7$J$1$l$P$J$j$^$;$s\e(B:
+
+@table @code
+@item hashcash-default-payment
+@vindex hashcash-default-payment
+\e$B$3$NJQ?t$O%O%C%7%e$N>WFM$r@.$9%G%#%U%)%k%H$N%S%C%H?t$r<($7$^$9!#5,DjCM\e(B
+\e$B$O\e(B 20 \e$B$G$9!#Ds>'$5$l$F$$$kM-8z$JCM$O\e(B 17 \e$B$+$i\e(B 29 \e$B$^$G$N?t$G$9!#\e(B
+
+@item hashcash-payment-alist
+@vindex hashcash-payment-alist
+\e$B2??M$+$N<u<h?M$O!"$"$J$?$K%G%#%U%)%k%H$h$jB?$/$N\e(B CPU \e$B;~4V$rHq$d$9$3$H$r\e(B
+\e$BMW5a$9$k$+$b$7$l$^$;$s!#$3$NJQ?t$O\e(B @samp{(@var{addr} @var{amount})} \e$B$N7A\e(B
+\e$B<0$NMWAG$N%j%9%H$G!"\e(B@var{addr} \e$B$O<u<h?M\e(B (\e$B%a!<%k%"%I%l%9$+%K%e!<%9%0%k!<\e(B
+\e$B%W\e(B)\e$B!"\e(B@var{amount} \e$B$OI,MW$H$5$l$k>WFM$N%S%C%H?t$G$9!#$3$l$O$^\e(B
+\e$B$?\e(B @samp{(@var{addr} @var{string} @var{amount})} \e$B$NMWAG$r;}$D$3$H$b2DG=\e(B
+\e$B$G!"\e(B@var{string} \e$B$OJ8;zNs\e(B (\e$BDL>o$O%a!<%k%"%I%l%9$+%K%e!<%9%0%k!<%WL>\e(B) \e$B$H\e(B
+\e$B$7$F;H$o$l$^$9!#\e(B
+
+@item hashcash-path
+@vindex hashcash-path
+@code{hashcash} \e$B%P%$%J%j$,%$%s%9%H!<%k$5$l$F$$$k>l=j!#$3$NJQ?t\e(B
+\e$B$O\e(B @code{executable-find} \e$B$K$h$C$F<+F0E*$K@_Dj$5$l$k$O$:$G$9$,!"$=$l\e(B
+\e$B$,\e(B @code{nil} \e$B$@$C$?\e(B (\e$B$"$j$,$A$J$N$O\e(B @code{hashcash} \e$B%P%$%J%j$,<B\e(B
+\e$B9T\e(B path \e$BCf$KL5$$\e(B) \e$B>l9g$O!"\e(Bhashcash payments \e$B$r%A%'%C%/$9$k$H$-$K7Y9p$5$l!"\e(B
+hashcash payments \e$B$r@8@.$9$k$H$-$O%(%i!<$K$J$k$G$7$g$&!#\e(B
+@end table
+
+Gnus \e$B$O\e(B hashcash \e$B%/%C%-!<$rG'>Z$9$k$3$H$,$G$-$^$9$,!"<j$G%+%9%?%^%$%:$7\e(B
+\e$B$?%a!<%k_I2a%9%/%j%W%H$G9T$J$&$3$H$b$G$-$^$9!#%a%C%;!<%8Cf$N\e(B hashcash \e$B%/%C\e(B
+\e$B%-!<$rG'>Z$9$k$K$O!"\e(B@code{hashcash.el} \e$B%i%$%V%i%j\e(B
+\e$B$N\e(B @code{mail-check-payment} \e$B4X?t$r;H$C$F2<$5$$!#F~$C$F$-$?%a!<%k\e(B
+\e$B$N\e(B hashcash \e$B%/%C%-!<$r3NG'$7!"$=$l$K$h$C$F%a!<%k$r_I2a$9$k$?$a$K!"\e(B
+@code{spam-use-hashcash} \e$B%P%C%/%(%s%I$G\e(B @code{spam.el} \e$B$r;H$&$3$H$b$G$-\e(B
+\e$B$^$9\e(B (@pxref{Anti-spam Hashcash Payments})\e$B!#\e(B
+
+@node Filtering Spam Using The Spam ELisp Package
+@subsection Spam ELisp \e$B%Q%C%1!<%8$r;H$C$?\e(B Spam \e$B$N_I2a\e(B
+@cindex spam filtering
+@cindex spam
+
+@code{spam.el} \e$B$N??$NL\E*$O\e(B spam \e$B8!=P$H_I2a$N$?$a$N41@)%;%s%?!<\e(B
+\e$B$r\e(B gnus \e$B$NCf$K;}$D$3$H$G$9!#$=$N$?$a$K\e(B @code{spam.el} \e$B$OFs$D$N$3$H$r9T$J\e(B
+\e$B$$$^$9\e(B: \e$B?7$7$$%a!<%k$r_I2a$7!"\e(Bspam \e$B$^$?$O\e(B ham \e$B$H$7$FCN$i$l$k%a!<%k$rJ,@O\e(B
+\e$B$9$k$3$H$G$9!#\e(B@dfn{Ham} \e$B$O\e(B @code{spam.el} \e$B$N$$$?$k=j$G\e(B spam \e$B$G$O$J$$%a%C\e(B
+\e$B%;!<%8$r<($9$?$a$K;H$&L>A0$G$9!#\e(B
+
+@code{spam.el} \e$B%7!<%1%s%9$N%$%Y%s%H$N9`$r$A$c$s$HFI$_$^$7$g$&!#\e(B
+@ref{Spam ELisp Package Sequence of Events} \e$B$r;2>H$7$F2<$5$$!#\e(B
+
+@cindex spam-initialize
+@code{spam.el} \e$B$r;H$&$K$O!"\e(B@file{spam.el} \e$B$r<+F0FI$_9~$_\e(B (autoload) \e$B$7\e(B
+\e$B$F\e(B @code{spam.el} \e$B$N3F%U%C%/$r%$%s%9%H!<%k$9$k$?$a$K!"4X\e(B
+\e$B?t\e(B @code{spam-initialize} \e$B$r\e(B @strong{\e$B<B9T$7$J$1$l$P$J$j$^$;$s\e(B}\e$B!#0l$DNc30\e(B
+\e$B$,$"$j$^$9\e(B: \e$B$b$7\e(B @code{spam-use-stat} \e$B$N@_Dj$r;H$&\e(B (@pxref{spam-stat
+spam filtering}) \e$B$N$G$"$l$P!"$=$l$r\e(B @code{spam-initialize} \e$B$h$jA0\e(B
+\e$B$K\e(B on \e$B$K$7$F$*$+$J$1$l$P$J$j$^$;$s\e(B:
+
+@example
+(setq spam-use-stat t) ;; \e$BI,MW$J$i\e(B
+(spam-initialize)
+@end example
+
+\e$B$G$O\e(B @file{spam.el} \e$B$rFI$_9~$`$H2?$,5/$-$k$G$7$g$&$+\e(B?
+
+\e$BBh0l$K\e(B @code{spam-initialize} \e$B$K$h$C$F$$$/$D$+$N%U%C%/$,F0:n$9$k$h$&$K$J\e(B
+\e$B$j$^$9!#\e(B@code{spam-stat} \e$B$,$=$l$i$N%G!<%?%Y!<%9$r%;!<%V$G$-$k$h$&$K$9$k\e(B
+\e$B%U%C%/$H!"%0%k!<%W$KF~$k$H$-$HH4$1$k$H$-$K6=L#?<$$J*;v$r5/$3$9%U%C%/$,$"\e(B
+\e$B$j$^$9!#%7!<%1%s%9$N%$%Y%s%H$K$D$$$F$N>\:Y$O8e=R\e(B (@pxref{Spam ELisp
+Package Sequence of Events})\e$B!#\e(B
+
+\e$B0J2<$N%-!<%\!<%IL?Na$,;H$($k$h$&$K$J$j$^$9\e(B:
+
+@table @kbd
+@item M-d
+@itemx M s x
+@itemx S x
+@kindex M-d
+@kindex S x
+@kindex M s x
+@findex gnus-summary-mark-as-spam
+@code{gnus-summary-mark-as-spam}\e$B!#\e(B
+
+\e$B8=:_$N5-;v$K\e(B spam \e$B$H$7$F0u$rIU$1!"$=$l$r\e(B @samp{$} \e$B0u$GI=<($7$^$9!#\e(B
+Spam \e$B5-;v$r8+$?$H$-$O$$$D$G$b!"%0%k!<%W$rH4$1$kA0$KI,$:\e(B @kbd{M-d} \e$B$G$=$N\e(B
+\e$B35N,9T$K0u$rIU$1$k$h$&$K$7$F2<$5$$!#$3$l$O\e(B @emph{spam} \e$B%0%k!<%W$NL$FI5-\e(B
+\e$B;v$KBP$7$F$O<+F0E*$K9T$J$o$l$^$9!#\e(B
+
+@item M s t
+@itemx S t
+@kindex M s t
+@kindex S t
+@findex spam-bogofilter-score
+@code{spam-bogofilter-score}\e$B!#\e(B
+
+\e$B$3$N%3%^%s%I$,$A$c$s$HF/$/$?$a$K$O\e(B Bogofilter \e$B$r%$%s%9%H!<%k$7$J$1$l$P$J\e(B
+\e$B$j$^$;$s!#\e(B
+
+@xref{Bogofilter}.
+
+@end table
+
+\e$B$^$?!"\e(B@file{spam.el} \e$B$rFI$_9~$`$H!"$=$NJQ?t72$r%+%9%?%^%$%:$9$k$3$H$,$G\e(B
+\e$B$-$k$h$&$K$J$j$^$9!#\e(B@samp{spam} \e$BJQ?t%0%k!<%W$K$D$$\e(B
+\e$B$F\e(B @code{customize-group} \e$B$r;n$7$F$_$F2<$5$$!#\e(B
+
+@menu
+* Spam ELisp Package Sequence of Events::
+* Spam ELisp Package Filtering of Incoming Mail::
+* Spam ELisp Package Global Variables::
+* Spam ELisp Package Sorting and Score Display in Summary Buffer::
+* Spam ELisp Package Configuration Examples::
+* Blacklists and Whitelists::
+* BBDB Whitelists::
+* Gmane Spam Reporting::
+* Anti-spam Hashcash Payments::
+* Blackholes::
+* Regular Expressions Header Matching::
+* Bogofilter::
+* SpamAssassin back end::
+* ifile spam filtering::
+* spam-stat spam filtering::
+* SpamOracle::
+* Extending the Spam ELisp package::
+@end menu
+
+@node Spam ELisp Package Sequence of Events
+@subsubsection Spam ELisp Package Sequence of Events
+@cindex spam filtering
+@cindex spam filtering sequence of events
+@cindex spam
+\e$B$I$N$h$&$K\e(B @code{spam.el} \e$B$,F/$/$+$rM}2r$9$k$?$a$K!"I,$:$3$N9`$rFI$s$G2<\e(B
+\e$B$5$$!#FI$_Ht$P$7!"B.FI!"$^$?$O<P$aFI$_$7$F$O$$$1$^$;$s!#\e(B
+
+@code{spam.el} \e$B$H\e(B Gnus \e$B$N4V$K$O!"Fs$D$N\e(B @emph{\e$B@\E@\e(B} \e$B$,$"$k$H9M$($i$l$^$9!#\e(B
+Spam \e$B$N$?$a$K?7Ce%a!<%k$r8!::$9$k$H$-!"$*$h$S%0%k!<%W$rH4$1$k$H$-$G$9!#\e(B
+
+Gnus \e$B$K$*$1$k?7Ce%a!<%k$N<hF@$O!"Fs$D$NJ}K!$N0lJ}$G9T$J$o$l$^$9!#?7Ce%a!<\e(B
+\e$B%k$rJ,3d$9$k$+!"%0%k!<%W$KF~$k$H$-$K?7$7$$5-;v$r\e(B ham \e$B$H\e(B spam \e$B$KJ,N`$9$k\e(B
+\e$B$+$N!"$I$A$i$G$b2DG=$G$9!#\e(B
+
+\e$B?7Ce%a!<%k$NJ,3d$O!"\e(B@code{nnml} \e$B$d\e(B @code{nnimap} \e$B$N$h$&$K!"?7$7$$%a!<%k\e(B
+\e$B$,\e(B @dfn{Spool File} \e$B$H8F$P$l$k0l$D$N%U%!%$%k$K$J$k%P%C%/%(%s%I$K!"$h$jE,\e(B
+\e$B$7$F$$$^$9!#\e(B@xref{Spam ELisp Package Filtering of Incoming Mail} \e$B$r;2>H\e(B
+\e$B$7$F2<$5$$!#\e(B
+
+@vindex gnus-spam-autodetect
+@vindex gnus-spam-autodetect-methods
+@code{nntp} \e$B$N$h$&$J%P%C%/%(%s%I$K$O?7Ce%a!<%k$N%9%W!<%k$,L5$$$N$G!"Be$o\e(B
+\e$B$j$N5!9=$r;H$o$J$1$l$P$J$j$^$;$s!#$3$l$O!"%5!<%P!<$,?7Ce%a!<%k$NJ,3d$rC4\e(B
+\e$BEv$7$F$$$F!"\e(BGnus \e$B$,$5$i$K$^$?J,3d$r9T$J$o$J$$%P%C%/%(%s%I$G$b!"\e(B(\e$BBe$o$j$N\e(B
+\e$B5!9=$,\e(B) \e$BI,MW$K$J$k$+$b$7$l$^$;$s!#%0%k!<%W%Q%i%a!<\e(B
+\e$B%?\e(B @code{spam-autodetect} \e$B$H\e(B @code{spam-autodetect-methods} (\e$BIaDL\e(B @kbd{G
+c} and @kbd{G p} \e$B$GA`:n2D\e(B)\e$B!"$=$7$F$=$l$i$KBP1~$9$kJQ\e(B
+\e$B?t\e(B @code{gnus-spam-autodetect} \e$B$*$h\e(B
+\e$B$S\e(B @code{gnus-spam-autodetect-methods} (@kbd{M-x customize-variable} \e$B$G\e(B
+\e$BA`:n2D\e(B) \e$B$,LrN)$A$^$9!#\e(B
+
+@code{spam-autodetect} \e$B$,;H$o$l$k>l9g\e(B (\e$B$=$l$O%0%k!<%W\e(B/\e$B%H%T%C%/$K$D$$$F!"\e(B
+\e$B$"$k$$$OI,MW$K1~$8$F!"@55,I=8=$N9gCW$K$h$C$F==GD$R$H$+$i$2$K\e(B ON \e$B$K$G$-$^\e(B
+\e$B$9\e(B)\e$B!"$=$l$O%0%k!<%W$KF~$k\e(B (\e$B$=$N%0%k!<%W$N35N,%P%C%U%!$K0\F0$9$k\e(B) \e$B=hM}$K\e(B
+\e$B$*$$$F<B9T$5$l$^$9!#$7$?$,$C$F!"$^$@FI$^$l$?$3$H$,L5$$!"$^$?$OL$FI$N5-;v\e(B
+\e$B$,$"$k%0%k!<%W$KF~$k$3$H$O!"?7Ce%a!<%k$N8!::$NBe$o$j$K$J$j$^$9!#$^$@FI$^\e(B
+\e$B$l$?$3$H$,L5$$5-;v!"$^$?$O$9$Y$F$NL$FI$N5-;v$,=hM}$5$l$k$+$I$&$+$O!"\e(B
+@code{spam-autodetect-recheck-messages} \e$B$K$h$C$F7h$^$j$^$9!#\e(B@code{t} \e$B$K\e(B
+\e$B@_Dj$5$l$k$H!"L$FI$N%a%C%;!<%8$,:F8!::$5$l$^$9!#$*$=$i$/!"$^$@FI$^$l$?$3\e(B
+\e$B$H$,L5$$%a%C%;!<%8$N%G%#%U%)%k%H$N8!::$@$1$O!"Ce<B$K9T$J$o$J$1$l$P$J$i$J\e(B
+\e$B$$$G$7$g$&!#\e(B
+
+@code{spam-autodetect} \e$B$O!"B?>/$J$j$H$b\e(B spam \e$B_I2a$N4IM}$r%f!<%6$K5v2D$7\e(B
+\e$B$^$9!#%f!<%6$O3F%0%k!<%W$N\e(B spam \e$B8!=P$N<jCJ$r$h$jB?$/4IM}$9$k$3$H$,$G$-$k\e(B
+\e$B$G$7$g$&!#$7$?$,$C$F!"\e(B@samp{\e$B5?$o$7$$\e(B} (@samp{suspect}) \e$B%0%k!<%W\e(B
+\e$B$G\e(B @code{spam-use-blacklist} \e$B$*$h$S\e(B @code{spam-use-bogofilter} \e$B$N<jCJ$,\e(B
+\e$BM-8z$K$J$C$F$$$F$b!"Nc$($P\e(B @samp{ding} \e$B%0%k!<%W$O<+F08!=P<jCJ$H$7\e(B
+\e$B$F\e(B @code{spam-use-BBDB} \e$B$r;}$D$3$H$,$G$-$^$9!#\e(BSpam \e$B$H$7$F8!=P$5$l$k$9$Y\e(B
+\e$B$F$N5-;v$K$O\e(B spam \e$B0u\e(B @samp{$}\e$B$,IU$1$i$l!"%0%k!<%W$rH4$1$k$H$-$KDL>o\e(B
+\e$B$N\e(B spam \e$B$H$7$F=hM}$5$l$^$9!#H`$,\e(B @code{spam-split} \e$B$G9T$J$C$F$bNI$$$h$&\e(B
+\e$B$K!"%f!<%6$O8!::$N\e(B @emph{sequence} \e$B$r$h$j>/$J$/4IM}$7$^$9!#\e(B
+
+\e$B?7$?$KJ,3d$5$l$?%a!<%k$,%0%k!<%W$KF~$C$?!"$^$?$O%a%C%;!<%8$,\e(B ham \e$B$^$?\e(B
+\e$B$O\e(B spam \e$B$H$7$F<+F08!=P$5$l$?>l9g!"8e$K\e(B spam \e$B=hM}$r9T$J$o$;$k$?$a$K!"$=$l\e(B
+\e$B$i$N%0%k!<%W$r\e(B (\e$BI,MW$J$iF~$C$?8e$G\e(B) \e$BH4$1=P$J$/$F$O$J$j$^$;$s!#%0%k!<%W$,\e(B
+\e$B$=$N\e(B @code{spam-content} \e$B%Q%i%a!<%?\e(B (@pxref{Spam ELisp Package Global
+Variables}) \e$B$K4p$E$$$F\e(B ham \e$B$^$?$O\e(B spam \e$B%0%k!<%W$H9M$($i$l$k$+!"L$J,N`$+\e(B
+\e$B$I$&$+$O=EMW$G$9!#\e(BSpam \e$B%0%k!<%W$O!"$=$3$KF~$k$H!"$^$@FI$^$l$?$3$H$,L5$$!"\e(B
+\e$B$^$?$OL$FI$N5-;v$K\e(B spam \e$B$N0u$,IU$1$i$l$k\e(B (\e$BJQ\e(B
+\e$B?t\e(B @code{spam-mark-only-unseen-as-spam} \e$B$K0MB8\e(B) \e$B$H$$$&IU2CE*$JFC@-$r;}$A\e(B
+\e$B$^$9!#$3$N$h$&$K!"J,3d$5$l$F\e(B spam \e$B%0%k!<%W$KF~$l$i$l$?5-;v$K$O!"$"$J$?$,\e(B
+\e$B$=$N%0%k!<%W$KF~$C$?$H$-$K<+F0E*$K\e(B spam \e$B$N0u$,IU$1$i$l$^$9!#\e(B
+
+\e$B$7$?$,$C$F!"%0%k!<%W\e(B (\e$B$N35N,%P%C%U%!\e(B) \e$B$rH4$1$k\e(B
+\e$B$H\e(B @code{spam-processors} \e$B$,\e(B (\e$B2?$G$"$l@_Dj$5$l$F$$$l$P\e(B) \e$BE,MQ$5$l!"=hM}$5\e(B
+\e$B$l$?%a!<%k$O5-;v$NJ,N`$K4p$E$$\e(B
+\e$B$F\e(B @code{ham-process-destination} \e$B$+\e(B @code{spam-process-destination} \e$B$K\e(B
+\e$B0\F0$5$;$i$l$^$9!#\e(B@code{ham-process-destination} \e$B$^$?\e(B
+\e$B$O\e(B @code{spam-process-destination} \e$B$N$I$A$i$+$,\e(B (\e$BLuCp\e(B: \e$B0\F0@h$H$7$F\e(B) \e$B$U\e(B
+\e$B$5$o$7$$>l9g$G$b!"$=$l$i$,\e(B @code{nil} \e$B$@$C$?>l9g!"$=$N5-;v$O8=:_$N%0%k!<\e(B
+\e$B%W$K;D$5$l$^$9!#\e(B
+
+\e$B$I$l$+$N%0%k!<%W$G\e(B spam \e$B$,8+$D$+$C$?$i\e(B (\e$BHs\e(B-spam \e$B%0%k!<%W$K8B$C\e(B
+\e$B$F$O\e(B @code{spam-move-spam-nonspam-groups-only} \e$B$GJQ992D\e(B)\e$B!"%0%k!<%W$rH4$1\e(B
+\e$B$k$H$-$K3h$-$F$$$k\e(B @code{spam-processors} (@pxref{Spam ELisp Package
+Global Variables}) \e$B$G=hM}$5$l$^$9!#$5$i$K!"8e$G%H%l!<%K%s%0$^$?$O:o=|$9\e(B
+\e$B$k$?$a$K!"\e(Bspam \e$B$O\e(B @code{spam-process-destination} (@pxref{Spam ELisp
+Package Global Variables}) \e$B$K0\F0$5$;$i$l$^$9!#\e(BSpam \e$B$,:F;0=hM}$5$l$k$3$H\e(B
+\e$B$rK>$^$J$$$J$i$P!"\e(B@file{gnus-registry.el} \e$B%Q%C%1!<%8$rFI$_9~$_!"\e(B
+@code{spam-log-to-registry} \e$BJQ?t$rM-8z$K$7$J$1$l$P$J$j$^$;$s!#$3$N$h$&\e(B
+\e$B$K\e(B spam \e$B$O$I$3$G$b8!=P$5$l=hM}$5$l$^$9!#$=$l$O$[$H$s$I$N?M!9$,!"$=$&$7$?\e(B
+\e$B$$$H;W$&$3$H$G$9!#\e(B@code{spam-process-destination} \e$B$,\e(B @code{nil} \e$B$@$C$?>l\e(B
+\e$B9g!"\e(Bspam \e$B$K$O4|8B@Z$l>C5n$N0u$,IU$1$i$l$^$9!#IaDL$=$l$O@5$7$$9T$J$$$G$9!#\e(B
+
+Spam \e$B$,0\F0$G$-$J$$>l9g\e(B (\e$BNc$($P\e(B @acronym{NNTP} \e$B$N$h$&$JFI$_9~$_@lMQ%P%C\e(B
+\e$B%/%(%s%I$G$"$k$?$a$K\e(B)\e$B!"$=$l$O%3%T!<$5$l$^$9!#\e(B
+
+Ham \e$B%0%k!<%W$G\e(B @code{ham-marks} \e$B%Q%i%a!<%?$G7hDj$5$l$k\e(B ham \e$B%a!<%k$,8+$D\e(B
+\e$B$+$C$?$i!"%0%k!<%W$rH4$1$k$H$-$K3h$-$F$$$k\e(B ham @code{spam-processor} \e$B$G\e(B
+\e$B=hM}$5$l$^$9!#$5$i$K!"JQ?t\e(B @code{spam-process-ham-in-spam-groups} \e$B$*$h\e(B
+\e$B$S\e(B @code{spam-process-ham-in-nonham-groups} \e$B$K$h$C$F!"$I$3$G8+$D$+$C\e(B
+\e$B$?\e(B ham \e$B$G$b=hM}$G$-$k$h$&$KF0:n$rJQ99$9$k$3$H$,$G$-$^$9!#\e(BHam \e$B$,:F;0=hM}\e(B
+\e$B$5$l$k$3$H$rK>$^$J$$$J$i$P!"\e(B@file{gnus-registry.el} \e$B%Q%C%1!<%8$rFI$_9~$_!"\e(B
+@code{spam-log-to-registry} \e$BJQ?t$rM-8z$K$7$J$1$l$P$J$j$^$;$s!#$3$N$h$&\e(B
+\e$B$K\e(B ham \e$B$OI,MW$J>l9g$@$18!=P$5$l=hM}$5$l$^$9!#$=$l$O$[$H$s$I$N?M!9$,!"$=\e(B
+\e$B$&$7$?$$$H;W$&$3$H$G$9!#$3$l$K4X$9$k>\:Y$O\e(B @xref{Spam ELisp Package
+Configuration Examples}.
+
+Ham \e$B$,0\F0$G$-$J$$>l9g\e(B (\e$BNc$($P\e(B @acronym{NNTP} \e$B$N$h$&$JFI$_9~$_@lMQ%P%C%/\e(B
+\e$B%(%s%I$G$"$k$?$a$K\e(B)\e$B!"$=$l$O%3%T!<$5$l$^$9!#\e(B
+
+\e$B$3$l$i$N$9$Y$F$,$o$1$,$o$+$i$J$/$F$b!"?4G[$OMW$j$^$;$s\e(B (\e$BLuCm\e(B: \e$B$G$bLuJ8$,\e(B
+\e$B@53N$G$O$J$$$+$b$7$l$J$$$N$G!"JQ$@$H;W$C$?$i86J8$r8+$F$M\e(B :-p)\e$B!#$9$0$K$=\e(B
+\e$B$l$O?@7P%$%s%?!<%U%'!<%9>e$K\e(B Lisp \e$B$G>.OC$r=q$/$h$&$K<+A3$J$3$H$K$J$j$^\e(B
+\e$B$9\e(B@dots{} \e$B$(!+$4$a$s!"$=$l$K$O$^$@\e(B 50\e$BG/Aa$$$G$9$M!#$?$@;d$?$A$r?.Mj$7$F\e(B
+\e$B2<$5$$!#$=$l$O<N$F$?$b$N$G$O$"$j$^$;$s!#\e(B
+
+@node Spam ELisp Package Filtering of Incoming Mail
+@subsubsection Spam ELisp Package Filtering of Incoming Mail
+@cindex spam filtering
+@cindex spam filtering incoming mail
+@cindex spam
+
+\e$BF~$C$F$/$k%a!<%k$r_I2a$9$kL\E*$G\e(B @code{spam.el} \e$B$r;H$&$K$O!"FC5iJ,3d%j%9\e(B
+\e$B%H\e(B @code{nnmail-split-fancy} \e$B$^$?$O\e(B @code{nnimap-split-fancy} \e$B$K0J2<$rDI\e(B
+\e$B2C$7$J$1$l$P$J$j$^$;$s\e(B:
+
+@example
+(: spam-split)
+@end example
+
+\e$BFC5iJ,3d$O!"%a!<%k$N<h$j9~$_$K\e(B nnmail \e$B$+\e(B nnimap \e$B$N$I$A$i$N%P%C%/%(%s%I$r\e(B
+\e$B;H$C$F$$$k$+$K1~$8$F!"\e(B@code{nnmail-split-fancy} \e$B$^$?\e(B
+\e$B$O\e(B @code{nnimap-split-fancy} \e$B$+$i8F$P$l$k$3$H$KCm0U$7$F2<$5$$!#\e(B
+
+\e$B$5$i$K!"\e(B@code{spam-split} \e$B$O$$$+$J$kJ}K!$K$h$C$F$b?7Ce%a!<%k$r2~JQ$7$^$;\e(B
+\e$B$s!#\e(B