*** empty log message ***
[gnus] / texi / message.texi
index 7e932e7..75949c2 100644 (file)
@@ -1,10 +1,13 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename message
-@settitle Message 5.4.31 Manual
+@settitle Message 0.33 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
+@c @direntry
+@c * Message: (message).   Mail and news composition mode that goes with Gnus.
+@c @end direntry
 @iftex
 @finalout
 @end iftex
@@ -39,7 +42,7 @@ into another language, under the above conditions for modified versions.
 @tex
 
 @titlepage
-@title Message 5.4.31 Manual
+@title Message 0.33 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
@@ -67,19 +70,20 @@ into another language, under the above conditions for modified versions.
 @node Top
 @top Message
 
-All message composition (both mail and news) takes place in Message mode
-buffers.
+All message composition from Gnus (both mail and news) takes place in
+Message mode buffers.
 
 @menu
 * Interface::         Setting up message buffers.
 * Commands::          Commands you can execute in message mode buffers.
 * Variables::         Customizing the message buffers.
 * Compatibility::     Making Message backwards compatible.
+* Appendices::        More technical things.
 * Index::             Variable, function and concept index.
 * Key Index::         List of Message mode keys.
 @end menu
 
-This manual corresponds to Message 5.4.31.  Message is distributed with
+This manual corresponds to Message 0.33.  Message is distributed with
 the Gnus distribution bearing the same version number as this manual
 has. 
 
@@ -116,7 +120,7 @@ The @code{message-mail} command pops up a new message buffer.
 
 Two optional parameters are accepted: The first will be used as the
 @code{To} header and the second as the @code{Subject} header.  If these
-aren't present, those two headers will be empty.
+are @code{nil}, those two headers will be empty.
 
 
 @node New News Message
@@ -127,7 +131,7 @@ The @code{message-news} command pops up a new message buffer.
 
 This function accepts two optional parameters.  The first will be used
 as the @code{Newsgroups} header and the second as the @code{Subject}
-header.  If these aren't present, those two headers will be empty.
+header.  If these are @code{nil}, those two headers will be empty.
 
 
 @node Reply
@@ -138,9 +142,9 @@ The @code{message-reply} function pops up a message buffer that's a
 reply to the message in the current buffer.
 
 @vindex message-reply-to-function
-Message uses the normal methods to determine where replies are to go,
-but you can change the behavior to suit your needs by fiddling with the
-@code{message-reply-to-function} variable.
+Message uses the normal methods to determine where replies are to go
+(@pxref{Responses}), but you can change the behavior to suit your needs
+by fiddling with the @code{message-reply-to-function} variable.
 
 If you want the replies to go to the @code{Sender} instead of the
 @code{From}, you could do something like this:
@@ -176,7 +180,7 @@ the head of the outgoing mail.
 The @code{message-wide-reply} pops up a message buffer that's a wide
 reply to the message in the current buffer.  A @dfn{wide reply} is a
 reply that goes out to all people listed in the @code{To}, @code{From}
-and @code{Cc} headers.
+(or @code{Reply-to}) and @code{Cc} headers.
 
 @vindex message-wide-reply-to-function
 Message uses the normal methods to determine where wide replies are to go,
@@ -229,7 +233,7 @@ supersede the message in the current buffer.
 Headers matching the @code{message-ignored-supersedes-headers} are
 removed before popping up the new message buffer.  The default is@*
 @samp{^Path:\\|^Date\\|^NNTP-Posting-Host:\\|^Xref:\\|^Lines:\\|@*
-^Received:\\|^X-From-Line:\\|Return-Path:}.
+^Received:\\|^X-From-Line:\\|Return-Path:\\|^Supersedes:}.
 
 
 
@@ -292,7 +296,7 @@ undeliverable.
 @vindex message-ignored-bounced-headers
 Headers that match the @code{message-ignored-bounced-headers} regexp
 will be removed before popping up the buffer.  The default is
-@samp{^Received:}. 
+@samp{^\\(Received\\|Return-Path\\):}.
 
 
 @node Commands
@@ -411,7 +415,12 @@ Yank the message that's being replied to into the message buffer
 @item C-c C-q
 @kindex C-c C-q 
 @findex message-fill-yanked-message
-Fill the yanked message (@code{message-fill-yanked-message}). 
+Fill the yanked message (@code{message-fill-yanked-message}).  Warning:
+Can severely mess up the yanked text if its quoting conventions are
+strange.  You'll quickly get a feel for when it's safe, though.  Anyway,
+just remember that @kbd{C-x u} (@code{undo}) is available and you'll be
+all right.
+
 
 @item C-c C-w
 @kindex C-c C-w 
@@ -431,7 +440,15 @@ removed.
 @item message-citation-line-function
 @vindex message-citation-line-function
 Function called to insert the citation line.  The default is
-@code{message-insert-citation-line}. 
+@code{message-insert-citation-line}, which will lead to citation lines
+that look like:
+
+@example
+Hallvard B Furuseth <h.b.furuseth@@usit.uio.no> writes:
+@end example
+
+Point will be at the beginning of the body of the message when this
+function is called.
 
 @item message-yank-prefix
 @vindex message-yank-prefix
