* Index:: Variable, function and concept index.
* Key Index:: Key Index.
+@c Doesn't work right in html.
+@c FIXME Do this in a more standard way.
+@ifinfo
Other related manuals
* Message:(message). Composing messages.
* Sieve:(sieve). Managing Sieve scripts in Emacs.
* EasyPG:(epa). @acronym{PGP/MIME} with Gnus.
* SASL:(sasl). @acronym{SASL} authentication in Emacs.
+@end ifinfo
@detailmenu
--- The Detailed Node Listing ---
@vindex gnus-before-startup-hook
A hook called as the first thing when Gnus is started.
+@item gnus-before-resume-hook
+@vindex gnus-before-resume-hook
+A hook called as the first thing when Gnus is resumed after a suspend.
+
@item gnus-startup-hook
@vindex gnus-startup-hook
A hook run as the very last thing after starting up Gnus
unsubscribed, @code{gnus-level-zombie} to be zombies (walking dead)
(default 8) and @code{gnus-level-killed} to be killed (completely dead)
(default 9). Gnus treats subscribed and unsubscribed groups exactly the
-same, but zombie and killed groups have no information on what articles
-you have read, etc, stored. This distinction between dead and living
+same, but zombie and killed groups store no information on what articles
+you have read, etc. This distinction between dead and living
groups isn't done because it is nice or clever, it is done purely for
reasons of efficiency.
This command is similar to @code{gnus-read-ephemeral-gmane-group}, but
the group name and the article number and range are constructed from a
given @acronym{URL}. Supported @acronym{URL} formats include:
-@url{http://thread.gmane.org/gmane.foo.bar/12300/focus=12399},
-@url{http://thread.gmane.org/gmane.foo.bar/12345/},
-@url{http://article.gmane.org/gmane.foo.bar/12345/},
-@url{http://permalink.gmane.org/gmane.foo.bar/12345/}, and
-@url{http://news.gmane.org/group/gmane.foo.bar/thread=12345}.
+@indicateurl{http://thread.gmane.org/gmane.foo.bar/12300/focus=12399},
+@indicateurl{http://thread.gmane.org/gmane.foo.bar/12345/},
+@indicateurl{http://article.gmane.org/gmane.foo.bar/12345/},
+@indicateurl{http://permalink.gmane.org/gmane.foo.bar/12345/}, and
+@indicateurl{http://news.gmane.org/group/gmane.foo.bar/thread=12345}.
@item gnus-read-ephemeral-emacs-bug-group
@findex gnus-read-ephemeral-emacs-bug-group
@}
@end example
+You can also use regexp expansions in the rules:
+
+@example
+(sieve header :regex "list-id" "<c++std-\\1.accu.org>")
+@end example
+
See @pxref{Sieve Commands} for commands and variables that might be of
interest in relation to the sieve parameter.
@findex gnus-browse-describe-briefly
Describe browse mode briefly (well, there's not much to describe, is
there) (@code{gnus-browse-describe-briefly}).
+
+@item DEL
+@kindex DEL (Browse)
+@findex gnus-browse-delete-group
+This function will delete the current group
+(@code{gnus-browse-delete-group}). If given a prefix, this function
+will actually delete all the articles in the group, and forcibly
+remove the group itself from the face of the Earth. Use a prefix only
+if you are absolutely sure of what you are doing.
@end table
@node Generic Marking Commands
@subsection Generic Marking Commands
-Some people would like the command that ticks an article (@kbd{!}) go to
-the next article. Others would like it to go to the next unread
-article. Yet others would like it to stay on the current article. And
-even though I haven't heard of anybody wanting it to go to the
+Some people would like the command that ticks an article (@kbd{!}) to
+go to the next article. Others would like it to go to the next unread
+article. Yet others would like it to stay on the current article.
+And even though I haven't heard of anybody wanting it to go to the
previous (unread) article, I'm sure there are people that want that as
well.
gnus-thread-sort-by-score))
@end lisp
+By default, threads are sorted recursively, that is, first the roots,
+then all subthreads, and so on. If you feel more like sorting only
+the roots, so that inside a thread the original chronological order is
+retained, you can set @code{gnus-sort-threads-recursively} to nil.
+
@vindex gnus-thread-score-function
The function in the @code{gnus-thread-score-function} variable (default
@code{+}) is used for calculating the total score of a thread. Useful
Date: 6 weeks, 4 days, 1 hour, 3 minutes, 8 seconds ago
@end example
-This line is updated continually by default. The frequency (in
-seconds) is controlled by the @code{gnus-article-update-date-headers}
-variable.
-
-If you wish to switch updating off, say:
-
-@vindex gnus-article-update-date-headers
-@lisp
-(setq gnus-article-update-date-headers nil)
-@end lisp
-
-in your @file{~/.gnus.el} file.
+To make this line updated continually, set the
+@code{gnus-article-update-date-headers} variable to the frequency in
+seconds (the default is @code{nil}).
@item W T o
@kindex W T o (Summary)
@vindex gnus-use-cross-reference
The data on the current group will be updated (which articles you have
-read, which articles you have replied to, etc.) when you exit the
+read, which articles you have replied to, etc.)@: when you exit the
summary buffer. If the @code{gnus-use-cross-reference} variable is
@code{t} (which is the default), articles that are cross-referenced to
this group and are marked as read, will also be marked as read in the
(typep "text/x-vcard"))
@end lisp
+@item
+A function: the function is called with no arguments and should return
+@code{nil} or non-@code{nil}. The current article is available in the
+buffer named by @code{gnus-article-buffer}.
+
@end enumerate
You may have noticed that the word @dfn{part} is used here. This refers
@findex nntp-open-ssl-stream
@item nntp-open-ssl-stream
Opens a connection to a server over a @dfn{secure} channel. To use
-this you must have @uref{http://www.openssl.org, OpenSSL} or
-@uref{ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL, SSLeay} installed. You
-then define a server as follows:
+this you must have @uref{http://www.openssl.org, OpenSSL}
+@ignore
+@c Defunct URL, ancient package, so don't mention it.
+or @uref{ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL, SSLeay}
+@end ignore
+installed. You then define a server as follows:
@lisp
;; @r{"snews" is port 563 and is predefined in our @file{/etc/services}}
Port number to connect to the @acronym{NNTP} server. The default is
@samp{nntp}. If you use @acronym{NNTP} over
@acronym{TLS}/@acronym{SSL}, you may want to use integer ports rather
-than named ports (i.e, use @samp{563} instead of @samp{snews} or
+than named ports (i.e., use @samp{563} instead of @samp{snews} or
@samp{nntps}), because external @acronym{TLS}/@acronym{SSL} tools may
not work with named ports.
@item nnimap-authenticator
Some @acronym{IMAP} servers allow anonymous logins. In that case,
-this should be set to @code{anonymous}.
+this should be set to @code{anonymous}. If this variable isn't set,
+the normal login methods will be used. If you wish to specify a
+specific login method to be used, you can set this variable to either
+@code{login} (the traditional @acronym{IMAP} login method),
+@code{plain} or @code{cram-md5}.
@item nnimap-expunge
If non-@code{nil}, expunge articles after deleting them. This is always done
@table @code
@item nnimap-inbox
-This is the @acronym{IMAP} mail box that will be scanned for new mail.
+This is the @acronym{IMAP} mail box that will be scanned for new
+mail. This can also be a list of mail box names.
@item nnimap-split-methods
Uses the same syntax as @code{nnmail-split-methods} (@pxref{Splitting
@menu
* Mail Source Specifiers:: How to specify what a mail source is.
+* Mail Source Functions::
* Mail Source Customization:: Some variables that influence things.
* Fetching Mail:: Using the mail source specifiers.
@end menu
and says what authentication scheme to use. The default is
@code{password}.
+@item :leave
+Non-@code{nil} if the mail is to be left on the @acronym{POP} server
+after fetching. Mails once fetched will never be fetched again by the
+@acronym{UIDL} control. Only the built-in @code{pop3-movemail} program
+(the default) supports this keyword.
+
+If this is neither @code{nil} nor a number, all mails will be left on
+the server. If this is a number, leave mails on the server for this
+many days since you first checked new mails. If this is @code{nil}
+(the default), mails will be deleted on the server right after fetching.
+
+@vindex pop3-uidl-file
+The @code{pop3-uidl-file} variable specifies the file to which the
+@acronym{UIDL} data are locally stored. The default value is
+@file{~/.pop3-uidl}.
+
+Note that @acronym{POP} servers maintain no state information between
+sessions, so what the client believes is there and what is actually
+there may not match up. If they do not, then you may get duplicate
+mails or the whole thing can fall apart and leave you with a corrupt
+mailbox.
+
@end table
-@vindex pop3-movemail
+@findex pop3-movemail
@vindex pop3-leave-mail-on-server
If the @code{:program} and @code{:function} keywords aren't specified,
-@code{pop3-movemail} will be used. If @code{pop3-leave-mail-on-server}
-is non-@code{nil} the mail is to be left on the @acronym{POP} server
-after fetching when using @code{pop3-movemail}. Note that POP servers
-maintain no state information between sessions, so what the client
-believes is there and what is actually there may not match up. If they
-do not, then you may get duplicate mails or the whole thing can fall
-apart and leave you with a corrupt mailbox.
+@code{pop3-movemail} will be used.
Here are some examples for getting mail from a @acronym{POP} server.
+
Fetch from the default @acronym{POP} server, using the default user
name, and default fetcher:
:user "user-name" :password "secret")
@end lisp
+Leave mails on the server for 14 days:
+
+@lisp
+(pop :server "my.pop.server"
+ :user "user-name" :password "secret"
+ :leave 14)
+@end lisp
+
Use @samp{movemail} to move the mail:
@lisp
@end table
@end table
+@node Mail Source Functions
@subsubsection Function Interface
Some of the above keywords specify a Lisp function to be executed.
In this example, messages sent to @samp{debian-foo@@lists.debian.org}
will be filed in @samp{mail.debian.foo}.
-If the string contains the element @samp{\&}, then the previously
+If the string contains the element @samp{\\&}, then the previously
matched string will be substituted. Similarly, the elements @samp{\\1}
up to @samp{\\9} will be substituted with the text matched by the
groupings 1 through 9.
* Mail Spool:: Store your mail in a private spool?
* MH Spool:: An mhspool-like back end.
* Maildir:: Another one-file-per-message format.
+* nnmaildir Group Parameters::
+* Article Identification::
+* NOV Data::
+* Article Marks::
* Mail Folders:: Having one file for each group.
* Comparing Mail Back Ends:: An in-depth looks at pros and cons.
@end menu
remember to supply a @code{create-directory} server parameter.
@end table
+@node nnmaildir Group Parameters
@subsubsection Group parameters
@code{nnmaildir} uses several group parameters. It's safe to ignore
@code{read}, plus a little extra.
@end table
+@node Article Identification
@subsubsection Article identification
Articles are stored in the @file{cur/} subdirectory of each maildir.
Each article file is named like @code{uniq:info}, where @code{uniq}
available in the variable @code{nnmaildir-article-file-name} after you
request the article in the summary buffer.
+@node NOV Data
@subsubsection NOV data
An article identified by @code{uniq} has its @acronym{NOV} data (used
to generate lines in the summary buffer) stored in
assign a new article number for this article, which may cause trouble
with @code{seen} marks, the Agent, and the cache.
+@node Article Marks
@subsubsection Article marks
An article identified by @code{uniq} is considered to have the mark
@code{flag} when the file @file{.nnmaildir/marks/flag/uniq} exists.
@acronym{RSS} is a format for summarizing headlines from news related
sites (such as BBC or CNN). But basically anything list-like can be
presented as an @acronym{RSS} feed: weblogs, changelogs or recent
-changes to a wiki (e.g., @url{http://cliki.net/recent-changes.rdf}).
+changes to a wiki (e.g., @url{http://cliki.net/site/recent-changes}).
@acronym{RSS} has a quite regular and nice interface, and it's
possible to get the information Gnus needs to keep groups updated.
@subsection Agent and flags
The Agent works with any Gnus back end including those, such as
-nnimap, that store flags (read, ticked, etc) on the server. Sadly,
+nnimap, that store flags (read, ticked, etc.)@: on the server. Sadly,
the Agent does not actually know which backends keep their flags in
the backend server rather than in @file{.newsrc}. This means that the
Agent, while unplugged or disconnected, will always record all changes
whole family, eh?)
@item Head, Body, All
-These three match keys use the same match types as the @code{From} (etc)
+These three match keys use the same match types as the @code{From} (etc.)@:
header uses.
@item Followup
This, unfortunately, is a great way to discard legitimate e-mail. The
risks of blocking a whole country (Bulgaria, Norway, Nigeria, China,
-etc.) or even a continent (Asia, Africa, Europe, etc.) from contacting
+etc.)@: or even a continent (Asia, Africa, Europe, etc.)@: from contacting
you should be obvious, so don't do it if you have the choice.
In another instance, the very informative and useful RISKS digest has
@menu
* Gnus Registry Setup::
-* Fancy splitting to parent::
* Registry Article Refer Method::
+* Fancy splitting to parent::
* Store custom flags and keywords::
* Store arbitrary data::
@end menu
This adds registry saves to Gnus newsrc saves (which happen on exit
and when you press @kbd{s} from the @code{*Group*} buffer. It also
-adds registry calls to article actions in Gnus (copy, move, etc.) so
+adds registry calls to article actions in Gnus (copy, move, etc.)@: so
it's not easy to undo the initialization. See
@code{gnus-registry-initialize} for the gory details.
@defvar gnus-registry-track-extra
This is a list of symbols, so it's best to change it from the
-Customize interface. By default it's @code{(subject sender)}, which
-may work for you. It can be annoying if your mail flow is large and
-people don't stick to the same groups.
+Customize interface. By default it's @code{(subject sender recipient)},
+which may work for you. It can be annoying if your mail flow is large
+and people don't stick to the same groups.
+
+When you decide to stop tracking any of those extra data, you can use
+the command @code{gnus-registry-remove-extra-data} to purge it from
+the existing registry entries.
@end defvar
@defvar gnus-registry-split-strategy
@itemize @bullet
@item
-Emacs 21.1 and up.
+Emacs 23.1 and up.
@item
XEmacs 21.4 and up.
message cited below.
@item
-Smileys (@samp{:-)}, @samp{;-)} etc) are now displayed graphically in
+Smileys (@samp{:-)}, @samp{;-)} etc.)@: are now displayed graphically in
Emacs too.
Put @code{(setq gnus-treat-display-smileys nil)} in @file{~/.gnus.el} to
@item head
@cindex head
-The top part of a message, where administrative information (etc.) is
+The top part of a message, where administrative information (etc.)@: is
put.
@item body
@item (nnchoke-request-set-mark GROUP ACTION &optional SERVER)
Set/remove/add marks on articles. Normally Gnus handles the article
-marks (such as read, ticked, expired etc) internally, and store them in
+marks (such as read, ticked, expired etc.)@: internally, and store them in
@file{~/.newsrc.eld}. Some back ends (such as @acronym{IMAP}) however carry
all information about the articles on the server, so Gnus need to
propagate the mark information to the server.