* Agent Basics:: How it all is supposed to work.
* Agent Categories:: How to tell the Gnus Agent what to download.
* Agent Commands:: New commands for all the buffers.
+* Agent as Cache:: The Agent is a big cache too.
* Agent Expiry:: How to make old articles go away.
* Agent and IMAP:: How to use the Agent with IMAP.
* Outgoing Messages:: What happens when you post/mail something?
@end table
This variable can also be a function. In that case, that function
-will be called to place point on a subject line.
+will be called to place point on a subject line.
If you want to prevent automatic selection in some group (say, in a
binary group with Huge articles) you can set the
(@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 artciles.
-
+
@item auto-expire
@cindex auto-expire
If the group parameter has an element that looks like @code{(auto-expire
@item subscribe-level
When subscribing new groups by topic (see the @code{subscribe} parameter),
-the group will be subscribed with the level specified in the
+the group will be subscribed with the level specified in the
@code{subscribe-level} instead of @code{gnus-level-default-subscribed}.
@end table
If fetching from the first site is unsuccessful, gnus will attempt to go
through @code{gnus-group-faq-directory} and try to open them one by one.
+@item H c
+@kindex H c (Group)
+@findex gnus-group-fetch-charter
+@vindex gnus-group-charter-alist
+@cindex charter
+Try to open the charter for the current group in a web browser
+(@code{gnus-group-fetch-charter}). Gnus will use
+@code{gnus-group-charter-alist} to find the location of the charter.
+If no location is known, Gnus will fetch the control messages for the
+group, which in some cases includes the charter.
+
+@item H C
+@kindex H C (Group)
+@findex gnus-group-fetch-control
+@vindex gnus-group-fetch-control-use-browse-url
+@cindex control message
+Fetch the control messages for the group from the archive at
+@code{ftp.isc.org} (@code{gnus-group-fetch-control}).
+
+If @code{gnus-group-fetch-control-use-browse-url} is non-nil, Gnus
+will open the control messages in a browser using @code{browse-url}.
+Otherwise they are fetched using @code{ange-ftp} and displayed in an
+ephemeral group.
+
+Note that the control messages are compressed. To use this command
+you need to turn on @code{auto-compression-mode}
+(@pxref{(emacs)Compressed Files}).
+
@item H d
@itemx C-c C-d
@c @icon{gnus-group-describe-group}
If you would like greater control of the time format, you can use a
user-defined format spec. Something like the following should do the
-trick:
+trick:
@lisp
(setq gnus-group-line-format
(format-time-string "%b %d %H:%M" time)
"")))
@end lisp
-
+
@node File Commands
@subsection File Commands
original message (@code{gnus-summary-very-wide-reply-with-original}). This
command uses the process/prefix convention.
+@item S B r
+@kindex S B r (Summary)
+@findex gnus-summary-reply-broken-reply-to
+Mail a reply to the author of the current article but ignore the
+@code{Reply-To} field (@code{gnus-summary-reply-broken-reply-to}).
+
+@item S B R
+@kindex S B R (Summary)
+@findex gnus-summary-reply-broken-reply-to-with-original
+Mail a reply to the author of the current article and include the
+original message but ignore the @code{Reply-To} field
+(@code{gnus-summary-reply-broken-reply-to-with-original}).
+
@item S o m
@itemx C-c C-f
@kindex S o m (Summary)
@findex gnus-uu-mark-region
Mark articles in region (@code{gnus-uu-mark-region}).
+@item M P g
+@kindex M P g
+@findex gnus-uu-unmark-region
+Unmark articles in region (@code{gnus-uu-unmark-region}).
+
@item M P t
@kindex M P t (Summary)
@findex gnus-uu-mark-thread
@vindex gnus-article-wash-function
The default is to use the function specified by
-@code{mm-inline-text-html-renderer} (@pxref{Customization, , , emacs-mime})
+@code{mm-inline-text-html-renderer} (@pxref{Customization, , , emacs-mime})
to convert the @sc{html}, but this is controlled by the
@code{gnus-article-wash-function} variable. Pre-defined functions you
can use include:
@item W G f
@kindex W G f (Summary)
-@findex gnus-article-treat-fold-header
+@findex gnus-article-treat-fold-headers
Fold all the message headers
(@code{gnus-article-treat-fold-headers}).
@item M-t
@kindex M-t (Summary)
-@findex gnus-summary-display-buttonized
+@findex gnus-summary-toggle-display-buttonized
Toggle the buttonized display of the article buffer
(@code{gnus-summary-toggle-display-buttonized}).
@item W M w
@kindex W M w (Summary)
+@findex gnus-article-decode-mime-words
Decode RFC 2047-encoded words in the article headers
(@code{gnus-article-decode-mime-words}).
@item W M c
@kindex W M c (Summary)
+@findex gnus-article-decode-charset
Decode encoded article bodies as well as charsets
(@code{gnus-article-decode-charset}).
@item W M v
@kindex W M v (Summary)
+@findex gnus-mime-view-all-parts
View all the @sc{mime} parts in the current article
(@code{gnus-mime-view-all-parts}).
Thank you for asking. I hate you.
-It can be quite complicated.
+It can be quite complicated.
@vindex gnus-post-method
When posting news, Message usually invokes @code{message-send-news}
smtpmail-default-smtp-server "YOUR SMTP HOST")
@end lisp
+To the thing similar to this, there is @code{message-smtpmail-send-it}.
+It is useful if your ISP requires the POP-before-SMTP authentication.
+See the documentation for the function @code{mail-source-touch-pop}.
+
Other possible choises for @code{message-send-mail-function} includes
@code{message-send-mail-with-mh}, @code{message-send-mail-with-qmail},
and @code{feedmail-send-it}.
;; Type `C-c C-c' after you've finished editing.
;;
;; "snews" is port 563 and is predefined in our /etc/services
+;; however, openssl s_client -port doesn't like named ports
;;
(nntp "snews.bar.com"
(nntp-open-connection-function nntp-open-ssl-stream)
- (nntp-port-number "snews")
+ (nntp-port-number 563)
(nntp-address "snews.bar.com"))
@end lisp
@item nntp-port-number
@vindex nntp-port-number
Port number to connect to the @sc{nntp} server. The default is @samp{nntp}.
+If you use @sc{nntp} over @sc{ssl}, you may want to use integer ports rather
+than named ports (i.e, use @samp{563} instead of @samp{snews}), because
+external SSL tools may not work with named ports.
@item nntp-end-of-line
@vindex nntp-end-of-line
@table @code
@item :path
The path of the file. Defaults to the value of the @code{MAIL}
-environment variable or @file{/usr/mail/spool/user-name}.
+environment variable or the value of @code{rmail-spool-directory}
+(usually something like @file{/usr/mail/spool/user-name}).
@end table
An example file mail source:
group @code{foo.bar}. (You can change the suffix to be used instead
of @code{.spool}.) Setting
@code{nnmail-scan-directory-mail-source-once} to non-nil forces Gnus
-to scan the mail source only once. This is particularly useful if you
+to scan the mail source only once. This is particularly useful if you
want to scan mail groups at a specified level.
+There is also the variable @code{nnmail-resplit-incoming}, if you set
+that to a non-nil value, then the normal splitting process is applied
+to all the files from the directory.
+
Keywords:
@table @code
@code{nnvirtual} groups do not inherit anything but articles and marks
from component groups---group parameters, for instance, are not
-inherited.
+inherited.
@node Kibozed Groups
functionality up to the newsreader makes sense if you're the only person
reading news on a machine.
-Using Gnus as an ``offline'' newsreader is quite simple.
-
-@itemize @bullet
-@item
-First, set up Gnus as you would do if you were running it on a machine
-that has full connection to the net. Go ahead. I'll still be waiting
-here.
-
-@item
-Then, put the following magical incantation in your @file{.gnus.el}
-file:
-
-@lisp
-(setq gnus-agent t)
-@end lisp
-@end itemize
-
-That's it. Gnus is now an ``offline'' newsreader.
+Setting up Gnus as an ``offline'' newsreader is quite simple. In
+fact, you don't even have to configure anything.
Of course, to use it as such, you have to learn a few new commands.
* Agent Basics:: How it all is supposed to work.
* Agent Categories:: How to tell the Gnus Agent what to download.
* Agent Commands:: New commands for all the buffers.
+* Agent as Cache:: The Agent is a big cache too.
* Agent Expiry:: How to make old articles go away.
* Agent and IMAP:: How to use the Agent with IMAP.
* Outgoing Messages:: What happens when you post/mail something?
Decide which servers should be covered by the Agent. If you have a mail
back end, it would probably be nonsensical to have it covered by the
Agent. Go to the server buffer (@kbd{^} in the group buffer) and press
-@kbd{J a} the server (or servers) that you wish to have covered by the
-Agent (@pxref{Server Agent Commands}). This will typically be only the
-primary select method, which is listed on the bottom in the buffer.
+@kbd{J a} on the server (or servers) that you wish to have covered by the
+Agent (@pxref{Server Agent Commands}), or @kbd{J r} on automatically
+added servers you do not wish to have covered by the Agent. By default,
+all @code{nntp} and @code{nnimap} groups in @code{gnus-select-method} and
+@code{gnus-secondary-select-methods} are agentized.
@item
Decide on download policy. @xref{Agent Categories}.
or you could append your predicate to the predefined
@code{gnus-category-predicate-alist} in your @file{~/.gnus.el} or
-wherever.
+wherever.
@lisp
(require 'gnus-agent)
@end table
+@node Agent as Cache
+@subsection Agent as Cache
+
+When Gnus is plugged, it is not efficient to download headers or
+articles from the server again, if they are already stored in the
+Agent. So, Gnus normally only downloads headers once, and stores them
+in the Agent. These headers are later used when generating the summary
+buffer, regardless of whether you are plugged or unplugged. Articles
+are not cached in the Agent by default though (that would potentially
+consume lots of disk space), but if you have already downloaded an
+article into the Agent, Gnus will not download the article from the
+server again but use the locally stored copy instead.
+
+This behaviour can be controlled by @code{gnus-agent-cache}
+(@pxref{Agent Variables}).
+
@node Agent Expiry
@subsection Agent Expiry
case for nntp. Thus Gnus need to remember flag changes when
disconnected, and synchronize these flags when you plug back in.
-Gnus keep track of flag changes when reading nnimap groups under the
-Agent by default. When you plug back in, by default Gnus will check if
-you have any changed any flags and ask if you wish to synchronize these
-with the server. This behavior is customizable with
-@code{gnus-agent-synchronize-flags}.
+Gnus keeps track of flag changes when reading nnimap groups under the
+Agent. When you plug back in, Gnus will check if you have any changed
+any flags and ask if you wish to synchronize these with the server.
+The behavior is customizable by @code{gnus-agent-synchronize-flags}.
@vindex gnus-agent-synchronize-flags
If @code{gnus-agent-synchronize-flags} is @code{nil}, the Agent will
-never automatically synchronize flags. If it is @code{ask}, the
-default, the Agent will check if you made any changes and if so ask if
-you wish to synchronize these when you re-connect. If it has any other
-value, all flags will be synchronized automatically.
+never automatically synchronize flags. If it is @code{ask}, which is
+the default, the Agent will check if you made any changes and if so
+ask if you wish to synchronize these when you re-connect. If it has
+any other value, all flags will be synchronized automatically.
-If you do not wish to automatically synchronize flags when you
-re-connect, this can be done manually with the
+If you do not wish to synchronize flags automatically when you
+re-connect, you can do it manually with the
@code{gnus-agent-synchronize-flags} command that is bound to @kbd{J Y}
-in the group buffer by default.
+in the group buffer.
Some things are currently not implemented in the Agent that you'd might
expect from a disconnected @sc{imap} client, including:
@subsection Outgoing Messages
When Gnus is unplugged, all outgoing messages (both mail and news) are
-stored in the draft groups (@pxref{Drafts}). You can view them there
-after posting, and edit them at will.
+stored in the draft group ``queue'' (@pxref{Drafts}). You can view
+them there after posting, and edit them at will.
When Gnus is plugged again, you can send the messages either from the
draft group with the special commands available there, or you can use
@item gnus-agent-cache
@vindex gnus-agent-cache
-Variable to control whether use the locally stored @sc{nov} and articles when
-plugged.
+Variable to control whether use the locally stored @sc{nov} and
+articles when plugged, e.g. essentially using the Agent as a cache.
+The default is non-nil, which means to use the Agent as a cache.
@item gnus-agent-go-online
@vindex gnus-agent-go-online
;;; Make Gnus into an offline newsreader.
;;; (gnus-agentize) ; The obsolete setting.
-(setq gnus-agent t)
+;;; (setq gnus-agent t) ; Now the default.
@end lisp
That should be it, basically. Put that in your @file{~/.gnus.el} file,
Internally, Gnus calls @code{gnus-make-predicate} on these specifiers
to create a function that can be called. This input parameter to this
function will be passed along to all the functions in the predicate
-specifier.
+specifier.
@node Moderation
(setq mail-sources
'((file :prescript "formail -bs spamassassin < /var/mail/%u")
(pop :user "jrl"
- :server "pophost"
+ :server "pophost"
:postscript "mv %t /tmp/foo; formail -bs spamc < /tmp/foo > %t")))
@end lisp