@@ -451,10 +468,14 @@ Number of spaces to indent yanked messages.
 @vindex message-cite-function
 @findex message-cite-original
 @findex sc-cite-original
+@findex message-cite-original-without-signature
 @cindex Supercite
 Function for citing an original message.  The default is
-@code{message-cite-original}.  You can also set it to
-@code{sc-cite-original} to use Supercite.
+@code{message-cite-original}, which simply inserts the original message
+and prepends @samp{> } to each line.
+@code{message-cite-original-without-signature} does the same, but elides
+the signature.  You can also set it to @code{sc-cite-original} to use
+Supercite.
 
 @item message-indent-citation-function
 @vindex message-indent-citation-function
@@ -478,7 +499,7 @@ The default is @samp{~/.signature}.
 
 @end table
 
-Note that RFC1036 says that a signature should be preceded by the three
+Note that RFC1036bis says that a signature should be preceded by the three
 characters @samp{-- } on a line by themselves.  This is to make it
 easier for the recipient to automatically recognize and process the
 signature.  So don't remove those characters, even though you might feel
@@ -510,6 +531,41 @@ Elide the text between point and mark (@code{message-elide-region}).
 The text is killed and an ellipsis (@samp{[...]}) will be inserted in
 its place.
 
+@item C-c C-z
+@kindex C-c C-x
+@findex message-kill-to-signature
+Kill all the text up to the signature, or if that's missing, up to the
+end of the message (@code{message-kill-to-signature}).
+
+@item C-c C-v
+@kindex C-c C-v
+@findex message-delete-not-region
+Delete all text in the body of the message that is outside the region
+(@code{message-delete-not-region}).
+
+@item M-RET
+@kindex M-RET
+@kindex message-newline-and-reformat
+Insert four newlines, and then reformat if inside quoted text.
+
+Here's an example:
+
+@example
+> This is some quoted text.  And here's more quoted text.
+@end example
+
+If point is before @samp{And} and you press @kbd{M-RET}, you'll get:
+
+@example
+> This is some quoted text.
+
+*
+
+> And here's more quoted text.
+@end example
+
+@samp{*} says where point will be placed.  
+
 @item C-c C-t
 @kindex C-c C-t 
 @findex message-insert-to
@@ -567,7 +623,12 @@ Kill the message buffer and exit (@code{message-kill-buffer}).
 @cindex mail aliases
 @cindex aliases
 
-Message uses @code{mailabbrev} to handle mail aliases.  
+@vindex message-mail-alias-type
+The @code{message-mail-alias-type} variable controls what type of mail
+alias expansion to use.  Currently only one form is supported---Message
+uses @code{mailabbrev} to handle mail aliases.  If this variable is
+@code{nil}, no mail alias expansion will be performed.
+
 @code{mailabbrev} works by parsing the @file{/etc/mailrc} and
 @file{~/.mailrc} files.  These files look like:
 
@@ -604,10 +665,11 @@ expansions have to be done explicitly.
 @node Message Headers
 @section Message Headers
 
-Message is quite aggressive on the message generation front.  It has
-to be -- it's a combined news and mail agent.  To be able to send
-combined messages, it has to generate all headers itself to ensure that
-mail and news copies of messages look sufficiently similar.
+Message is quite aggressive on the message generation front.  It has to
+be -- it's a combined news and mail agent.  To be able to send combined
+messages, it has to generate all headers itself (instead of letting the
+mail/news system do it) to ensure that mail and news copies of messages
+look sufficiently similar.
 
 @table @code
 
@@ -671,7 +733,7 @@ buffers.
 @item message-ignored-mail-headers
 @vindex message-ignored-mail-headers
 Regexp of headers to be removed before mailing.  The default is
-@samp{^Gcc:\\|^Fcc:}. 
+@samp{^[GF]cc:\\|^Resent-Fcc:}.
 
 @item message-default-mail-headers
 @vindex message-default-mail-headers
@@ -695,8 +757,9 @@ instead, set this variable to @code{message-send-mail-with-mh}.
 @vindex message-mh-deletable-headers
 Most versions of MH doesn't like being fed messages that contain the
 headers in this variable.  If this variable is non-@code{nil} (which is
-the default), these headers will be removed before mailing.  Set it to
-@code{nil} if your MH can handle these headers.
+the default), these headers will be removed before mailing when sending
+messages via MH.  Set it to @code{nil} if your MH can handle these
+headers.
 
 @end table
 
@@ -858,6 +921,9 @@ Check whether the newsgroups mentioned in the @code{Newsgroups} and
 @item valid-newsgroups
 Check whether the @code{Newsgroups} and @code{Followup-to} headers
 are valid syntactically.
+@item repeated-newsgroups
+Check whether the @code{Newsgroups} and @code{Followup-to} headers
+contains repeated group names.
 @item shorten-followup-to
 Check whether to add a @code{Followup-to} header to shorten the number
 of groups to post to.
@@ -868,7 +934,7 @@ All these conditions are checked by default.
 @item message-ignored-news-headers
 @vindex message-ignored-news-headers
 Regexp of headers to be removed before posting.  The default is@*
-@samp{^NNTP-Posting-Host:\\|^Xref:\\|^Bcc:\\|^Gcc:\\|^Fcc:}.
+@samp{^NNTP-Posting-Host:\\|^Xref:\\|^[BGF]cc:\\|^Resent-Fcc:}.
 
 @item message-default-news-headers
 @vindex message-default-news-headers
@@ -889,7 +955,8 @@ Function used to send the current buffer as news.  The default is
 
 @item message-post-method
 @vindex message-post-method
-Method used for posting a prepared news message.
+Gnusish @dfn{select method} (see the Gnus manual for details) used for
+posting a prepared news message.
 
 @end table
 
@@ -923,7 +990,8 @@ headers have been inserted but before the signature has been inserted.
 
 @item message-setup-hook
 @vindex message-setup-hook
-Hook run as the last thing when the message buffer has been initialized.
+Hook run as the last thing when the message buffer has been initialized,
+but before yanked text is inserted.
 
 @item message-header-setup-hook
 @vindex message-header-setup-hook
@@ -941,13 +1009,29 @@ you send to mailing lists, you could do something like the following:
               (gnus-group-find-parameter group 'to-list))
       (insert "Mail-Copies-To: never\n"))))
 
-(add-hook 'message-header-setup-hook 'my-message-header-setup-hook)
+(add-hook 'message-header-setup-hook
+          'my-message-header-setup-hook)
 @end lisp
 
 @item message-send-hook
 @vindex message-send-hook
 Hook run before sending messages.
 
+If you want to add certain headers before sending, you can use the
+@code{message-add-header} function in this hook.  For instance:
+@findex message-add-header
+
+@lisp
+(add-hook 'message-send-hook 'my-message-add-content)
+(defun my-message-add-content ()
+  (message-add-header
+   "Mime-Version: 1.0"
+   "Content-Type: text/plain"
+   "Content-Transfer-Encoding: 7bit"))
+@end lisp
+
+This function won't add the header if the header is already present.
+
 @item message-send-mail-hook
 @vindex message-send-mail-hook
 Hook run before sending mail messages.
@@ -964,6 +1048,35 @@ Hook run after sending messages.
 @vindex message-mode-syntax-table
 Syntax table used in message mode buffers.
 
+@item message-send-method-alist
+@vindex message-send-method-alist
+
+Alist of ways to send outgoing messages.  Each element has the form
+
+@lisp
+(TYPE PREDICATE FUNCTION)
+@end lisp
+
+@table @var
+@item type
+A symbol that names the method.
+
+@item predicate
+A function called without any parameters to determine whether the
+message is a message of type @var{type}.
+
+@item function
+A function to be called if @var{predicate} returns non-@code{nil}.
+@var{function} is called with one parameter -- the prefix.
+@end table
+
+@lisp
+((news message-news-p message-send-via-news)
+ (mail message-mail-p message-send-via-mail))
+@end lisp
+
+
+
 @end table
 
 
@@ -977,7 +1090,7 @@ Syntax table used in message mode buffers.
 @vindex message-fcc-handler-function 
 A function called to save outgoing articles.  This function will be
 called with the name of the file to store the article in. The default
-function is @code{rmail-output} which saves in Unix mailbox format.
+function is @code{message-output} which saves in Unix mailbox format.
 
 @item message-courtesy-message
 @vindex message-courtesy-message
@@ -1089,6 +1202,74 @@ This will initialize many Message variables from the values in the
 corresponding mail variables.
 
 
+@node Appendices
+@chapter Appendices
+
+@menu
+* Responses::          Standard rules for determining where responses go.
+@end menu
+
+
+@node Responses
+@section Responses
+
+To determine where a message is to go, the following algorithm is used
+by default.
+
+@table @dfn
+@item reply
+A @dfn{reply} is when you want to respond @emph{just} to the person who
+sent the message via mail.  There will only be one recipient.  To
+determine who the recipient will be, the following headers are
+consulted, in turn:
+
+@table @code
+@item Reply-To
+
+@item From
+@end table
+
+
+@item wide reply
+A @dfn{wide reply} is a mail response that includes @emph{all} entities
+mentioned in the message you are responded to.  All mailboxes from the
+following headers will be concatenated to form the outgoing
+@code{To}/@code{Cc} headers:
+
+@table @code
+@item From
+(unless there's a @code{Reply-To}, in which case that is used instead).
+
+@item Cc
+
+@item To
+@end table
+
+If a @code{Mail-Copies-To} header is present, it will also be included
+in the list of mailboxes.  If this header is @samp{never}, that means
+that the @code{From} (or @code{Reply-To}) mailbox will be suppressed.
+
+
+@item followup
+A @dfn{followup} is a response sent via news.  The following headers
+(listed in order of precedence) determine where the response is to be
+sent:
+
+@table @code
+
+@item Followup-To
+
+@item Newsgroups
+
+@end table
+
+If a @code{Mail-Copies-To} header is present, it will be used as the
+basis of the new @code{Cc} header, except if this header is
+@samp{never}.
+
+@end table
+
+
 
 @node Index
 @chapter Index