@synindex fn cp
@synindex vr cp
@synindex pg cp
-@c @direntry
-@c * Gnus: (gnus). The newsreader Gnus.
-@c @end direntry
+@dircategory Editors
+@direntry
+* Gnus: (gnus). The newsreader Gnus.
+@end direntry
@iftex
@finalout
@end iftex
spool or your mbox file. All at the same time, if you want to push your
luck.
-This manual corresponds to Gnus 5.8.4.
+This manual corresponds to Gnus 5.8.7.
@end ifinfo
List all groups that have names or descriptions that match a regexp
(@code{gnus-group-description-apropos}).
+@item A c
+@kindex A c (Group)
+@findex gnus-group-list-cached
+List all groups with cached articles (@code{gnus-group-list-cached}).
+
+@item A ?
+@kindex A ? (Group)
+@findex gnus-group-list-dormant
+List all groups with dormant articles (@code{gnus-group-list-dormant}).
+
@end table
@vindex gnus-permanently-visible-groups
(@code{gnus-topic-copy-group}). This command uses the process/prefix
convention (@pxref{Process/Prefix}).
+@item T h
+@kindex T h (Topic)
+@findex gnus-topic-hide-topic
+Hide the current topic (@code{gnus-topic-hide-topic}). If given
+a prefix, hide the topic permanently.
+
+@item T s
+@kindex T s (Topic)
+@findex gnus-topic-show-topic
+Show the current topic (@code{gnus-topic-show-topic}). If given
+a prefix, show the topic permanently.
+
@item T D
@kindex T D (Topic)
@findex gnus-topic-remove-group
Groups matching this regexp will always be listed in the group buffer,
whether they are empty or not.
-@end table
+@item gnus-group-name-charset-method-alist
+@vindex gnus-group-name-charset-method-alist
+An alist of method and the charset for group names. It is used to show
+non-ASCII group names.
+
+For example:
+@lisp
+(setq gnus-group-name-charset-method-alist
+ '(((nntp "news.com.cn") . cn-gb-2312)))
+@end lisp
+@item gnus-group-name-charset-group-alist
+@vindex gnus-group-name-charset-group-alist
+An alist of regexp of group name and the charset for group names.
+It is used to show non-ASCII group names.
+
+For example:
+@lisp
+(setq gnus-group-name-charset-group-alist
+ '(("\\.com\\.cn:" . cn-gb-2312)))
+@end lisp
+
+@end table
@node Scanning New Messages
@subsection Scanning New Messages
@item L
Number of lines in the article.
@item c
-Number of characters in the article.
+Number of characters in the article. This specifier is not supported in some
+methods (like nnfolder).
@item I
Indentation based on thread level (@pxref{Customizing Threading}).
@item T
the process/prefix convention.
@item S o m
+@itemx C-c C-f
@kindex S o m (Summary)
+@kindex C-c C-f (Summary)
@findex gnus-summary-mail-forward
@c @icon{gnus-summary-mail-forward}
Forward the current article to some other person
-(@code{gnus-summary-mail-forward}). If given a prefix, include the full
-headers of the forwarded article.
+(@code{gnus-summary-mail-forward}). If no prefix is given, the message
+is forwarded according to the value of (@code{message-forward-as-mime})
+and (@code{message-forward-show-mml}); if the prefix is 1, decode the
+message and forward directly inline; if the prefix is 2, foward message
+as an rfc822 MIME section; if the prefix is 3, decode message and
+forward as an rfc822 MIME section; if the prefix is 4, foward message
+directly inline; otherwise, the message is forwarded as no prefix given
+but use the flipped value of (@code{message-forward-as-mime}). By
+default, the message is decoded and forwarded as an rfc822 MIME section.
@item S m
@itemx m
@kindex S o p (Summary)
@findex gnus-summary-post-forward
Forward the current article to a newsgroup
-(@code{gnus-summary-post-forward}). If given a prefix, include the full
-headers of the forwarded article.
+(@code{gnus-summary-post-forward}).
+ If no prefix is given, the message is forwarded according to the value
+of (@code{message-forward-as-mime}) and
+(@code{message-forward-show-mml}); if the prefix is 1, decode the
+message and forward directly inline; if the prefix is 2, foward message
+as an rfc822 MIME section; if the prefix is 3, decode message and
+forward as an rfc822 MIME section; if the prefix is 4, foward message
+directly inline; otherwise, the message is forwarded as no prefix given
+but use the flipped value of (@code{message-forward-as-mime}). By
+default, the message is decoded and forwarded as an rfc822 MIME section.
@item S O p
@kindex S O p (Summary)
@end table
+Also see the @kbd{&} command in @pxref{Searching for Articles} for how to
+set process marks based on article body contents.
+
@node Limiting
@section Limiting
@item T n
@kindex T n (Summary)
+@itemx M-C-n
+@kindex M-C-n (Summary)
+@itemx M-down
+@kindex M-down (Summary)
@findex gnus-summary-next-thread
Go to the next thread (@code{gnus-summary-next-thread}).
@item T p
@kindex T p (Summary)
+@itemx M-C-p
+@kindex M-C-p (Summary)
+@itemx M-up
+@kindex M-up (Summary)
@findex gnus-summary-prev-thread
Go to the previous thread (@code{gnus-summary-prev-thread}).
Non-@code{nil} means that @code{gnus-uu}, when asked to save without
decoding, will save in digests. If this variable is @code{nil},
@code{gnus-uu} will just save everything in a file without any
-embellishments. The digesting almost conforms to RFC1153---no easy way
+embellishments. The digesting almost conforms to RFC 1153---no easy way
to specify any meaningful volume and issue numbers were found, so I
simply dropped them.
@kindex W W l (Summary)
@findex gnus-article-hide-list-identifiers
@vindex gnus-list-identifiers
-Strip list identifiers specified in @code{gnus-list-identifiers}.
-These are strings some mailing list servers add to the beginning of
-all @code{Subject} headers---for example, @samp{[zebra 4711]}. Any
-leading @samp{Re: } is skipped before stripping.
+Strip list identifiers specified in @code{gnus-list-identifiers}. These
+are strings some mailing list servers add to the beginning of all
+@code{Subject} headers---for example, @samp{[zebra 4711]}. Any leading
+@samp{Re: } is skipped before stripping. @code{gnus-list-identifiers}
+may not contain @code{\\(..\\)}.
@table @code
is rumored to have employed this form of, uh, somewhat weak encryption.
@item W t
+@item t
@kindex W t (Summary)
+@kindex t (Summary)
@findex gnus-summary-toggle-header
Toggle whether to display all headers in the article buffer
(@code{gnus-summary-toggle-header}).
Gnus if the message in question has a @code{Content-Transfer-Encoding}
header that says that this encoding has been done.
+@item W 6
+@kindex W 6 (Summary)
+@findex gnus-article-de-base64-unreadable
+Treat base64 (@code{gnus-article-de-base64-unreadable}).
+Base64 is one common @sc{mime} encoding employed when sending non-ASCII
+(i. e., 8-bit) articles. Note that the this is usually done
+automatically by Gnus if the message in question has a
+@code{Content-Transfer-Encoding} header that says that this encoding has
+been done.
+
+@item W Z
+@kindex W Z (Summary)
+@findex gnus-article-decode-HZ
+Treat HZ or HZP (@code{gnus-article-decode-HZ}). HZ (or HZP) is one
+common encoding employed when sending Chinese articles. It typically
+makes strings look like @samp{~@{<:Ky2;S@{#,NpJ)l6HK!#~@}}.
+
+@item W h
+@kindex W h (Summary)
+@findex gnus-article-wash-html
+Treat HTML (@code{gnus-article-wash-html}).
+Note that the this is usually done automatically by Gnus if the message
+in question has a @code{Content-Type} header that says that this type
+has been done.
+
@item W f
@kindex W f (Summary)
@cindex x-face
sub-shell. If it is a function, this function will be called with the
face as the argument. If the @code{gnus-article-x-face-too-ugly} (which
is a regexp) matches the @code{From} header, the face will not be shown.
-The default action under Emacs is to fork off an @code{xv} to view the
-face; under XEmacs the default action is to display the face before the
+The default action under Emacs is to fork off the @code{display}
+program@footnote{@code{display} is from the ImageMagick package. For the
+@code{uncompface} and @code{icontopbm} programs look for a package
+like `compface' or `faces-xface' on a GNU/Linux system.}
+to view the face. Under XEmacs or Emacs 21+ with suitable image
+support, the default action is to display the face before the
@code{From} header. (It's nicer if XEmacs has been compiled with X-Face
support---that will make display somewhat faster. If there's no native
X-Face support, Gnus will try to convert the @code{X-Face} header using
-external programs from the @code{pbmplus} package and friends.) If you
+external programs from the @code{pbmplus} package and
+friends.@footnote{On a GNU/Linux system look for packages with names
+like @code{netpbm} or @code{libgr-progs}.}) If you
want to have this function in the display hook, it should probably come
last.
@node MIME Commands
@section @sc{mime} Commands
@cindex MIME decoding
+@cindex attachments
+@cindex viewing attachments
The following commands all understand the numerical prefix. For
instance, @kbd{3 b} means ``view the third @sc{mime} part''.
@table @kbd
@item K b
@kindex K b (Summary)
-Make all the @sc{mime} parts have buttons in from of them. This is
+Make all the @sc{mime} parts have buttons in front of them. This is
mostly useful if you wish to save (or perform other actions) on inlined
parts.
@item W M w
@kindex W M w (Summary)
-Decode RFC2047-encoded words in the article headers
+Decode RFC 2047-encoded words in the article headers
(@code{gnus-article-decode-mime-words}).
@item W M c
any other article. If this variable is @code{t}, it won't display the
article---it'll be as if it never existed.
+@vindex gnus-alter-articles-to-read-function
+@item gnus-alter-articles-to-read-function
+This function, which takes two parameters (the group name and the list
+of articles to be selected), is called to allow the user to alter the
+list of articles to be selected.
+
+For instance, the following function adds the list of cached articles to
+the list in one particular group:
+
+@lisp
+(defun my-add-cached-articles (group articles)
+ (if (string= group "some.group")
+ (append gnus-newsgroup-cached articles)
+ articles))
+@end lisp
+
@end table
@item &
@kindex & (Summary)
@findex gnus-summary-execute-command
-This command will prompt you for a header field, a regular expression to
-match on this field, and a command to be executed if the match is made
-(@code{gnus-summary-execute-command}). If given a prefix, search
-backward instead.
+This command will prompt you for a header, a regular expression to match
+on this field, and a command to be executed if the match is made
+(@code{gnus-summary-execute-command}). If the header is an empty
+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
+all articles that have heads or bodies that match @samp{some.*string}.
@item M-&
@kindex M-& (Summary)
If non-@code{nil}, add a @code{to-list} group parameter to mail groups
that have none when you do a @kbd{a}.
+@item message-send-mail-partially-limit
+@vindex message-send-mail-partially-limit
+The limitation of messages sent as message/partial.
+The lower bound of message size in characters, beyond which the message
+should be sent in several parts. If it is nil, the size is unlimited.
+
@end table
@code{organization}, @code{address}, @code{name} or @code{body}. The
attribute name can also be a string. In that case, this will be used as
a header name, and the value will be inserted in the headers of the
-article. If the attribute name is @code{eval}, the form is evaluated,
-and the result is thrown away.
+article; if the value is @code{nil}, the header name will be removed.
+If the attribute name is @code{eval}, the form is evaluated, and the
+result is thrown away.
The attribute value can be a string (used verbatim), a function with
zero arguments (the return value will be used), a variable (its value
(nnmh-get-new-mail nil))
@end lisp
+@cindex proxy
+@cindex firewall
+
If you are behind a firewall and only have access to the @sc{nntp}
server from the firewall machine, you can instruct Gnus to @code{rlogin}
on the firewall machine and telnet from there to the @sc{nntp} server.
@kindex M-x nnmail-split-history
@kindex nnmail-split-history
If you wish to see where the previous mail split put the messages, you
-can use the @kbd{M-x nnmail-split-history} command.
+can use the @kbd{M-x nnmail-split-history} command. If you wish to see
+where re-spooling messages would put the messages, you can use
+@code{gnus-summary-respool-trace} and related commands (@pxref{Mail
+Group Commands}).
Gnus gives you all the opportunity you could possibly want for shooting
yourself in the foot. Let's say you create a group that will contain
@end lisp
If the mail spool file is not located on the local machine, it's best to
-use POP or @sc{imap} or the like to fetch the mail. You can not you ange-ftp
+use POP or @sc{imap} or the like to fetch the mail. You can not use ange-ftp
file names here---it has no way to lock the mail spool while moving the
mail.
# flu@@iki.fi
MOVEMAIL=/usr/lib/emacs/20.3/i386-redhat-linux/movemail
-TMP=~/Mail/tmp
+TMP=$HOME/Mail/tmp
rm -f $TMP; $MOVEMAIL $MAIL $TMP >/dev/null && cat $TMP
@end example
@item directory
Get mail from several files in a directory. This is typically used when
-you have procmail split the incoming mail into several files.
+you have procmail split the incoming mail into several files. Setting
+@code{nnmail-scan-directory-mail-source-once} to non-nil force Gnus to
+scan the mail source only once.
Keywords:
@code{MAILHOST} environment variable.
@item :port
-The port number of the POP server. The default is @samp{pop3}.
+The port number of the POP server. This can be a number (eg,
+@samp{:port 1234}) or a string (eg, @samp{:port "pop3"}). If it is a
+string, it should be a service name as listed in @file{/etc/services} on
+Unix systems. The default is @samp{"pop3"}.
@item :user
The user name to give to the POP server. The default is the login
@table @code
@item :path
The path of the directory where the mails are stored. The default is
-@samp{~/Maildir/new}.
+taken from the @code{MAILDIR} environment variable or
+@samp{~/Maildir/}.
+@item :subdirs
+The subdirectories of the Maildir. The default is
+@samp{("new" "cur")}.
-If you sometimes look at your mail through a pop3 daemon before fetching
-them with Gnus, you may also have to fetch your mails from the
-@code{cur} directory inside the maildir, like in the first example
-below.
+@c If you sometimes look at your mail through a pop3 daemon before fetching
+@c them with Gnus, you may also have to fetch your mails from the
+@c @code{cur} directory inside the maildir, like in the first example
+@c below.
You can also get mails from remote hosts (because maildirs don't suffer
from locking problems).
Two example maildir mail sources:
@lisp
-(maildir :path "/home/user-name/Maildir/cur")
+(maildir :path "/home/user-name/Maildir/" :subdirs ("cur" "new"))
@end lisp
@lisp
-(maildir :path "/user@@remotehost.org:~/Maildir/new")
+(maildir :path "/user@@remotehost.org:~/Maildir/" :subdirs ("new"))
@end lisp
@item imap
symbols in @code{imap-stream-alist}. Right now, this means
@samp{kerberos4}, @samp{ssl} or the default @samp{network}.
-@item :authenticator
+@item :authentication
Which authenticator to use for authenticating to the server, this is one
of the symbols in @code{imap-authenticator-alist}. Right now, this
means @samp{kerberos4}, @samp{cram-md5}, @samp{anonymous} or the default
sometimes peek in your mailbox with a @sc{imap} client and mark some
articles as read (or; SEEN) you might want to set this to @samp{nil}.
Then all articles in the mailbox is fetched, no matter what. For a
-complete list of predicates, see RFC2060 §6.4.4.
+complete list of predicates, see RFC 2060 §6.4.4.
@item :fetchflag
How to flag fetched articles on the server, the default @samp{Deleted}
will mark them as deleted, an alternative would be @samp{Seen} which
would simply mark them as read. These are the two most likely choices,
-but more flags are defined in RFC2060 §2.3.2.
+but more flags are defined in RFC 2060 §2.3.2.
@item :dontexpunge
If non-nil, don't remove all articles marked as deleted in the mailbox
@end lisp
@item webmail
-Get mail from a webmail server, such as www.hotmail.com,
-mail.yahoo.com, www.netaddress.com and www.my-deja.com.
+Get mail from a webmail server, such as www.hotmail.com,
+webmail.netscape.com, www.netaddress.com, www.my-deja.com.
+
+NOTE: Now mail.yahoo.com provides POP3 service, so @sc{pop} mail source
+is suggested.
-NOTE: Webmail largely depends on w3 (url) package, whose version of "WWW
-4.0pre.46 1999/10/01" or previous ones may not work.
+NOTE: Webmail largely depends cookies. A "one-line-cookie" patch is
+required for url "4.0pre.46".
WARNING: Mails may lost. NO WARRANTY.
@table @code
@item :subtype
The type of the webmail server. The default is @code{hotmail}. The
-alternatives are @code{yahoo}, @code{netaddress}, @code{my-deja}.
+alternatives are @code{netscape}, @code{netaddress}, @code{my-deja}.
@item :user
The user name to give to the webmail server. The default is the login
An example webmail source:
@lisp
-(webmail :subtype 'yahoo :user "user-name" :password "secret")
+(webmail :subtype 'hotmail :user "user-name" :password "secret")
@end lisp
@end table
@table @code
@item :plugged
-If non-nil, fetch the mail even when Gnus is unplugged.
+If non-nil, fetch the mail even when Gnus is unplugged. If you use
+directory source to get mail, you can specify it as in this example:
+
+@lisp
+(setq mail-sources
+ '((directory :path "/home/pavel/.Spool/"
+ :suffix ""
+ :plugged t)))
+@end lisp
+
+Gnus will then fetch your mail even when you are unplugged. This is
+useful when you use local mail and news.
@end table
@end table
+@subsubheading Function Interface
+
+Some of the above keywords specify a Lisp function to be executed.
+For each keyword @code{:foo}, the Lisp variable @code{foo} is bound to
+the value of the keyword while the function is executing. For example,
+consider the following mail-source setting:
+
+@lisp
+(setq mail-sources '((pop :user "jrl"
+ :server "pophost" :function fetchfunc)))
+@end lisp
+
+While the function @code{fetchfunc} is executing, the symbol @code{user}
+is bound to @code{"jrl"}, and the symbol @code{server} is bound to
+@code{"pophost"}. The symbols @code{port}, @code{password},
+@code{program}, @code{prescript}, @code{postscript}, @code{function},
+and @code{authentication} are also bound (to their default values).
+
+See above for a list of keywords for each type of mail source.
+
+
@node Mail Source Customization
@subsubsection Mail Source Customization
@vindex nnmail-split-hook
@item nnmail-split-hook
@findex article-decode-encoded-words
-@findex RFC1522 decoding
-@findex RFC2047 decoding
+@findex RFC 1522 decoding
+@findex RFC 2047 decoding
Hook run in the buffer where the mail headers of each message is kept
just before the splitting based on these headers is done. The hook is
free to modify the buffer contents in any way it sees fit---the buffer
be called as a function with @var{args} given as arguments. The
function should return a @var{split}.
+For instance, the following function could be used to split based on the
+body of the messages:
+
+@lisp
+(defun split-on-body ()
+ (save-excursion
+ (set-buffer " *nnmail incoming*")
+ (goto-char (point-min))
+ (when (re-search-forward "Some.*string" nil t)
+ "string.group")))
+@end lisp
+
@item
@code{(! @var{func} @var{split})}: If the split is a list, and the first
element is @code{!}, then SPLIT will be processed, and FUNC will be
@vindex nnmail-expiry-target
The normal action taken when expiring articles is to delete them.
However, in some circumstances it might make more sense to move them to
-other groups instead of deleting them. The @code{nnmail-expiry-target}
+other groups instead of deleting them. The variable @code{nnmail-expiry-target}
(and the @code{expiry-target} group parameter) controls this. The
+variable supplies a default value for all groups, which can be
+overridden for specific groups by the group parameter.
default value is @code{delete}, but this can also be a string (which
should be the name of the group the message should be moved to), or a
function (which will be called in a buffer narrowed to the message in
question, and with the name of the group being moved from as its
parameter) which should return a target -- either a group name or
-@code{delete}.
+@code{delete}.
+
+Here's an example for specifying a group name:
+@lisp
+(setq nnmail-expiry-target "nnml:expired")
+@end lisp
+
@vindex nnmail-keep-last-article
If @code{nnmail-keep-last-article} is non-@code{nil}, Gnus will never
@cindex incoming mail treatment
Mailers and list servers are notorious for doing all sorts of really,
-really stupid things with mail. ``Hey, RFC822 doesn't explicitly
+really stupid things with mail. ``Hey, RFC 822 doesn't explicitly
prohibit us from adding the string @code{wE aRe ElItE!!!!!1!!} to the
end of all lines passing through our server, so let's do that!!!!1!''
-Yes, but RFC822 wasn't designed to be read by morons. Things that were
+Yes, but RFC 822 wasn't designed to be read by morons. Things that were
considered to be self-evident were not discussed. So. Here we are.
Case in point: The German version of Microsoft Exchange adds @samp{AW:
beginning of all @code{Subject} headers. I'm sure that's nice for
people who use stone age mail readers. This function will remove
strings that match the @code{nnmail-list-identifiers} regexp, which can
-also be a list of regexp.
+also be a list of regexp. @code{nnmail-list-identifiers} may not contain
+@code{\\(..\\)}.
For instance, if you want to remove the @samp{(idm)} and the
@samp{nagnagnag} identifiers:
The easiest way to get started with @code{nnwarchive} is to say
something like the following in the group buffer: @kbd{M-x
-gnus-group-make-nnwarchive-group RET an_egroup RET egroups RET
+gnus-group-make-warchive-group RET an_egroup RET egroups RET
www.egroups.com RET your@@email.address RET}. (Substitute the
@sc{an_egroup} with the mailing list you subscribed, the
@sc{your@@email.address} with your email address.), or to browse the
@vindex nnimap-server-port
Port on server to contact. Defaults to port 143, or 993 for SSL.
+Note that this should be a integer, example server specification:
+
+@lisp
+(nnimap "mail.server.com"
+ (nnimap-server-port 4711))
+@end lisp
+
@item nnimap-list-pattern
@vindex nnimap-list-pattern
String or list of strings of mailboxes to limit available groups to.
Washington server it's a directory that will be concatenated with the
mailbox.
-Example:
+Example server specification:
@lisp
-("INBOX" "Mail/*" "alt.sex.*" ("~friend/Mail/" . "list/*"))
+(nnimap "mail.server.com"
+ (nnimap-list-pattern ("INBOX" "Mail/*" "alt.sex.*"
+ ("~friend/Mail/" . "list/*"))))
@end lisp
@item nnimap-stream
of SSL. (SSL is being replaced by STARTTLS, which can be automatically
detected, but it's not widely deployed yet).
+Example server specification:
+
+@lisp
+(nnimap "mail.server.com"
+ (nnimap-stream ssl))
+@end lisp
+
+Please note that the value of @code{nnimap-stream} is a symbol!
+
@itemize @bullet
@item
@dfn{gssapi:} Connect with GSSAPI (usually kerberos 5). Require the
@dfn{ssl:} Connect through SSL. Require OpenSSL (the
program @samp{openssl}) or SSLeay (@samp{s_client}).
@item
+@dfn{shell:} Use a shell command to start IMAP connection.
+@item
@dfn{network:} Plain, TCP/IP network connection.
@end itemize
+@vindex imap-kerberos4-program
The @samp{imtest} program is shipped with Cyrus IMAPD, nnimap support
-both @samp{imtest} version 1.5.x and version 1.6.x.
+both @samp{imtest} version 1.5.x and version 1.6.x. The variable
+@code{imap-kerberos4-program} contain parameters to pass to the imtest
+program.
+@vindex imap-ssl-program
For SSL connections, the OpenSSL program is available from
@file{http://www.openssl.org/}. OpenSSL was formerly known as SSLeay,
-and nnimap support it too - altough the most recent versions of SSLeay,
-0.9.x, are known to have serious bugs making it useless. Earlier
-versions, especially 0.8.x, of SSLeay are known to work.
+and nnimap support it too - altough the most recent versions of
+SSLeay, 0.9.x, are known to have serious bugs making it
+useless. Earlier versions, especially 0.8.x, of SSLeay are known to
+work. The variable @code{imap-ssl-program} contain parameters to pass
+to OpenSSL/SSLeay.
+
+@vindex imap-shell-program
+@vindex imap-shell-host
+For IMAP connections using the @code{shell} stream, the variable
+@code{imap-shell-program} specify what program to call.
@item nnimap-authenticator
@vindex nnimap-authenticator
The authenticator used to connect to the server. By default, nnimap
will use the most secure authenticator your server is capable of.
+Example server specification:
+
+@lisp
+(nnimap "mail.server.com"
+ (nnimap-authenticator anonymous))
+@end lisp
+
+Please note that the value of @code{nnimap-authenticator} is a symbol!
+
@itemize @bullet
@item
@dfn{gssapi:} GSSAPI (usually kerberos 5) authentication. Require
@item ask
When closing mailboxes, nnimap will ask if you wish to expunge deleted
articles or not.
+
@end table
+@item nnimap-authinfo-file
+@vindex nnimap-authinfo-file
+
+A file containing credentials used to log in on servers. The format is
+(almost) the same as the @code{ftp} @file{~/.netrc} file. See the
+variable @code{nntp-authinfo-file} for exact syntax; also see
+@xref{NNTP}.
+
@end table
@menu
This variable can also have a function as its value, the function will
be called with the headers narrowed and should return a group where it
-thinks the article should be splitted to.
+thinks the article should be splitted to. See @code{nnimap-split-fancy}.
The splitting code tries to create mailboxes if it need too.
+To allow for different split rules on different virtual servers, and
+even different split rules in different inboxes on the same server,
+the syntax of this variable have been extended along the lines of:
+
+@lisp
+(setq nnimap-split-rule
+ '(("my1server" (".*" (("ding" "ding@@gnus.org")
+ ("junk" "From:.*Simon")))
+ ("my2server" ("INBOX" nnimap-split-fancy))
+ ("my[34]server" (".*" (("private" "To:.*Simon")
+ ("junk" my-junk-func)))))
+@end lisp
+
+The virtual server name is in fact a regexp, so that the same rules
+may apply to several servers. In the example, the servers
+@code{my3server} and @code{my4server} both use the same rules.
+Similarly, the inbox string is also a regexp. The actual splitting
+rules are as before, either a function, or a list with group/regexp or
+group/function elements.
+
Nnmail equivalent: @code{nnmail-split-methods}.
@item nnimap-split-predicate
@item
You then decide to see whether any new news has arrived. You connect
your machine to the net (using PPP or whatever), and then hit @kbd{J j}
-to make Gnus become @dfn{plugged}.
+to make Gnus become @dfn{plugged} and use @kbd{g} to check for new mail
+as usual. To check for new mail in unplugged mode, see (@pxref{Mail
+Source Specifiers}).
@item
You can then read the new news immediately, or you can download the news
-onto your local machine. If you want to do the latter, you press @kbd{J
+onto your local machine. If you want to do the latter, you press @kbd{g}
+to check if there are any new news and then @kbd{J
s} to fetch all the eligible articles in all the groups. (To let Gnus
know which articles you want to download, @pxref{Agent Categories}.)
@vindex gnus-shell-command-separator
String used to separate two shell commands. The default is @samp{;}.
+@item gnus-invalid-group-regexp
+@vindex gnus-invalid-group-regexp
+
+Regexp to match ``invalid'' group names when querying user for a group
+name. The default value catches some @strong{really} invalid group
+names who could possibly mess up Gnus internally (like allowing
+@samp{:} in a group name, which is normally used to delimit method and
+group).
+
+IMAP users might want to allow @samp{/} in group names though.
+
@end table
something, end with `C-c C-c', and then the thing you've written gets
to be the child of the message you're commenting.
+@item
+Handle external-body parts.
+
+@item
+When renaming a group name, nnmail-split-history does not get the group
+name renamed.
+
+@item
+Allow mail splitting on bodies when using advanced mail splitting.
+
+@lisp
+ (body "whatever.text")
+@end lisp
+
+@item
+Be able to run `J u' from summary buffers.
+
@item
Solve the halting problem.
@item digest
@cindex digest
A collection of messages in one file. The most common digest format is
-specified by RFC1153.
+specified by RFC 1153.
@end table
just shamelessly @emph{stole} the entire thing, and one would be right.
@dfn{Header} is a severely overloaded term. ``Header'' is used in
-RFC1036 to talk about lines in the head of an article (e.g.,
+RFC 1036 to talk about lines in the head of an article (e.g.,
@code{From}). It is used by many people as a synonym for
``head''---``the header and the body''. (That should be avoided, in my
opinion.) And Gnus uses a format internally that it calls ``header'',