@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
(@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
@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}).
@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''.
@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
@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
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
@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
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
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:
@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
@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
(body "whatever.text")
@end lisp
+@item
+Be able to run `J u' from summary buffers.
+
@item
Solve the halting problem.