@copying
Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2001,
@copying
Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-* Starting Up:: Finding news can be a pain.
-* Group Buffer:: Selecting, subscribing and killing groups.
-* Summary Buffer:: Reading, saving and posting articles.
-* Article Buffer:: Displaying and handling articles.
-* Composing Messages:: Information on sending mail and news.
-* Select Methods:: Gnus reads all messages from various select methods.
-* Scoring:: Assigning values to articles.
-* Various:: General purpose settings.
-* The End:: Farewell and goodbye.
-* Appendices:: Terminology, Emacs intro, @acronym{FAQ}, History, Internals.
-* Index:: Variable, function and concept index.
-* Key Index:: Key Index.
+* Starting Up:: Finding news can be a pain.
+* Group Buffer:: Selecting, subscribing and killing groups.
+* Summary Buffer:: Reading, saving and posting articles.
+* Article Buffer:: Displaying and handling articles.
+* Composing Messages:: Information on sending mail and news.
+* Select Methods:: Gnus reads all messages from various select methods.
+* Scoring:: Assigning values to articles.
+* Various:: General purpose settings.
+* The End:: Farewell and goodbye.
+* Appendices:: Terminology, Emacs intro, @acronym{FAQ}, History, Internals.
+* Index:: Variable, function and concept index.
+* Key Index:: Key Index.
-* Message:(message). Composing messages.
-* Emacs-MIME:(emacs-mime). Composing messages; @acronym{MIME}-specific parts.
-* Sieve:(sieve). Managing Sieve scripts in Emacs.
-* PGG:(pgg). @acronym{PGP/MIME} with Gnus.
-* SASL:(sasl). @acronym{SASL} authentication in Emacs.
+* Message:(message). Composing messages.
+* Emacs-MIME:(emacs-mime). Composing messages; @acronym{MIME}-specific parts.
+* Sieve:(sieve). Managing Sieve scripts in Emacs.
+* PGG:(pgg). @acronym{PGP/MIME} with Gnus.
+* SASL:(sasl). @acronym{SASL} authentication in Emacs.
-* Finding the News:: Choosing a method for getting news.
-* The First Time:: What does Gnus do the first time you start it?
-* The Server is Down:: How can I read my mail then?
-* Slave Gnusae:: You can have more than one Gnus active at a time.
-* Fetching a Group:: Starting Gnus just to read a group.
-* New Groups:: What is Gnus supposed to do with new groups?
-* Changing Servers:: You may want to move from one server to another.
-* Startup Files:: Those pesky startup files---@file{.newsrc}.
-* Auto Save:: Recovering from a crash.
-* The Active File:: Reading the active file over a slow line Takes Time.
-* Startup Variables:: Other variables you might change.
+* Finding the News:: Choosing a method for getting news.
+* The First Time:: What does Gnus do the first time you start it?
+* The Server is Down:: How can I read my mail then?
+* Slave Gnusae:: You can have more than one Gnus active at a time.
+* New Groups:: What is Gnus supposed to do with new groups?
+* Changing Servers:: You may want to move from one server to another.
+* Startup Files:: Those pesky startup files---@file{.newsrc}.
+* Auto Save:: Recovering from a crash.
+* The Active File:: Reading the active file over a slow line Takes Time.
+* Startup Variables:: Other variables you might change.
If you can use a local spool, you probably should, as it will almost
certainly be much faster. But do not use the local spool if your
If you can use a local spool, you probably should, as it will almost
certainly be much faster. But do not use the local spool if your
-server is running Leafnode; in this case, use @code{(nntp "localhost")}.
+server is running Leafnode (which is a simple, standalone private news
+server); in this case, use @code{(nntp "localhost")}.
-If no startup files exist, gnus will try to determine what groups should
-be subscribed by default.
+If no startup files exist (@pxref{Startup Files}), gnus will try to
+determine what groups should be subscribed by default.
@vindex gnus-default-subscribed-newsgroups
If the variable @code{gnus-default-subscribed-newsgroups} is set, gnus
@vindex gnus-default-subscribed-newsgroups
If the variable @code{gnus-default-subscribed-newsgroups} is set, gnus
incorporated into the slave. If you answer ``no'', the slave may see some
messages as unread that have been read in the master.
incorporated into the slave. If you answer ``no'', the slave may see some
messages as unread that have been read in the master.
-@node Fetching a Group
-@section Fetching a Group
-@cindex fetching a group
-
-@findex gnus-fetch-group
-It is sometimes convenient to be able to just say ``I want to read this
-group and I don't care whether gnus has been started or not''. This is
-perhaps more useful for people who write code than for users, but the
-command @code{gnus-fetch-group} provides this functionality in any case.
-It takes the group name as a parameter.
-Now, you all know about the @file{.newsrc} file. All subscription
-information is traditionally stored in this file.
+Most common Unix news readers use a shared startup file called
+@file{.newsrc}. This file contains all the information about what
+groups are subscribed, and which articles in these groups have been
+read.
Things got a bit more complicated with @sc{gnus}. In addition to
keeping the @file{.newsrc} file updated, it also used a file called
Things got a bit more complicated with @sc{gnus}. In addition to
keeping the @file{.newsrc} file updated, it also used a file called
However, this will make it impossible to use other newsreaders than
gnus. But hey, who would want to, right? Similarly, setting
@code{gnus-read-newsrc-file} to @code{nil} makes gnus ignore the
However, this will make it impossible to use other newsreaders than
gnus. But hey, who would want to, right? Similarly, setting
@code{gnus-read-newsrc-file} to @code{nil} makes gnus ignore the
-@file{.newsrc} file and any @file{.newsrc-SERVER} files, which is
-convenient if you have a tendency to use Netscape once in a while.
+@file{.newsrc} file and any @file{.newsrc-SERVER} files, which can be
+convenient if you use a different news reader occasionally, and you
+want to read a different subset of the available groups with that
+news reader.
@vindex gnus-save-killed-list
If @code{gnus-save-killed-list} (default @code{t}) is @code{nil}, Gnus
@vindex gnus-save-killed-list
If @code{gnus-save-killed-list} (default @code{t}) is @code{nil}, Gnus
-if address \"sender\" \"sieve-admin@@extundo.com\" @{
- fileinto \"INBOX.list.sieve\";
+if address "sender" "sieve-admin@@extundo.com" @{
+ fileinto "INBOX.list.sieve";
+@}
+@end example
+
+To generate tests for multiple email-addresses use a group parameter
+like @code{(sieve address "sender" ("name@@one.org" else@@two.org"))}.
+When generating a sieve script (@pxref{Sieve Commands}) Sieve code
+like the following is generated:
+
+@example
+if address "sender" ["name@@one.org", "else@@two.org"] @{
+ fileinto "INBOX.list.sieve";
The Sieve language is described in RFC 3028. @xref{Top, Emacs Sieve,
Top, sieve, Emacs Sieve}.
The Sieve language is described in RFC 3028. @xref{Top, Emacs Sieve,
Top, sieve, Emacs Sieve}.
@findex gnus-thread-sort-by-score
@findex gnus-thread-sort-by-subject
@findex gnus-thread-sort-by-author
@findex gnus-thread-sort-by-score
@findex gnus-thread-sort-by-subject
@findex gnus-thread-sort-by-author
@findex gnus-thread-sort-by-number
@findex gnus-thread-sort-by-random
@vindex gnus-thread-sort-functions
@findex gnus-thread-sort-by-number
@findex gnus-thread-sort-by-random
@vindex gnus-thread-sort-functions
@findex gnus-summary-morse-message
Morse decode the article buffer (@code{gnus-summary-morse-message}).
@findex gnus-summary-morse-message
Morse decode the article buffer (@code{gnus-summary-morse-message}).
+@item W i
+@kindex W i (Summary)
+@findex gnus-summary-idna-message
+Decode IDNA encoded domain names in the current articles. IDNA
+encoded domain names looks like @samp{xn--bar}. If a string remain
+unencoded after running invoking this, it is likely an invalid IDNA
+string (@samp{xn--bar} is invalid). You must have GNU Libidn
+(@url{http://www.gnu.org/software/libidn/}) installed for this command
+to work.
+
@item gnus-use-idna
This variable controls whether Gnus performs IDNA decoding of
internationalized domain names inside @samp{From}, @samp{To} and
@item gnus-use-idna
This variable controls whether Gnus performs IDNA decoding of
internationalized domain names inside @samp{From}, @samp{To} and
-@samp{Cc} headers. This requires
+@samp{Cc} headers. @xref{IDNA, ,IDNA,message, The Message Manual},
+for how to compose such messages. This requires
@uref{http://www.gnu.org/software/libidn/, GNU Libidn}, and this
variable is only enabled if you have installed it.
@uref{http://www.gnu.org/software/libidn/, GNU Libidn}, and this
variable is only enabled if you have installed it.
-processed from the beginning of the alist toward the end. The first
-rule to make a match will ``win'', unless you have crossposting enabled.
-In that case, all matching rules will ``win''.) When new groups are
-created by splitting mail, you may want to run
-@code{gnus-group-find-new-groups} to see the new groups.
+processed from the beginning of the alist toward the end. The first rule
+to make a match will ``win'', unless you have crossposting enabled. In
+that case, all matching rules will ``win''.) If no rule matched, the mail
+will end up in the @samp{bogus} group. When new groups are created by
+splitting mail, you may want to run @code{gnus-group-find-new-groups} to
+see the new groups. This also applies to the @samp{bogus} group.
If you like to tinker with this yourself, you can set this variable to a
function of your choice. This function will be called without any
If you like to tinker with this yourself, you can set this variable to a
function of your choice. This function will be called without any
The mail back ends all support cross-posting. If several regexps match,
the mail will be ``cross-posted'' to all those groups.
@code{nnmail-crosspost} says whether to use this mechanism or not. Note
The mail back ends all support cross-posting. If several regexps match,
the mail will be ``cross-posted'' to all those groups.
@code{nnmail-crosspost} says whether to use this mechanism or not. Note
@acronym{RSS} has a quite regular and nice interface, and it's
possible to get the information Gnus needs to keep groups updated.
@acronym{RSS} has a quite regular and nice interface, and it's
possible to get the information Gnus needs to keep groups updated.
-Use @kbd{G R} from the summary buffer to subscribe to a feed---you
-will be prompted for the location of the feed.
+Use @kbd{G R} from the summary buffer to subscribe to a feed---you will
+be prompted for the location, the title and the description of the feed.
+The title, which allows any characters, will be used for the group name
+and the name of the group data file. The description can be omitted.
+The @code{nnrss} back end saves the group data file in
+@code{nnrss-directory} (see below) for each @code{nnrss} group. File
+names containing non-@acronym{ASCII} characters will be encoded by the
+coding system specified with the @code{nnmail-pathname-coding-system}
+variable. If it is @code{nil}, in Emacs the coding system defaults to
+the value of @code{default-file-name-coding-system}. If you are using
+XEmacs and want to use non-@acronym{ASCII} group names, you should set
+the value for the @code{nnmail-pathname-coding-system} variable properly.
+
@cindex OPML
You can also use the following commands to import and export your
subscriptions from a file in @acronym{OPML} format (Outline Processor
@cindex OPML
You can also use the following commands to import and export your
subscriptions from a file in @acronym{OPML} format (Outline Processor
+@item nnrss-file-coding-system
+@vindex nnrss-file-coding-system
+The coding system used when reading and writing the @code{nnrss} groups
+data files. The default is the value of
+@code{mm-universal-coding-system} (which defaults to @code{emacs-mule}
+in Emacs or @code{escape-quoted} in XEmacs).
+
When score files are loaded and @code{gnus-decay-scores} is
non-@code{nil}, Gnus will run the score files through the decaying
mechanism thereby lowering the scores of all non-permanent score rules.
When score files are loaded and @code{gnus-decay-scores} is
non-@code{nil}, Gnus will run the score files through the decaying
mechanism thereby lowering the scores of all non-permanent score rules.
-The decay itself if performed by the @code{gnus-decay-score-function}
-function, which is @code{gnus-decay-score} by default. Here's the
-definition of that function:
+If @code{gnus-decay-scores} is a regexp, only score files matching this
+regexp are treated. E.g. you may set it to @samp{\\.ADAPT\\'} if only
+@emph{adaptive} score files should be decayed. The decay itself if
+performed by the @code{gnus-decay-score-function} function, which is
+@code{gnus-decay-score} by default. Here's the definition of that
+function:
* Undo:: Some actions can be undone.
* Predicate Specifiers:: Specifying predicates.
* Moderation:: What to do if you're a moderator.
* Undo:: Some actions can be undone.
* Predicate Specifiers:: Specifying predicates.
* Moderation:: What to do if you're a moderator.
* Image Enhancements:: Modern versions of Emacs/XEmacs can display images.
* Fuzzy Matching:: What's the big fuzz?
* Thwarting Email Spam:: A how-to on avoiding unsolicited commercial email.
* Image Enhancements:: Modern versions of Emacs/XEmacs can display images.
* Fuzzy Matching:: What's the big fuzz?
* Thwarting Email Spam:: A how-to on avoiding unsolicited commercial email.
+@node Fetching a Group
+@section Fetching a Group
+@cindex fetching a group
+
+@findex gnus-fetch-group
+It is sometimes convenient to be able to just say ``I want to read this
+group and I don't care whether Gnus has been started or not''. This is
+perhaps more useful for people who write code than for users, but the
+command @code{gnus-fetch-group} provides this functionality in any case.
+It takes the group name as a parameter.
+
+
+@vindex gnus-picon-style
+The variable @code{gnus-picon-style} controls how picons are displayed.
+If @code{inline}, the textual representation is replaced. If
+@code{right}, picons are added right to the textual representation.
+
Make sure you read the section on the @code{spam.el} sequence of
events. See @xref{Spam ELisp Package Sequence of Events}.
Make sure you read the section on the @code{spam.el} sequence of
events. See @xref{Spam ELisp Package Sequence of Events}.
@code{spam.el} hooks. There is one exception: if you use the
@code{spam-use-stat} (@pxref{spam-stat spam filtering}) setting, you
should turn it on before @code{spam-initialize}:
@code{spam.el} hooks. There is one exception: if you use the
@code{spam-use-stat} (@pxref{spam-stat spam filtering}) setting, you
should turn it on before @code{spam-initialize}:
First, some hooks will get installed by @code{spam-initialize}. There
are some hooks for @code{spam-stat} so it can save its databases, and
First, some hooks will get installed by @code{spam-initialize}. There
are some hooks for @code{spam-stat} so it can save its databases, and
You should still have specific checks such as
@code{spam-use-regex-headers} set to @code{t}, even if you
specifically invoke @code{spam-split} with the check. The reason is
You should still have specific checks such as
@code{spam-use-regex-headers} set to @code{t}, even if you
specifically invoke @code{spam-split} with the check. The reason is
depending on what @code{spam-use-xyz} variables you have set. This
is usually not critical, though.
depending on what @code{spam-use-xyz} variables you have set. This
is usually not critical, though.
@code{spam-use-bogofilter}, the @code{X-Bogosity} header will be used.
If you use @code{spam-use-crm114}, any header that matches the CRM114
score format will be used. As long as you set the appropriate back end
@code{spam-use-bogofilter}, the @code{X-Bogosity} header will be used.
If you use @code{spam-use-crm114}, any header that matches the CRM114
score format will be used. As long as you set the appropriate back end
fine. @code{spam.el} will automatically add the right header to the
internal Gnus list of required headers.
fine. @code{spam.el} will automatically add the right header to the
internal Gnus list of required headers.
In my ham folders, I just hit @kbd{S x}
(@code{gnus-summary-mark-as-spam}) whenever I see an unrecognized spam
mail (false negative). On group exit, those messages are moved to
In my ham folders, I just hit @kbd{S x}
(@code{gnus-summary-mark-as-spam}) whenever I see an unrecognized spam
mail (false negative). On group exit, those messages are moved to
number of unread articles is called @dfn{activating the group}.
Un-activated groups are listed with @samp{*} in the group buffer.
number of unread articles is called @dfn{activating the group}.
Un-activated groups are listed with @samp{*} in the group buffer.
@item gnus-read-active-file
Set this to @code{nil}, which will inhibit Gnus from requesting the
@item gnus-read-active-file
Set this to @code{nil}, which will inhibit Gnus from requesting the
also have to set @code{gnus-check-new-newsgroups} and
@code{gnus-check-bogus-newsgroups} to @code{nil} to make sure that Gnus
doesn't suddenly decide to fetch the active file anyway.
also have to set @code{gnus-check-new-newsgroups} and
@code{gnus-check-bogus-newsgroups} to @code{nil} to make sure that Gnus
doesn't suddenly decide to fetch the active file anyway.
alterations. This comes in handy if the back end really carries all
the information (as is the case with virtual and imap groups). This
function should destructively alter the info to suit its needs, and
alterations. This comes in handy if the back end really carries all
the information (as is the case with virtual and imap groups). This
function should destructively alter the info to suit its needs, and