gnus-ems.el: Provide compatibility functions for gnus-set-process-plist by Katsumi...
[bpt/emacs.git] / doc / misc / message.texi
index 828af92..fb39107 100644 (file)
@@ -9,36 +9,30 @@
 This file documents Message, the Emacs message composition mode.
 
 Copyright @copyright{} 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.2 or
+under the terms of the GNU Free Documentation License, Version 1.3 or
 any later version published by the Free Software Foundation; with no
-Invariant Sections, with the Front-Cover texts being ``A GNU
-Manual'', and with the Back-Cover Texts as in (a) below.  A copy of the
-license is included in the section entitled ``GNU Free Documentation
-License'' in the Emacs manual.
-
-(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
-this GNU Manual, like GNU software.  Copies published by the Free
-Software Foundation raise funds for GNU development.''
-
-This document is part of a collection distributed under the GNU Free
-Documentation License.  If you want to distribute this document
-separately from the collection, you can do so by adding a copy of the
-license to the document, as described in section 6 of the license.
+Invariant Sections, with the Front-Cover texts being ``A GNU Manual'',
+and with the Back-Cover Texts as in (a) below.  A copy of the license
+is included in the section entitled ``GNU Free Documentation License''.
+
+(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
+modify this GNU manual.  Buying copies from the FSF supports it in
+developing GNU and promoting software freedom.''
 @end quotation
 @end copying
 
 @dircategory Emacs
 @direntry
-* Message: (message).   Mail and news composition mode that goes with Gnus.
+* Message: (message).           Mail and news composition mode that
+                                  goes with Gnus.
 @end direntry
 @iftex
 @finalout
 @end iftex
-@setchapternewpage odd
 
 @titlepage
 @title Message Manual
@@ -49,11 +43,17 @@ license to the document, as described in section 6 of the license.
 @vskip 0pt plus 1filll
 @insertcopying
 @end titlepage
-@page
+
+@summarycontents
+@contents
 
 @node Top
 @top Message
 
+@ifnottex
+@insertcopying
+@end ifnottex
+
 All message composition from Gnus (both mail and news) takes place in
 Message mode buffers.
 
@@ -71,14 +71,14 @@ Message mode buffers.
 @c Adjust ../Makefile.in if you change the following lines:
 Message is distributed with Gnus.  The Gnus distribution
 @c
-corresponding to this manual is Gnus v5.11.
+corresponding to this manual is Gnus v5.13
 
 
 @node Interface
 @chapter Interface
 
-When a program (or a person) wants to respond to a message -- reply,
-follow up, forward, cancel -- the program (or person) should just put
+When a program (or a person) wants to respond to a message---reply,
+follow up, forward, cancel---the program (or person) should just put
 point in the buffer where the message is and call the required command.
 @code{Message} will then pop up a new @code{message} mode buffer with
 appropriate headers filled out, and the user can edit the message before
@@ -179,7 +179,39 @@ but you can change the behavior to suit your needs by fiddling with the
 
 @vindex message-dont-reply-to-names
 Addresses that match the @code{message-dont-reply-to-names} regular
-expression will be removed from the @code{Cc} header.
+expression (or list of regular expressions) will be removed from the
+@code{Cc} header. A value of @code{nil} means exclude your name only.
+
+@vindex message-prune-recipient-rules
+@code{message-prune-recipient-rules} is used to prune the addresses
+used when doing a wide reply.  It's meant to be used to remove
+duplicate addresses and the like.  It's a list of lists, where the
+first element is a regexp to match the address to trigger the rule,
+and the second is a regexp that will be expanded based on the first,
+to match addresses to be pruned.
+
+It's complicated to explain, but it's easy to use.
+
+For instance, if you get an email from @samp{foo@example.org}, but
+@samp{foo@zot.example.org} is also in the @code{Cc} list, then your
+wide reply will go out to both these addresses, since they are unique.
+
+To avoid this, do something like the following:
+
+@code
+(setq message-prune-recipient-rules
+      '(("^\\([^@]+\\)@\\(.*\\)" "\\1@.*[.]\\2")))
+@end code
+
+If, for instance, you want all wide replies that involve messages from
+@samp{cvs@example.org} to go to that address, and nowhere else (i.e.,
+remove all other recipients if @samp{cvs@example.org} is in the
+recipient list:
+
+@code
+(setq message-prune-recipient-rules
+      '(("cvs@example.org" ".")))
+@end code
 
 @vindex message-wide-reply-confirm-recipients
 If @code{message-wide-reply-confirm-recipients} is non-@code{nil} you
@@ -257,7 +289,7 @@ removed before popping up the new message buffer.  The default is@*
 ^Received:\\|^X-From-Line:\\|^X-Trace:\\|^X-Complaints-To:\\|@*
 Return-Path:\\|^Supersedes:\\|^NNTP-Posting-Date:\\|^X-Trace:\\|@*
 ^X-Complaints-To:\\|^Cancel-Lock:\\|^Cancel-Key:\\|^X-Hashcash:\\|@*
-^X-Payment:}.
+^X-Payment:\\|^Approved:}.
 
 
 
@@ -551,8 +583,8 @@ in the key binding is for Originator.)
 @findex message-goto-bcc
 Go to the @code{Bcc} header (@code{message-goto-bcc}).
 
-@item C-c C-f C-f
-@kindex C-c C-f C-f
+@item C-c C-f C-w
+@kindex C-c C-f C-w
 @findex message-goto-fcc
 Go to the @code{Fcc} header (@code{message-goto-fcc}).
 
@@ -581,8 +613,8 @@ Go to the @code{Newsgroups} header (@code{message-goto-newsgroups}).
 @findex message-goto-distribution
 Go to the @code{Distribution} header (@code{message-goto-distribution}).
 
-@item C-c C-f C-o
-@kindex C-c C-f C-o
+@item C-c C-f C-f
+@kindex C-c C-f C-f
 @findex message-goto-followup-to
 Go to the @code{Followup-To} header (@code{message-goto-followup-to}).
 
@@ -659,7 +691,7 @@ address from @code{To:} and @code{Cc:} headers.
 @findex message-insert-disposition-notification-to
 Insert a request for a disposition
 notification.  (@code{message-insert-disposition-notification-to}).
-This means that if the recipient support RFC 2298 she might send you a
+This means that if the recipient supports RFC 2298 she might send you a
 notification that she received the message.
 
 @item M-x message-insert-importance-high
@@ -797,14 +829,18 @@ Insert the message headers (@code{message-insert-headers}).
 @item C-c M-m
 @kindex C-c M-m
 @findex message-mark-inserted-region
-Mark some region in the current article with enclosing tags.
-See @code{message-mark-insert-begin} and @code{message-mark-insert-end}.
+Mark some region in the current article with enclosing tags.  See
+@code{message-mark-insert-begin} and @code{message-mark-insert-end}.
+When called with a prefix argument, use slrn style verbatim marks
+(@samp{#v+} and @samp{#v-}).
 
 @item C-c M-f
 @kindex C-c M-f
 @findex message-mark-insert-file
 Insert a file in the current article with enclosing tags.
 See @code{message-mark-insert-begin} and @code{message-mark-insert-end}.
+When called with a prefix argument, use slrn style verbatim marks
+(@samp{#v+} and @samp{#v-}).
 
 @end table
 
@@ -1159,6 +1195,11 @@ The text is killed and replaced with the contents of the variable
 @code{message-elide-ellipsis}.  The default value is to use an ellipsis
 (@samp{[...]}).
 
+@item C-c M-k
+@kindex C-c M-k
+@findex message-kill-address
+Kill the address under point.
+
 @item C-c C-z
 @kindex C-c C-z
 @findex message-kill-to-signature
@@ -1244,11 +1285,13 @@ Kill the message buffer and exit (@code{message-kill-buffer}).
 @section Mail Aliases
 @cindex mail aliases
 @cindex aliases
+@cindex completion
+@cindex ecomplete
 
 @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
+alias expansion to use.  Currently two forms are supported:
+@code{mailabbrev} and @code{ecomplete}.  If this variable is
 @code{nil}, no mail alias expansion will be performed.
 
 @code{mailabbrev} works by parsing the @file{/etc/mailrc} and
@@ -1266,6 +1309,14 @@ on) headers and press @kbd{SPC} to expand the alias.
 No expansion will be performed upon sending of the message---all
 expansions have to be done explicitly.
 
+If you're using @code{ecomplete}, all addresses from @code{To} and
+@code{Cc} headers will automatically be put into the
+@file{~/.ecompleterc} file.  When you enter text in the @code{To} and
+@code{Cc} headers, @code{ecomplete} will check out the values stored
+there and ``electrically'' say what completions are possible.  To
+choose one of these completions, use the @kbd{M-n} command to move
+down to the list.  Use @kbd{M-n} and @kbd{M-p} to move down and up the
+list, and @kbd{RET} to choose a completion.
 
 @node Spelling
 @section Spelling
@@ -1334,7 +1385,7 @@ installed.
 @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
+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.
@@ -1373,7 +1424,7 @@ values:
 
 @table @code
 @item nil
-Just the address -- @samp{king@@grassland.com}.
+Just the address---@samp{king@@grassland.com}.
 
 @item parens
 @samp{king@@grassland.com (Elvis Parsley)}.
@@ -1494,6 +1545,9 @@ hidden when composing a message.
       '(not "From" "Subject" "To" "Cc" "Newsgroups"))
 @end lisp
 
+Headers are hidden using narrowing, you can use @kbd{M-x widen} to
+expose them in the buffer.
+
 @item message-header-synonyms
 @vindex message-header-synonyms
 A list of lists of header synonyms.  E.g., if this list contains a
@@ -1525,6 +1579,13 @@ Regexp of headers to be removed before mailing.  The default is@*
 This string is inserted at the end of the headers in all message
 buffers that are initialized as mail.
 
+@item message-generate-hashcash
+@vindex message-generate-hashcash
+Variable that indicates whether @samp{X-Hashcash} headers
+should be computed for the message.  @xref{Hashcash, ,Hashcash,gnus,
+The Gnus Manual}.  If @code{opportunistic}, only generate the headers
+when it doesn't lead to the user having to wait.
+
 @end table
 
 
@@ -1534,17 +1595,38 @@ buffers that are initialized as mail.
 @table @code
 @item message-send-mail-function
 @vindex message-send-mail-function
+@findex message-send-mail-function
 @findex message-send-mail-with-sendmail
 @findex message-send-mail-with-mh
 @findex message-send-mail-with-qmail
 @findex message-smtpmail-send-it
 @findex smtpmail-send-it
 @findex feedmail-send-it
+@findex message-send-mail-with-mailclient
 Function used to send the current buffer as mail.  The default is
-@code{message-send-mail-with-sendmail}.  Other valid values include
+@code{message-send-mail-with-sendmail}, or @code{smtpmail-send-it}
+according to the system.  Other valid values include
+@code{message-send-mail-with-mailclient},
 @code{message-send-mail-with-mh}, @code{message-send-mail-with-qmail},
-@code{message-smtpmail-send-it}, @code{smtpmail-send-it} and
-@code{feedmail-send-it}.
+@code{message-smtpmail-send-it} and @code{feedmail-send-it}.
+
+The function
+@code{message-send-mail-with-sendmail} pipes your article to the
+@code{sendmail} binary for further queuing and sending.  When your local
+system is not configured for sending mail using @code{sendmail}, and you
+have access to a remote @acronym{SMTP} server, you can set
+@code{message-send-mail-function} to @code{smtpmail-send-it} and make
+sure to setup the @code{smtpmail} package correctly.  An example:
+
+@lisp
+(setq message-send-mail-function 'smtpmail-send-it
+      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 @acronym{ISP}
+requires the @acronym{POP}-before-@acronym{SMTP} authentication.
+@xref{POP before SMTP, , POP before SMTP, gnus, The Gnus Manual}.
 
 @item message-mh-deletable-headers
 @vindex message-mh-deletable-headers
@@ -1594,7 +1676,8 @@ the problem will actually occur.
 @cindex split large message
 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 @code{nil}, the size is unlimited.
+in several parts.  If it is @code{nil} (which is the default), the
+size is unlimited.
 
 @end table
 
@@ -1859,6 +1942,9 @@ that look like:
 Hallvard B Furuseth <h.b.furuseth@@usit.uio.no> writes:
 @end example
 
+@c FIXME: Add `message-insert-formated-citation-line' and
+@c `message-citation-line-format'
+
 Point will be at the beginning of the body of the message when this
 function is called.
 
@@ -1873,21 +1959,29 @@ Article Highlighting, gnus, The Gnus Manual}, for details.
 @cindex yanking
 @cindex quoting
 When you are replying to or following up an article, you normally want
-to quote the person you are answering.  Inserting quoted text is done
-by @dfn{yanking}, and each line you yank will have
-@code{message-yank-prefix} prepended to it (except for quoted and
-empty lines which uses @code{message-yank-cited-prefix}).  The default
-is @samp{> }.
+to quote the person you are answering.  Inserting quoted text is done by
+@dfn{yanking}, and each line you yank will have
+@code{message-yank-prefix} prepended to it (except for quoted lines
+which use @code{message-yank-cited-prefix} and empty lines which use
+@code{message-yank-empty-prefix}).  The default is @samp{> }.
 
 @item message-yank-cited-prefix
 @vindex message-yank-cited-prefix
 @cindex yanking
 @cindex cited
 @cindex quoting
-When yanking text from an article which contains no text or already
-cited text, each line will be prefixed with the contents of this
-variable.  The default is @samp{>}.  See also
-@code{message-yank-prefix}.
+When yanking text from an article which contains already cited text,
+each line will be prefixed with the contents of this variable.  The
+default is @samp{>}.  See also @code{message-yank-prefix}.
+
+@item message-yank-empty-prefix
+@vindex message-yank-empty-prefix
+@cindex yanking
+@cindex quoting
+When yanking text from an article, each empty line will be prefixed with
+the contents of this variable.  The default is @samp{>}.  You can set
+this variable to an empty string to split the cited text into paragraphs
+automatically.  See also @code{message-yank-prefix}.
 
 @item message-indentation-spaces
 @vindex message-indentation-spaces
@@ -1896,15 +1990,12 @@ Number of spaces to indent yanked messages.
 @item message-cite-function
 @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}, 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.
+the signature.
 
 @item message-indent-citation-function
 @vindex message-indent-citation-function
@@ -1932,8 +2023,18 @@ If this variable is @code{nil}, no signature will be inserted at all.
 @item message-signature-file
 @vindex message-signature-file
 File containing the signature to be inserted at the end of the buffer.
+If a path is specified, the value of
+@code{message-signature-directory} is ignored, even if set.
 The default is @file{~/.signature}.
 
+@item message-signature-directory
+@vindex message-signature-directory
+Name of directory containing signature files.  Comes in handy if you
+have many such files, handled via Gnus posting styles for instance.
+If @code{nil} (the default), @code{message-signature-file} is expected
+to specify the directory if needed.
+
+
 @item message-signature-insert-empty-line
 @vindex message-signature-insert-empty-line
 If @code{t} (the default value) an empty line is inserted before the
@@ -1968,6 +2069,13 @@ Emacsen.)  @xref{Charset Translation, , Charset Translation, emacs-mime,
 Emacs MIME Manual}, for details on the @sc{mule}-to-@acronym{MIME}
 translation process.
 
+@item message-fill-column
+@vindex message-fill-column
+@cindex auto-fill
+Local value for the column beyond which automatic line-wrapping should
+happen for message buffers.  If non-nil (the default), also turn on
+auto-fill in message buffers.
+
 @item message-signature-separator
 @vindex message-signature-separator
 Regexp matching the signature separator.  It is @samp{^-- *$} by
@@ -2057,6 +2165,12 @@ Hook run when canceling news articles.
 @vindex message-mode-syntax-table
 Syntax table used in message mode buffers.
 
+@item message-cite-articles-with-x-no-archive
+@vindex message-cite-articles-with-x-no-archive
+If non-@code{nil}, don't strip quoted text from articles that have
+@samp{X-No-Archive} set.  Even if this variable isn't set, you can
+undo the stripping by hitting the @code{undo} keystroke.
+
 @item message-strip-special-text-properties
 @vindex message-strip-special-text-properties
 Emacs has a number of special text properties which can break message
@@ -2089,7 +2203,7 @@ the buffer where the message is.
 
 @item function
 A function to be called if @var{predicate} returns non-@code{nil}.
-@var{function} is called with one parameter -- the prefix.
+@var{function} is called with one parameter---the prefix.
 @end table
 
 The default is:
@@ -2144,6 +2258,11 @@ non-@code{nil}, attach local files as external parts.
 If non-@code{nil} wait for and display errors when sending a message;
 if @code{nil} let the mailer mail back a message to report errors.
 
+@item message-confirm-send
+@vindex message-confirm-send
+When non-@code{nil}, Gnus will ask for confirmation when sending a
+message.
+
 @end table
 
 
@@ -2301,7 +2420,7 @@ consulted, in turn:
 
 @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
+mentioned in the message you are responding to.  All mailboxes from the
 following headers will be concatenated to form the outgoing
 @code{To}/@code{Cc} headers:
 
@@ -2351,8 +2470,6 @@ basis of the new @code{Cc} header, except if this header is
 @chapter Key Index
 @printindex ky
 
-@summarycontents
-@contents
 @bye
 
 @c End: