/[emacs]/emacs/man/gnus.texi
ViewVC logotype

Diff of /emacs/man/gnus.texi

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.30.2.3 by miles, Thu Sep 16 00:12:17 2004 UTC revision 1.30.2.4 by miles, Thu Sep 16 00:14:59 2004 UTC
# Line 14011  is run.  That's why @code{(widen)} needs Line 14011  is run.  That's why @code{(widen)} needs
14011  @code{save-excursion} and @code{save-restriction} in the example  @code{save-excursion} and @code{save-restriction} in the example
14012  above.  Also note that with the nnimap backend, message bodies will  above.  Also note that with the nnimap backend, message bodies will
14013  not be downloaded by default.  You need to set  not be downloaded by default.  You need to set
14014  @code{nnimap-split-download-body} to t to do that (@pxref{Splitting in  @code{nnimap-split-download-body} to @code{t} to do that
14015  IMAP}).  (@pxref{Splitting in IMAP}).
14016    
14017  @item (! @var{func} @var{split})  @item (! @var{func} @var{split})
14018  If the split is a list, and the first element is @code{!}, then  If the split is a list, and the first element is @code{!}, then
# Line 16209  RFC 2060 for more information on valid s Line 16209  RFC 2060 for more information on valid s
16209  A file containing credentials used to log in on servers.  The format is  A file containing credentials used to log in on servers.  The format is
16210  (almost) the same as the @code{ftp} @file{~/.netrc} file.  See the  (almost) the same as the @code{ftp} @file{~/.netrc} file.  See the
16211  variable @code{nntp-authinfo-file} for exact syntax; also see  variable @code{nntp-authinfo-file} for exact syntax; also see
16212  @ref{NNTP}.  @ref{NNTP}.  An example of an .authinfo line for an IMAP server, is:
16213    
16214    @example
16215    machine students.uio.no login larsi password geheimnis port imap
16216    @end example
16217    
16218    Note that it should be @code{port imap}, or @code{port 143}, if you
16219    use a @code{nnimap-stream} of @code{tls} or @code{ssl}, even if the
16220    actual port number used is port 993 for secured IMAP.  For
16221    convenience, Gnus will accept @code{port imaps} as a synonym of
16222    @code{port imap}.
16223    
16224  @item nnimap-need-unselect-to-notice-new-mail  @item nnimap-need-unselect-to-notice-new-mail
16225  @vindex nnimap-need-unselect-to-notice-new-mail  @vindex nnimap-need-unselect-to-notice-new-mail
# Line 22249  server or when you sort through incoming Line 22259  server or when you sort through incoming
22259  messages per day from @samp{random-address@@vmadmin.com}, you block  messages per day from @samp{random-address@@vmadmin.com}, you block
22260  @samp{vmadmin.com}.  If you get 200 messages about @samp{VIAGRA}, you  @samp{vmadmin.com}.  If you get 200 messages about @samp{VIAGRA}, you
22261  discard all messages with @samp{VIAGRA} in the message.  If you get  discard all messages with @samp{VIAGRA} in the message.  If you get
22262  lots of spam from China, for example, you try to filter all mail from  lots of spam from Bulgaria, for example, you try to filter all mail
22263  Chinese IPs.  from Bulgarian IPs.  
22264    
22265  This, unfortunately, is a great way to discard legitimate e-mail.  For  This, unfortunately, is a great way to discard legitimate e-mail.  The
22266  instance, the very informative and useful RISKS digest has been  risks of blocking a whole country (Bulgaria, Norway, Nigeria, China,
22267  blocked by overzealous mail filters because it @strong{contained}  etc.) or even a continent (Asia, Africa, Europe, etc.) from contacting
22268  words that were common in spam messages.  The risks of blocking a  you should be obvious, so don't do it if you have the choice.
22269  whole country from contacting you should also be obvious, so don't do  
22270  it if you have the choice.  Nevertheless, in isolated cases, with  In another instance, the very informative and useful RISKS digest has
22271  great care, direct filtering of mail can be useful.  been blocked by overzealous mail filters because it @strong{contained}
22272    words that were common in spam messages.  Nevertheless, in isolated
22273    cases, with great care, direct filtering of mail can be useful.
22274    
22275  Another approach to filtering e-mail is the distributed spam  Another approach to filtering e-mail is the distributed spam
22276  processing, for instance DCC implements such a system.  In essence,  processing, for instance DCC implements such a system.  In essence,
# Line 22435  call the external tools during splitting Line 22447  call the external tools during splitting
22447    
22448  Note that with the nnimap backend, message bodies will not be  Note that with the nnimap backend, message bodies will not be
22449  downloaded by default.  You need to set  downloaded by default.  You need to set
22450  @code{nnimap-split-download-body} to t to do that (@pxref{Splitting in  @code{nnimap-split-download-body} to @code{t} to do that
22451  IMAP}).  (@pxref{Splitting in IMAP}).
22452    
22453  That is about it.  As some spam is likely to get through anyway, you  That is about it.  As some spam is likely to get through anyway, you
22454  might want to have a nifty function to call when you happen to read  might want to have a nifty function to call when you happen to read
# Line 22672  any are set, and the processed mail is m Line 22684  any are set, and the processed mail is m
22684  @code{ham-process-destination} or the @code{spam-process-destination}  @code{ham-process-destination} or the @code{spam-process-destination}
22685  depending on the article's classification.  If the  depending on the article's classification.  If the
22686  @code{ham-process-destination} or the @code{spam-process-destination},  @code{ham-process-destination} or the @code{spam-process-destination},
22687  whichever is appropriate, are nil, the article is left in the current  whichever is appropriate, are @code{nil}, the article is left in the
22688  group.  current group.
22689    
22690  If a spam is found in any group (this can be changed to only non-spam  If a spam is found in any group (this can be changed to only non-spam
22691  groups with @code{spam-move-spam-nonspam-groups-only}), it is  groups with @code{spam-move-spam-nonspam-groups-only}), it is
# Line 22685  You have to load the @code{gnus-registry Line 22697  You have to load the @code{gnus-registry
22697  @code{spam-log-to-registry} variable if you want spam to be processed  @code{spam-log-to-registry} variable if you want spam to be processed
22698  no more than once.  Thus, spam is detected and processed everywhere,  no more than once.  Thus, spam is detected and processed everywhere,
22699  which is what most people want.  If the  which is what most people want.  If the
22700  @code{spam-process-destination} is nil, the spam is marked as  @code{spam-process-destination} is @code{nil}, the spam is marked as
22701  expired, which is usually the right thing to do.  expired, which is usually the right thing to do.
22702    
22703  If spam can not be moved - because of a read-only backend such as NNTP,  If spam can not be moved---because of a read-only backend such as
22704  for example, it will be copied.  @acronym{NNTP}, for example, it will be copied.
22705    
22706  If a ham mail is found in a ham group, as determined by the  If a ham mail is found in a ham group, as determined by the
22707  @code{ham-marks} parameter, it is processed as ham by the active ham  @code{ham-marks} parameter, it is processed as ham by the active ham
# Line 22703  no more than once.  Thus, ham is detecte Line 22715  no more than once.  Thus, ham is detecte
22715  necessary, which is what most people want.  More on this in  necessary, which is what most people want.  More on this in
22716  @xref{Spam ELisp Package Configuration Examples}.  @xref{Spam ELisp Package Configuration Examples}.
22717    
22718  If ham can not be moved - because of a read-only backend such as NNTP,  If ham can not be moved---because of a read-only backend such as
22719  for example, it will be copied.  @acronym{NNTP}, for example, it will be copied.
22720    
22721  If all this seems confusing, don't worry.  Soon it will be as natural  If all this seems confusing, don't worry.  Soon it will be as natural
22722  as typing Lisp one-liners on a neural interface... err, sorry, that's  as typing Lisp one-liners on a neural interface@dots{} err, sorry, that's
22723  50 years in the future yet.  Just trust us, it's not so bad.  50 years in the future yet.  Just trust us, it's not so bad.
22724    
22725  @node Spam ELisp Package Filtering of Incoming Mail  @node Spam ELisp Package Filtering of Incoming Mail
# Line 22728  Note that the fancy split may be called Line 22740  Note that the fancy split may be called
22740  @code{nnimap-split-fancy}, depending on whether you use the nnmail or  @code{nnimap-split-fancy}, depending on whether you use the nnmail or
22741  nnimap back ends to retrieve your mail.  nnimap back ends to retrieve your mail.
22742    
22743    Also, @code{spam-split} will not modify incoming mail in any way.
22744    
22745  The @code{spam-split} function will process incoming mail and send the  The @code{spam-split} function will process incoming mail and send the
22746  mail considered to be spam into the group name given by the variable  mail considered to be spam into the group name given by the variable
22747  @code{spam-split-group}.  By default that group name is @samp{spam},  @code{spam-split-group}.  By default that group name is @samp{spam},
# Line 22741  actually give you the group Line 22755  actually give you the group
22755  work depending on your server's tolerance for strange group names.  work depending on your server's tolerance for strange group names.
22756    
22757  You can also give @code{spam-split} a parameter,  You can also give @code{spam-split} a parameter,
22758  e.g. @samp{'spam-use-regex-headers} or @samp{"maybe-spam"}.  Why is  e.g. @code{spam-use-regex-headers} or @code{"maybe-spam"}.  Why is
22759  this useful?  this useful?
22760    
22761  Take these split rules (with @code{spam-use-regex-headers} and  Take these split rules (with @code{spam-use-regex-headers} and
# Line 22751  Take these split rules (with @code{spam- Line 22765  Take these split rules (with @code{spam-
22765   nnimap-split-fancy '(|   nnimap-split-fancy '(|
22766                        (any "ding" "ding")                        (any "ding" "ding")
22767                        (: spam-split)                        (: spam-split)
22768                        ;; default mailbox                        ;; @r{default mailbox}
22769                        "mail")                        "mail")
22770  @end example  @end example
22771    
# Line 22767  You can let SpamAssassin headers superse Line 22781  You can let SpamAssassin headers superse
22781  regex-headers check) will be after the ding rule:  regex-headers check) will be after the ding rule:
22782    
22783  @example  @example
22784   nnimap-split-fancy '(|  nnimap-split-fancy
22785  ;;; all spam detected by spam-use-regex-headers goes to "regex-spam"        '(|
22786                        (: spam-split "regex-spam" 'spam-use-regex-headers)          ;; @r{all spam detected by @code{spam-use-regex-headers} goes to @samp{regex-spam}}
22787                        (any "ding" "ding")          (: spam-split "regex-spam" 'spam-use-regex-headers)
22788  ;;; all other spam detected by spam-split goes to spam-split-group          (any "ding" "ding")
22789                        (: spam-split)          ;; @r{all other spam detected by spam-split goes to @code{spam-split-group}}
22790                        ;; default mailbox          (: spam-split)
22791                        "mail")          ;; @r{default mailbox}
22792            "mail")
22793  @end example  @end example
22794    
22795  This lets you invoke specific @code{spam-split} checks depending on  This lets you invoke specific @code{spam-split} checks depending on
# Line 22827  processors take mail known to be spam an Line 22842  processors take mail known to be spam an
22842  will be detected later.  will be detected later.
22843    
22844  The format of the spam or ham processor entry used to be a symbol,  The format of the spam or ham processor entry used to be a symbol,
22845  but now it is a cons cell.  See the individual spam processor entries  but now it is a @sc{cons} cell.  See the individual spam processor entries
22846  for more information.  for more information.
22847    
22848  @vindex gnus-spam-newsgroup-contents  @vindex gnus-spam-newsgroup-contents
# Line 22905  not done for @emph{unclassified} or @emp Line 22920  not done for @emph{unclassified} or @emp
22920  determined by either the @code{ham-process-destination} group  determined by either the @code{ham-process-destination} group
22921  parameter or a match in the @code{gnus-ham-process-destinations}  parameter or a match in the @code{gnus-ham-process-destinations}
22922  variable, which is a list of regular expressions matched with group  variable, which is a list of regular expressions matched with group
22923  names (it's easiest to customize this variable with  names (it's easiest to customize this variable with @kbd{M-x
22924  @code{customize-variable gnus-ham-process-destinations}).  Each  customize-variable @key{RET} gnus-ham-process-destinations}).  Each
22925  newsgroup specification has the format (REGEXP PROCESSOR) in a  group name list is a standard Lisp list, if you prefer to customize
22926  standard Lisp list, if you prefer to customize the variable manually.  the variable manually.  If the @code{ham-process-destination}
22927  The ultimate location is a group name or names.  If the  parameter is not set, ham articles are left in place.  If the
 @code{ham-process-destination} parameter is not set, ham articles are  
 left in place.  If the  
22928  @code{spam-mark-ham-unread-before-move-from-spam-group} parameter is  @code{spam-mark-ham-unread-before-move-from-spam-group} parameter is
22929  set, the ham articles are marked as unread before being moved.    set, the ham articles are marked as unread before being moved.
22930    
22931  If ham can not be moved - because of a read-only backend such as NNTP,  If ham can not be moved---because of a read-only backend such as
22932  for example, it will be copied.  @acronym{NNTP}, for example, it will be copied.
22933    
22934  Note that you can use multiples destinations per group or regular  Note that you can use multiples destinations per group or regular
22935  expression!  This enables you to send your ham to a regular mail  expression!  This enables you to send your ham to a regular mail
# Line 22944  When you leave a @emph{ham} or @emph{unc Line 22957  When you leave a @emph{ham} or @emph{unc
22957  the @code{spam-process-destination} group parameter or a match in the  the @code{spam-process-destination} group parameter or a match in the
22958  @code{gnus-spam-process-destinations} variable, which is a list of  @code{gnus-spam-process-destinations} variable, which is a list of
22959  regular expressions matched with group names (it's easiest to  regular expressions matched with group names (it's easiest to
22960  customize this variable with @code{customize-variable  customize this variable with @kbd{M-x customize-variable @key{RET}
22961  gnus-spam-process-destinations}).  Each newsgroup specification has  gnus-spam-process-destinations}).  Each group name list is a standard
22962  the repeated format (REGEXP GROUP) and they are all in a standard Lisp  Lisp list, if you prefer to customize the variable manually.  If the
 list, if you prefer to customize the variable manually.  The ultimate  
 location is a group name or names.  If the  
