* Unread Articles:: Marks for unread articles.
* Read Articles:: Marks for read articles.
* Other Marks:: Marks that do not affect readedness.
-* Setting Marks::
-* Generic Marking Commands::
-* Setting Process Marks::
-
-Marking Articles
-
-* Setting Marks:: How to set and remove marks.
-* Generic Marking Commands:: How to customize the marking.
-* Setting Process Marks:: How to mark articles for later processing.
+* Setting Marks:: How to set and remove marks.
+* Generic Marking Commands:: How to customize the marking.
+* Setting Process Marks:: How to mark articles for later processing.
Threading
Image Enhancements
-* Picons:: How to display pictures of what you're reading.
-* Smileys:: Show all those happy faces the way they were meant to be shown.
* X-Face:: Display a funky, teensy black-and-white image.
+* Face:: Display a funkier, teensier colored image.
+* Smileys:: Show all those happy faces the way they were meant to be shown.
+* Picons:: How to display pictures of what you're reading.
* XVarious:: Other XEmacsy Gnusey variables.
Thwarting Email Spam
* Filtering Spam Using The Spam ELisp Package::
* Filtering Spam Using Statistics with spam-stat::
+Filtering Spam Using The Spam ELisp Package
+
+* Blacklists and Whitelists::
+* BBDB Whitelists::
+* Gmane Spam Reporting::
+* Anti-spam Hashcash Payments::
+* Blackholes::
+* Regular Expressions Header Matching::
+* Bogofilter::
+* ifile spam filtering::
+* spam-stat spam filtering::
+* SpamOracle::
+* Extending the spam elisp package::
+
+Filtering Spam Using Statistics with spam-stat
+
+* Creating a spam-stat dictionary::
+* Splitting mail using spam-stat::
+* Low-level interface to the spam-stat dictionary::
+
Appendices
* XEmacs:: Requirements for installing under XEmacs.
generated, if @code{(gcc-self . "string")} is present, this string will
be inserted literally as a @code{gcc} header. This parameter takes
precedence over any default @code{Gcc} rules as described later
-(@pxref{Archived Messages}). CAVEAT:: It yields an error putting
-@code{(gcc-self . t)} in groups of a @code{nntp} server or so, because
-a @code{nntp} server doesn't accept articles.
+(@pxref{Archived Messages}).
+
+@strong{Caveat}: It yields an error putting @code{(gcc-self . t)} in
+groups of an @code{nntp} server or so, because an @code{nntp} server
+doesn't accept articles.
@item auto-expire
@cindex auto-expire
can either be a number of days (not necessarily an integer) or the
symbols @code{never} or @code{immediate}.
+@item expiry-target
+@cindex expiry-target
+Where expired messages end up. This parameter overrides
+@code{nnmail-expiry-target}.
+
@item score-file
@cindex score file group parameter
Elements that look like @code{(score-file . "file")} will make
Sieve @samp{IF} control structure is generated, having the test as the
condition and @samp{fileinto "group.name";} as the body.
-For example, if the INBOX.list.sieve group has the @code{(sieve
+For example, if the @samp{INBOX.list.sieve} group has the @code{(sieve
address "sender" "sieve-admin@@extundo.com")} group parameter, when
translating the group parameter into a Sieve script (@pxref{Sieve
Commands}) the following Sieve code is generated:
@}
@end example
-The Sieve language is described in RFC 3028. @xref{Top, , Top, sieve,
-Emacs Sieve}.
+The Sieve language is described in RFC 3028. @xref{Top, Emacs Sieve,
+Top, sieve, Emacs Sieve}.
@item (@var{variable} @var{form})
You can use the group parameters to set variables local to the group you
Stuff}. So if you want to set @code{message-from-style} via the group
parameters, then you may need the following statement elsewhere in your
@file{~/.gnus} file:
+
@lisp
(add-to-list 'gnus-newsgroup-variables 'message-from-style)
@end lisp
@vindex gnus-list-identifiers
A use for this feature is to remove a mailing list identifier tag in
the subject fields of articles. E.g. if the news group
+
@example
nntp+news.gnus.org:gmane.text.docbook.apps
@end example
+
has the tag @samp{DOC-BOOK-APPS:} in the subject of all articles, this
tag can be removed from the article subjects in the summary buffer for
the group by putting @code{(gnus-list-identifiers "DOCBOOK-APPS:")}
@findex gnus-thread-sort-by-number
@findex gnus-thread-sort-by-random
@vindex gnus-thread-sort-functions
-@findex gnus-thread-sort-by-most-recent-thread
+@findex gnus-thread-sort-by-most-recent-number
+@findex gnus-thread-sort-by-most-recent-date
If you are using a threaded summary display, you can sort the threads by
setting @code{gnus-thread-sort-functions}, which can be either a single
function, a list of functions, or a list containing functions and
string, the match is done on the entire article. If given a prefix,
search backward instead.
-For instance, @kbd{& RET some.*string #} will put the process mark on
+For instance, @kbd{& RET some.*string RET #} will put the process mark on
all articles that have heads or bodies that match @samp{some.*string}.
@item M-&
This variable can be used to do the following:
-@itemize @bullet
-@item
-a string
+@table @asis
+@item a string
Messages will be saved in that group.
Note that you can include a select method in the group name, then the
messages are stored in @samp{nnfolder+archive:foo}, but if you use the
value @code{"nnml:foo"}, then outgoing messages will be stored in
@samp{nnml:foo}.
-@item
-a list of strings
+
+@item a list of strings
Messages will be saved in all those groups.
-@item
-an alist of regexps, functions and forms
+
+@item an alist of regexps, functions and forms
When a key ``matches'', the result is used.
-@item
-@code{nil}
+
+@item @code{nil}
No message archiving will take place. This is the default.
-@end itemize
+@end table
Let's illustrate:
@subsection Splitting in IMAP
@cindex splitting imap mail
-Splitting is something Gnus users has loved and used for years, and now
+Splitting is something Gnus users have loved and used for years, and now
the rest of the world is catching up. Yeah, dream on, not many
-@acronym{IMAP} server has server side splitting and those that have splitting
-seem to use some non-standard protocol. This means that @acronym{IMAP}
-support for Gnus has to do its own splitting.
+@acronym{IMAP} servers have server side splitting and those that have
+splitting seem to use some non-standard protocol. This means that
+@acronym{IMAP} support for Gnus has to do its own splitting.
And it does.
+(Incidentally, people seem to have been dreaming on, and Sieve has
+gaining a market share and is supported by several IMAP servers.
+Fortunately, Gnus support it too, @xref{Sieve Commands}.)
+
Here are the variables of interest:
@table @code
@cindex nnkiboze
@cindex kibozing
-@dfn{Kibozing} is defined by @acronym{oed} as ``grepping through (parts of)
-the news feed''. @code{nnkiboze} is a back end that will do this for
-you. Oh joy! Now you can grind any @acronym{NNTP} server down to a halt
-with useless requests! Oh happiness!
+@dfn{Kibozing} is defined by the @acronym{OED} as ``grepping through
+(parts of) the news feed''. @code{nnkiboze} is a back end that will
+do this for you. Oh joy! Now you can grind any @acronym{NNTP} server
+down to a halt with useless requests! Oh happiness!
@kindex G k (Group)
To create a kibozed group, use the @kbd{G k} command in the group
@vindex nnkiboze-directory
The generation of an @code{nnkiboze} group means writing two files in
-@code{nnkiboze-directory}, which is @file{~/News/} by default. One
-contains the @acronym{NOV} header lines for all the articles in the group,
-and the other is an additional @file{.newsrc} file to store information
-on what groups have been searched through to find component articles.
+@code{nnkiboze-directory}, which is @file{~/News/kiboze/} by default.
+One contains the @acronym{NOV} header lines for all the articles in
+the group, and the other is an additional @file{.newsrc} file to store
+information on what groups have been searched through to find
+component articles.
Articles marked as read in the @code{nnkiboze} group will have
their @acronym{NOV} lines removed from the @acronym{NOV} file.
@dfn{Ham} is the name used throughout @file{spam.el} to indicate
non-spam messages.
-So, what happens when you load @file{spam.el}? First of all, you get
-the following keyboard commands:
+So, what happens when you load @file{spam.el}?
+
+First of all, you @strong{must} set the variable
+@code{spam-install-hooks} to @code{t} and install the @code{spam.el} hooks:
+
+@example
+(setq spam-install-hooks t)
+(spam-install-hooks-function)
+@end example
+
+This is automatically done for you if you load @code{spam.el}
+@emph{after} one of the @code{spam-use-*} variables explained later
+are set. So you should load @code{spam.el} after you set one of the
+@code{spam-use-*} variables:
+
+@example
+(setq spam-use-bogofilter t)
+(require 'spam)
+@end example
+
+You get the following keyboard commands:
@table @kbd