22963  @code{spam-process-destination} parameter is not set, the spam  @code{spam-process-destination} parameter is not set, the spam
22964  articles are only expired.  The group name is fully qualified, meaning  articles are only expired.  The group name is fully qualified, meaning
22965  that if you see @samp{nntp:servername} before the group name in the  that if you see @samp{nntp:servername} before the group name in the
22966  group buffer then you need it here as well.    group buffer then you need it here as well.
22967    
22968  If spam can not be moved - because of a read-only backend such as NNTP,  If spam can not be moved---because of a read-only backend such as
22969  for example, it will be copied.  @acronym{NNTP}, for example, it will be copied.
22970    
22971  Note that you can use multiples destinations per group or regular  Note that you can use multiples destinations per group or regular
22972  expression!  This enables you to send your spam to multiple @emph{spam  expression!  This enables you to send your spam to multiple @emph{spam
# Line 22971  entries, this won't work as well as it d Line 22982  entries, this won't work as well as it d
22982    
22983  @vindex spam-mark-only-unseen-as-spam  @vindex spam-mark-only-unseen-as-spam
22984  Set this variable if you want only unseen articles in spam groups to  Set this variable if you want only unseen articles in spam groups to
22985  be marked as spam.  By default, it is set.  If you set it to nil,  be marked as spam.  By default, it is set.  If you set it to
22986  unread articles will also be marked as spam.  @code{nil}, unread articles will also be marked as spam.
22987    
22988  @vindex spam-mark-ham-unread-before-move-from-spam-group  @vindex spam-mark-ham-unread-before-move-from-spam-group
22989  Set this variable if you want ham to be unmarked before it is moved  Set this variable if you want ham to be unmarked before it is moved
22990  out of the spam group.  This is very useful when you use something  out of the spam group.  This is very useful when you use something
22991  like the tick mark @samp{!} to mark ham - the article will be placed  like the tick mark @samp{!} to mark ham---the article will be placed
22992  in your ham-process-destination, unmarked as if it came fresh from  in your @code{ham-process-destination}, unmarked as if it came fresh
22993  the mail server.  from the mail server.
22994    
22995  @vindex spam-autodetect-recheck-messages  @vindex spam-autodetect-recheck-messages
22996  When autodetecting spam, this variable tells @code{spam.el} whether  When autodetecting spam, this variable tells @code{spam.el} whether
# Line 22997  spam.  It is recommended that you leave Line 23008  spam.  It is recommended that you leave
23008    
23009  From Ted Zlatanov <tzz@@lifelogs.com>.  From Ted Zlatanov <tzz@@lifelogs.com>.
23010  @example  @example
23011    ;; @r{for @code{gnus-registry-split-fancy-with-parent} and spam autodetection}
23012  ;; for gnus-registry-split-fancy-with-parent and spam autodetection  ;; @r{see @file{gnus-registry.el} for more information}
 ;; see gnus-registry.el for more information  
23013  (gnus-registry-initialize)  (gnus-registry-initialize)
23014  (spam-initialize)  (spam-initialize)
23015    
23016  ;; I like control-S for marking spam  ;; @r{I like @kbd{C-s} for marking spam}
23017  (define-key gnus-summary-mode-map "\C-s" 'gnus-summary-mark-as-spam)  (define-key gnus-summary-mode-map "\C-s" 'gnus-summary-mark-as-spam)
23018    
23019  (setq  (setq
23020   spam-log-to-registry t ;; for spam autodetection   spam-log-to-registry t     ; @r{for spam autodetection}
23021   spam-use-BBDB t   spam-use-BBDB t
23022   spam-use-regex-headers t               ; catch X-Spam-Flag (SpamAssassin)   spam-use-regex-headers t   ; @r{catch X-Spam-Flag (SpamAssassin)}
23023   ;; all groups with "spam" in the name contain spam   ;; @r{all groups with @samp{spam} in the name contain spam}
23024   gnus-spam-newsgroup-contents '(("spam" gnus-group-spam-classification-spam))   gnus-spam-newsgroup-contents
23025   ;; see documentation for these    '(("spam" gnus-group-spam-classification-spam))
23026     ;; @r{see documentation for these}
23027   spam-move-spam-nonspam-groups-only nil   spam-move-spam-nonspam-groups-only nil
23028   spam-mark-only-unseen-as-spam t   spam-mark-only-unseen-as-spam t
23029   spam-mark-ham-unread-before-move-from-spam-group t   spam-mark-ham-unread-before-move-from-spam-group t
23030   nnimap-split-rule 'nnimap-split-fancy   nnimap-split-rule 'nnimap-split-fancy
23031   ;; understand what this does before you copy it to your own setup!   ;; @r{understand what this does before you copy it to your own setup!}
23032   nnimap-split-fancy '(|   nnimap-split-fancy '(|
23033                        ;; trace references to parents and put in their group                        ;; @r{trace references to parents and put in their group}
23034                        (: gnus-registry-split-fancy-with-parent)                        (: gnus-registry-split-fancy-with-parent)
23035                        ;; this will catch server-side SpamAssassin tags                        ;; @r{this will catch server-side SpamAssassin tags}
23036                        (: spam-split 'spam-use-regex-headers)                        (: spam-split 'spam-use-regex-headers)
23037                        (any "ding" "ding")                        (any "ding" "ding")
23038                        ;; note that spam by default will go to "spam"                        ;; @r{note that spam by default will go to @samp{spam}}
23039                        (: spam-split)                        (: spam-split)
23040                        ;; default mailbox                        ;; @r{default mailbox}
23041                        "mail"))                        "mail"))
23042    
23043  ;; my parameters, set with `G p'  ;; @r{my parameters, set with @kbd{G p}}
23044    
23045  ;; all nnml groups, and all nnimap groups except  ;; @r{all nnml groups, and all nnimap groups except}
23046  ;; "nnimap+mail.lifelogs.com:train" and  ;; @r{@samp{nnimap+mail.lifelogs.com:train} and}
23047  ;; "nnimap+mail.lifelogs.com:spam": any spam goes to nnimap training,  ;; @r{@samp{nnimap+mail.lifelogs.com:spam}: any spam goes to nnimap training,}
23048  ;; because it must have been detected manually  ;; @r{because it must have been detected manually}
23049    
23050  ((spam-process-destination . "nnimap+mail.lifelogs.com:train"))  ((spam-process-destination . "nnimap+mail.lifelogs.com:train"))
23051    
23052  ;; all NNTP groups  ;; @r{all @acronym{NNTP} groups}
23053  ;; autodetect spam with the blacklist and ham with the BBDB  ;; @r{autodetect spam with the blacklist and ham with the BBDB}
23054  ((spam-autodetect-methods spam-use-blacklist spam-use-BBDB)  ((spam-autodetect-methods spam-use-blacklist spam-use-BBDB)
23055  ;; send all spam to the training group  ;; @r{send all spam to the training group}
23056   (spam-process-destination . "nnimap+mail.lifelogs.com:train"))   (spam-process-destination . "nnimap+mail.lifelogs.com:train"))
23057    
23058  ;; only some NNTP groups, where I want to autodetect spam  ;; @r{only some @acronym{NNTP} groups, where I want to autodetect spam}
23059  ((spam-autodetect . t))  ((spam-autodetect . t))
23060    
23061  ;; my nnimap "nnimap+mail.lifelogs.com:spam" group  ;; @r{my nnimap @samp{nnimap+mail.lifelogs.com:spam} group}
23062    
23063  ;; this is a spam group  ;; @r{this is a spam group}
23064  ((spam-contents gnus-group-spam-classification-spam)  ((spam-contents gnus-group-spam-classification-spam)
23065    
23066   ;; any spam (which happens when I enter for all unseen messages,   ;; @r{any spam (which happens when I enter for all unseen messages,}
23067   ;; because of the gnus-spam-newsgroup-contents setting above), goes to   ;; @r{because of the @code{gnus-spam-newsgroup-contents} setting above), goes to}
23068   ;; "nnimap+mail.lifelogs.com:train" unless I mark it as ham   ;; @r{@samp{nnimap+mail.lifelogs.com:train} unless I mark it as ham}
23069    
23070   (spam-process-destination "nnimap+mail.lifelogs.com:train")   (spam-process-destination "nnimap+mail.lifelogs.com:train")
23071    
23072   ;; any ham goes to my "nnimap+mail.lifelogs.com:mail" folder, but   ;; @r{any ham goes to my @samp{nnimap+mail.lifelogs.com:mail} folder, but}
23073   ;; also to my "nnimap+mail.lifelogs.com:trainham" folder for training   ;; @r{also to my @samp{nnimap+mail.lifelogs.com:trainham} folder for training}
23074    
23075   (ham-process-destination "nnimap+mail.lifelogs.com:mail"   (ham-process-destination "nnimap+mail.lifelogs.com:mail"
23076                            "nnimap+mail.lifelogs.com:trainham")                            "nnimap+mail.lifelogs.com:trainham")
23077   ;; in this group, only '!' marks are ham   ;; @r{in this group, only @samp{!} marks are ham}
23078   (ham-marks   (ham-marks
23079    (gnus-ticked-mark))    (gnus-ticked-mark))
23080   ;; remembers senders in the blacklist on the way out - this is   ;; @r{remembers senders in the blacklist on the way out---this is}
23081   ;; definitely not needed, it just makes me feel better   ;; @r{definitely not needed, it just makes me feel better}
23082   (spam-process (gnus-group-spam-exit-processor-blacklist)))   (spam-process (gnus-group-spam-exit-processor-blacklist)))
23083    
23084  ;; Later, on the IMAP server I use the "train" group for training  ;; @r{Later, on the @acronym{IMAP} server I use the @samp{train} group for training}
23085  ;; SpamAssassin to recognize spam, and the "trainham" group for  ;; @r{SpamAssassin to recognize spam, and the @samp{trainham} group fora}
23086  ;; recognizing ham - but Gnus has nothing to do with it.  ;; @r{recognizing ham---but Gnus has nothing to do with it.}
23087    
23088  @end example  @end example
23089    
23090  @subsubheading Using @file{spam.el} on an IMAP server with a statistical filter on the server  @subsubheading Using @file{spam.el} on an IMAP server with a statistical filter on the server
   
23091  From Reiner Steib <reiner.steib@@gmx.de>.  From Reiner Steib <reiner.steib@@gmx.de>.
23092    
23093  My provider has set up bogofilter (in combination with @acronym{DCC}) on  My provider has set up bogofilter (in combination with @acronym{DCC}) on
# Line 23115  Because of the @code{gnus-group-spam-cla Line 23125  Because of the @code{gnus-group-spam-cla
23125  messages are marked as spam (with @code{$}).  When I find a false  messages are marked as spam (with @code{$}).  When I find a false
23126  positive, I mark the message with some other ham mark (@code{ham-marks},  positive, I mark the message with some other ham mark (@code{ham-marks},
23127  @ref{Spam ELisp Package Global Variables}).  On group exit, those  @ref{Spam ELisp Package Global Variables}).  On group exit, those
23128  messages are copied to both groups, @samp{INBOX} (were I want to have  messages are copied to both groups, @samp{INBOX} (where I want to have
23129  the article) and @samp{training.ham} (for training bogofilter) and  the article) and @samp{training.ham} (for training bogofilter) and
23130  deleted from the @samp{spam.detected} folder.  deleted from the @samp{spam.detected} folder.
23131    
# Line 23147  groups as spam and reports the to Gmane Line 23157  groups as spam and reports the to Gmane
23157      (spam-process (gnus-group-spam-exit-processor-report-gmane)))      (spam-process (gnus-group-spam-exit-processor-report-gmane)))
23158  @end lisp  @end lisp
23159    
23160  Additionally, I use `(setq spam-report-gmane-use-article-number nil)'  Additionally, I use @code{(setq spam-report-gmane-use-article-number nil)}
23161  because I don't read the groups directly from news.gmane.org, but  because I don't read the groups directly from news.gmane.org, but
23162  through my local news server (leafnode).  I.e. the article numbers are  through my local news server (leafnode).  I.e. the article numbers are
23163  not the same as on news.gmane.org, thus @code{spam-report.el} has to check  not the same as on news.gmane.org, thus @code{spam-report.el} has to check
# Line 23702  the same way, we promise. Line 23712  the same way, we promise.
23712  Add this symbol to a group's @code{spam-process} parameter by  Add this symbol to a group's @code{spam-process} parameter by
23713  customizing the group parameter or the  customizing the group parameter or the
23714  @code{gnus-spam-process-newsgroups} variable.  When this symbol is added  @code{gnus-spam-process-newsgroups} variable.  When this symbol is added
23715  to a grup's @code{spam-process} parameter, the ham-marked articles in  to a group's @code{spam-process} parameter, the ham-marked articles in
23716  @emph{ham} groups will be sent to the SpamOracle as samples of ham  @emph{ham} groups will be sent to the SpamOracle as samples of ham
23717  messages.  Note that this ham processor has no effect in @emph{spam} or  messages.  Note that this ham processor has no effect in @emph{spam} or
23718  @emph{unclassified} groups.  @emph{unclassified} groups.
# Line 23742  incoming mail, provide the following: Line 23752  incoming mail, provide the following:
23752  @enumerate  @enumerate
23753    
23754  @item  @item
23755  code  Code
23756    
23757  @lisp  @lisp
23758  (defvar spam-use-blackbox nil  (defvar spam-use-blackbox nil
# Line 23750  code Line 23760  code
23760  @end lisp  @end lisp
23761    
23762  Add  Add
23763  @example  @lisp
23764      (spam-use-blackbox   . spam-check-blackbox)  (spam-use-blackbox   . spam-check-blackbox)
23765  @end example  @end lisp
23766  to @code{spam-list-of-checks}.  to @code{spam-list-of-checks}.
23767    
23768  Add  Add
23769  @example  @lisp
23770      (gnus-group-ham-exit-processor-blackbox     ham spam-use-blackbox)  (gnus-group-ham-exit-processor-blackbox  ham spam-use-blackbox)
23771      (gnus-group-spam-exit-processor-blackbox    spam spam-use-blackbox)  (gnus-group-spam-exit-processor-blackbox spam spam-use-blackbox)
23772  @end example  @end lisp
23773    
23774  to @code{spam-list-of-processors}.  to @code{spam-list-of-processors}.
23775    
23776  Add  Add
23777  @example  @lisp
23778      (spam-use-blackbox  spam-blackbox-register-routine  (spam-use-blackbox spam-blackbox-register-routine
23779                   nil                     nil
23780                   spam-blackbox-unregister-routine                     spam-blackbox-unregister-routine
23781                   nil)                     nil)
23782  @end example  @end lisp
23783    
23784  to @code{spam-registration-functions}.  Write the register/unregister  to @code{spam-registration-functions}.  Write the register/unregister
23785  routines using the bogofilter register/unregister routines as a  routines using the bogofilter register/unregister routines as a
23786  start, or other restister/unregister routines more appropriate to  start, or other restister/unregister routines more appropriate to
23787  Blackbox.  Blackbox.
23788    
23789  @item  @item
23790  functionality  Functionality
23791    
23792  Write the @code{spam-check-blackbox} function.  It should return  Write the @code{spam-check-blackbox} function.  It should return
23793  @samp{nil} or @code{spam-split-group}, observing the other  @samp{nil} or @code{spam-split-group}, observing the other
# Line 23794  For processing spam and ham messages, pr Line 23806  For processing spam and ham messages, pr
23806  @enumerate  @enumerate
23807    
23808  @item  @item
23809  code  Code
23810    
23811  Note you don't have to provide a spam or a ham processor.  Only  Note you don't have to provide a spam or a ham processor.  Only
23812  provide them if Blackbox supports spam or ham processing.  provide them if Blackbox supports spam or ham processing.
# Line 23819  Only applicable to non-spam (unclassifie Line 23831  Only applicable to non-spam (unclassifie
23831  Gnus parameters  Gnus parameters
23832    
23833  Add  Add
23834  @example  @lisp
23835                     (const :tag "Spam: Blackbox"   (spam spam-use-blackbox))  (const :tag "Spam: Blackbox" (spam spam-use-blackbox))
23836                     (const :tag "Ham: Blackbox"    (ham spam-use-blackbox))  (const :tag "Ham: Blackbox"  (ham spam-use-blackbox))
23837  @end example  @end lisp
23838  to the @code{spam-process} group parameter in @code{gnus.el}.  Make  to the @code{spam-process} group parameter in @code{gnus.el}.  Make
23839  sure you do it twice, once for the parameter and once for the  sure you do it twice, once for the parameter and once for the
23840  variable customization.  variable customization.
23841    
23842  Add  Add
23843  @example  @lisp
23844            (variable-item spam-use-blackbox)  (variable-item spam-use-blackbox)
23845  @end example  @end lisp
23846  to the @code{spam-autodetect-methods} group parameter in  to the @code{spam-autodetect-methods} group parameter in
23847  @code{gnus.el}.  @code{gnus.el}.
23848    

Legend:
Removed from v.1.30.2.3  
changed lines
  Added in v.1.30.2.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26