@copying
This file documents Message, the Emacs message composition mode.
-Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
- 2005 Free Software Foundation, Inc.
+Copyright @copyright{} 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+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
@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.
* Variables:: Customizing the message buffers.
* Compatibility:: Making Message backwards compatible.
* Appendices:: More technical things.
+* GNU Free Documentation License:: The license for this documentation.
* Index:: Variable, function and concept index.
* Key Index:: List of Message mode keys.
@end menu
-This manual corresponds to Message v5.10.6. Message is distributed
-with the Gnus distribution bearing the same version number as this
-manual.
+@c Adjust ../Makefile.in if you change the following lines:
+Message is distributed with Gnus. The Gnus distribution
+@c
+corresponding to this manual is No Gnus v0.11.
@node Interface
* Mailing Lists:: Send mail to mailing lists.
@end menu
+You can customize the Message Mode tool bar, see @kbd{M-x
+customize-apropos RET message-tool-bar}. This feature is only available
+in Emacs.
@node New Mail Message
@section New Mail Message
@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:
+
+@lisp
+(setq message-prune-recipient-rules
+ '(("^\\([^@@]+\\)@@\\(.*\\)" "\\1@@.*[.]\\2")))
+@end lisp
+
+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:
+
+@lisp
+(setq message-prune-recipient-rules
+ '(("cvs@@example.org" ".")))
+@end lisp
@vindex message-wide-reply-confirm-recipients
If @code{message-wide-reply-confirm-recipients} is non-@code{nil} you
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:\\|^Supersedes:}.
+^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:\\|^Approved:}.
@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\\|Return-Path\\):}.
+@samp{^\\(Received\\|Return-Path\\|Delivered-To\\):}.
@node Mailing Lists
@cindex Mail-Followup-To
Sometimes while posting to mailing lists, the poster needs to direct
followups to the post to specific places. The Mail-Followup-To (MFT)
-was created to enable just this. Two example scenarios where this is
+was created to enable just this. Three example scenarios where this is
useful:
@itemize @bullet
@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}).
@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}).
@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
@kindex C-c C-f x
@findex message-cross-post-followup-to
@vindex message-cross-post-default
+@vindex message-cross-post-note-function
@cindex X-Post
@cindex cross-post
-Ask for an additional @samp{Newsgroups} and @samp{FollowUp-To} for a
-cross-post. @code{message-cross-post-followup-to} mangles
-@samp{FollowUp-To} and @samp{Newsgroups} header to point to group.
-If @code{message-cross-post-default} is @code{nil} or if called with a
-prefix-argument @samp{Follow-Up} is set, but the message is not
-cross-posted.
+Set up the @samp{FollowUp-To} header with a target newsgroup for a
+cross-post, add that target newsgroup to the @samp{Newsgroups} header if
+it is not a member of @samp{Newsgroups}, and insert a note in the body.
+If @code{message-cross-post-default} is @code{nil} or if this command is
+called with a prefix-argument, only the @samp{FollowUp-To} header will
+be set but the target newsgroup will not be added to the
+@samp{Newsgroups} header. The function to insert a note is controlled
+by the @code{message-cross-post-note-function} variable.
@item C-c C-f t
@kindex C-c C-f t
@findex message-reduce-to-to-cc
Replace contents of @samp{To} header with contents of @samp{Cc} or
-@samp{Bcc} header.
+@samp{Bcc} header. (Iff @samp{Cc} header is not present, @samp{Bcc}
+header will be used instead.)
@item C-c C-f w
@kindex C-c C-f w
@findex message-insert-wide-reply
Insert @samp{To} and @samp{Cc} headers as if you were doing a wide
-reply.
+reply even if the message was not made for a wide reply first.
@item C-c C-f a
@kindex C-c C-f a
automatically add the @code{Content-Type} and
@code{Content-Transfer-Encoding} headers.
+@findex mml-attach-file
+@kindex C-c C-a
The most typical thing users want to use the multipart things in
@acronym{MIME} for is to add ``attachments'' to mail they send out.
-This can be done with the @kbd{C-c C-a} command, which will prompt for
-a file name and a @acronym{MIME} type.
+This can be done with the @kbd{C-c C-a} command (@kbd{M-x mml-attach-file}),
+which will prompt for a file name and a @acronym{MIME} type.
@vindex mml-dnd-protocol-alist
@vindex mml-dnd-attach-options
The @code{message-use-idna} variable control whether @acronym{IDNA} is
used. If the variable is @code{nil} no @acronym{IDNA} encoding will
ever happen, if it is set to the symbol @code{ask} the user will be
-queried, and if set to @code{t} @acronym{IDNA} encoding happens
-automatically (the default).
+queried, and if set to @code{t} (which is the default if @acronym{IDNA}
+is fully available) @acronym{IDNA} encoding happens automatically.
@findex message-idna-to-ascii-rhs
If you want to experiment with the @acronym{IDNA} encoding, you can
Using the @acronym{MML} language, Message is able to create digitally
signed and digitally encrypted messages. Message (or rather
@acronym{MML}) currently support @acronym{PGP} (RFC 1991),
-@acronym{PGP/MIME} (RFC 2015/3156) and @acronym{S/MIME}. Instructing
-@acronym{MML} to perform security operations on a @acronym{MIME} part is
-done using the @kbd{C-c C-m s} key map for signing and the @kbd{C-c C-m
-c} key map for encryption, as follows.
+@acronym{PGP/MIME} (RFC 2015/3156) and @acronym{S/MIME}.
+
+@menu
+* Signing and encryption:: Signing and encrypting commands.
+* Using S/MIME:: Using S/MIME
+* Using PGP/MIME:: Using PGP/MIME
+* PGP Compatibility:: Compatibility with older implementations
+@end menu
+@node Signing and encryption
+@subsection Signing and encrypting commands
+
+Instructing @acronym{MML} to perform security operations on a
+@acronym{MIME} part is done using the @kbd{C-c C-m s} key map for
+signing and the @kbd{C-c C-m c} key map for encryption, as follows.
@table @kbd
@item C-c C-m s s
other properly. Thus, we now describe what external libraries or
programs are required to make things work, and some small general hints.
+@node Using S/MIME
@subsection Using S/MIME
@emph{Note!} This section assume you have a basic familiarity with
you are on a secure single user machine) simply press @code{RET} at
the passphrase prompt.
+@node Using PGP/MIME
@subsection Using PGP/MIME
@acronym{PGP/MIME} requires an external OpenPGP implementation, such
-as @uref{http://www.gnupg.org/, GNU Privacy Guard}. Pre-OpenPGP
-implementations such as PGP 2.x and PGP 5.x are also supported. One
+as @uref{http://www.gnupg.org/, GNU Privacy Guard}. Pre-OpenPGP
+implementations such as PGP 2.x and PGP 5.x are also supported. One
Emacs interface to the PGP implementations, PGG (@pxref{Top, ,PGG,
-pgg, PGG Manual}), is included, but Mailcrypt and Florian Weimer's
-@code{gpg.el} are also supported.
+pgg, PGG Manual}), is included, but Mailcrypt is also supported.
+@xref{PGP Compatibility}.
+
+@cindex gpg-agent
+Message internally calls GnuPG (the @command{gpg} command) to perform
+data encryption, and in certain cases (decrypting or signing for
+example), @command{gpg} requires user's passphrase. Currently the
+recommended way to supply your passphrase to @command{gpg} is to use the
+@command{gpg-agent} program.
+
+To use @command{gpg-agent} in Emacs, you need to run the following
+command from the shell before starting Emacs.
+
+@example
+eval `gpg-agent --daemon`
+@end example
+
+This will invoke @command{gpg-agent} and set the environment variable
+@code{GPG_AGENT_INFO} to allow @command{gpg} to communicate with it.
+It might be good idea to put this command in your @file{.xsession} or
+@file{.bash_profile}. @xref{Invoking GPG-AGENT, , , gnupg, Using the
+GNU Privacy Guard}.
+
+Once your @command{gpg-agent} is set up, it will ask you for a
+passphrase as needed for @command{gpg}. Under the X Window System,
+you will see a new passphrase input dialog appear. The dialog is
+provided by PIN Entry (the @command{pinentry} command), and as of
+version 0.7.2, @command{pinentry} cannot cooperate with Emacs on a
+single tty. So, if you are using a text console, you may need to put
+a passphrase into gpg-agent's cache beforehand. The following command
+does the trick.
+
+@example
+gpg --use-agent --sign < /dev/null > /dev/null
+@end example
+
+The Lisp variable @code{pgg-gpg-use-agent} controls whether to use
+@command{gpg-agent}. See also @xref{Caching passphrase, , , pgg, The
+PGG Manual}.
+
+
+@node PGP Compatibility
+@subsection Compatibility with older implementations
@vindex gpg-temp-directory
Note, if you are using the @code{gpg.el} you must make sure that the
Kill the address under point.
@item C-c C-z
-@kindex C-c C-x
+@kindex C-c C-z
@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}).
@kindex TAB
@findex message-tab
@vindex message-tab-body-function
-If non-@code{nil} execute the function specified in
-@code{message-tab-body-function}. Otherwise use the function bound to
-@kbd{TAB} in @code{text-mode-map} or @code{global-map}.
+If @code{message-tab-body-function} is non-@code{nil}, execute the
+function it specifies. Otherwise use the function bound to @kbd{TAB} in
+@code{text-mode-map} or @code{global-map}.
@end table
@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
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
@vindex message-subject-trailing-was-regexp
Controls what to do with trailing @samp{(was: <old subject>)} in subject
lines. If @code{nil}, leave the subject unchanged. If it is the symbol
-@code{ask}, query the user what do do. In this case, the subject is
+@code{ask}, query the user what to do. In this case, the subject is
matched against @code{message-subject-trailing-was-ask-regexp}. If
@code{message-subject-trailing-was-query} is @code{t}, always strip the
trailing old subject. In this case,
@item message-required-mail-headers
@vindex message-required-mail-headers
@xref{News Headers}, for the syntax of this variable. It is
-@code{(From Date Subject (optional . In-Reply-To) Message-ID Lines
+@code{(From Subject Date (optional . In-Reply-To) Message-ID
(optional . User-Agent))} by default.
@item message-ignored-mail-headers
@vindex message-ignored-mail-headers
-Regexp of headers to be removed before mailing. The default is
-@samp{^[GF]cc:\\|^Resent-Fcc:\\|^Xref:\\|^X-Draft-From:}.
+Regexp of headers to be removed before mailing. The default is@*
+@samp{^[GF]cc:\\|^Resent-Fcc:\\|^Xref:\\|^X-Draft-From:\\|@*
+^X-Gnus-Agent-Meta-Information:}.
@item message-default-mail-headers
@vindex message-default-mail-headers
@item message-generate-hashcash
@vindex message-generate-hashcash
-Boolean variable that indicate whether @samp{X-Hashcash} headers
+Variable that indicates whether @samp{X-Hashcash} headers
should be computed for the message. @xref{Hashcash, ,Hashcash,gnus,
-The Gnus Manual}.
+The Gnus Manual}. If @code{opportunistic}, only generate the headers
+when it doesn't lead to the user having to wait.
@end table
@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}, 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} 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
Most versions of MH doesn't like being fed messages that contain the
@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
Valid checks are:
@table @code
-@item subject-cmsg
-Check the subject for commands.
-@item sender
-@cindex Sender
-Insert a new @code{Sender} header if the @code{From} header looks odd.
-@item multiple-headers
-Check for the existence of multiple equal headers.
-@item sendsys
-@cindex sendsys
-Check for the existence of version and sendsys commands.
-@item message-id
-Check whether the @code{Message-ID} looks ok.
-@item from
-Check whether the @code{From} header seems nice.
-@item long-lines
-@cindex long lines
-Check for too long lines.
-@item control-chars
-Check for invalid characters.
-@item size
-Check for excessive size.
-@item new-text
-Check whether there is any new text in the messages.
-@item signature
-Check the length of the signature.
@item approved
@cindex approved
Check whether the article has an @code{Approved} header, which is
something only moderators should include.
+@item continuation-headers
+Check whether there are continuation header lines that don't begin with
+whitespace.
+@item control-chars
+Check for invalid characters.
@item empty
Check whether the article is empty.
-@item invisible-text
-Check whether there is any invisible text in the buffer.
-@item empty-headers
-Check whether any of the headers are empty.
@item existing-newsgroups
Check whether the newsgroups mentioned in the @code{Newsgroups} and
@code{Followup-To} headers exist.
-@item valid-newsgroups
-Check whether the @code{Newsgroups} and @code{Followup-to} headers
-are valid syntactically.
+@item from
+Check whether the @code{From} header seems nice.
+@item illegible-text
+Check whether there is any non-printable character in the body.
+@item invisible-text
+Check whether there is any invisible text in the buffer.
+@item long-header-lines
+Check for too long header lines.
+@item long-lines
+@cindex long lines
+Check for too long lines in the body.
+@item message-id
+Check whether the @code{Message-ID} looks syntactically ok.
+@item multiple-headers
+Check for the existence of multiple equal headers.
+@item new-text
+Check whether there is any new text in the messages.
+@item newsgroups
+Check whether the @code{Newsgroups} header exists and is not empty.
+@item quoting-style
+Check whether text follows last quoted portion.
@item repeated-newsgroups
Check whether the @code{Newsgroups} and @code{Followup-to} headers
contains repeated group names.
+@item reply-to
+Check whether the @code{Reply-To} header looks ok.
+@item sender
+@cindex Sender
+Insert a new @code{Sender} header if the @code{From} header looks odd.
+@item sendsys
+@cindex sendsys
+Check for the existence of version and sendsys commands.
+@item shoot
+Check whether the domain part of the @code{Message-ID} header looks ok.
@item shorten-followup-to
Check whether to add a @code{Followup-to} header to shorten the number
of groups to post to.
+@item signature
+Check the length of the signature.
+@item size
+Check for excessive size.
+@item subject
+Check whether the @code{Subject} header exists and is not empty.
+@item subject-cmsg
+Check the subject for commands.
+@item valid-newsgroups
+Check whether the @code{Newsgroups} and @code{Followup-to} headers
+are valid syntactically.
@end table
-All these conditions are checked by default.
+All these conditions are checked by default, except for @code{sender}
+for which the check is disabled by default if
+@code{message-insert-canlock} is non-@code{nil} (@pxref{Canceling News}).
@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:\\|^[BGF]cc:\\|^Resent-Fcc:\\|^X-Draft-From:}.
+@samp{^NNTP-Posting-Host:\\|^Xref:\\|^[BGF]cc:\\|^Resent-Fcc:\\|@*
+^X-Draft-From:\\|^X-Gnus-Agent-Meta-Information:}.
@item message-default-news-headers
@vindex message-default-news-headers
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.
@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
@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
@item message-default-charset
@vindex message-default-charset
@cindex charset
-Symbol naming a @acronym{MIME} charset. Non-@acronym{ASCII}
-characters in messages are assumed to be encoded using this charset.
-The default is @code{nil}, which means ask the user. (This variable
-is used only on non-@sc{mule} Emacsen. @xref{Charset Translation, ,
-Charset Translation, emacs-mime, Emacs MIME Manual}, for details on
-the @sc{mule}-to-@acronym{MIME} translation process.
+Symbol naming a @acronym{MIME} charset. Non-@acronym{ASCII} characters
+in messages are assumed to be encoded using this charset. The default
+is @code{iso-8859-1} on non-@sc{mule} Emacsen; otherwise @code{nil},
+which means ask the user. (This variable is used only on non-@sc{mule}
+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
@item message-send-method-alist
@vindex message-send-method-alist
-
-Alist of ways to send outgoing messages. Each element has the form
+@findex message-mail-p
+@findex message-news-p
+@findex message-send-via-mail
+@findex message-send-via-news
+Alist of ways to send outgoing messages. Each element has the form:
@lisp
(@var{type} @var{predicate} @var{function})
@item predicate
A function called without any parameters to determine whether the
-message is a message of type @var{type}.
+message is a message of type @var{type}. The function will be called in
+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.
@end table
+The default is:
+
@lisp
((news message-news-p message-send-via-news)
(mail message-mail-p message-send-via-mail))
@end lisp
-
+The @code{message-news-p} function returns non-@code{nil} if the message
+looks like news, and the @code{message-send-via-news} function sends the
+message according to the @code{message-send-news-function} variable
+(@pxref{News Variables}). The @code{message-mail-p} function returns
+non-@code{nil} if the message looks like mail, and the
+@code{message-send-via-mail} function sends the message according to the
+@code{message-send-mail-function} variable (@pxref{Mail Variables}).
+
+All the elements in this alist will be tried in order, so a message
+containing both a valid @samp{Newsgroups} header and a valid @samp{To}
+header, for example, will be sent as news, and then as mail.
@end table
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
@table @code
@item message-generate-new-buffers
@vindex message-generate-new-buffers
-If non-@code{nil}, generate new buffers. The default is @code{t}. If
-this is a function, call that function with three parameters: The type,
-the to address and the group name. (Any of these may be @code{nil}.)
-The function should return the new buffer name.
+Controls whether to create a new message buffer to compose a message.
+Valid values include:
+
+@table @code
+@item nil
+Generate the buffer name in the Message way (e.g., *mail*, *news*, *mail
+to whom*, *news on group*, etc.) and continue editing in the existing
+buffer of that name. If there is no such buffer, it will be newly
+created.
+
+@item unique
+@item t
+Create the new buffer with the name generated in the Message way. This
+is the default.
+
+@item unsent
+Similar to @code{unique} but the buffer name begins with "*unsent ".
+
+@item standard
+Similar to @code{nil} but the buffer name is simpler like *mail
+message*.
+@end table
+@table @var
+@item function
+If this is a function, call that function with three parameters: The
+type, the To address and the group name (any of these may be
+@code{nil}). The function should return the new buffer name.
+@end table
+
+The default value is @code{unique}.
@item message-max-buffers
@vindex message-max-buffers
@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:
@end table
+@node GNU Free Documentation License
+@chapter GNU Free Documentation License
+@include doclicense.texi
@node Index
@chapter Index
@chapter Key Index
@printindex ky
-@summarycontents
-@contents
@bye
@c End:
-
-@ignore
- arch-tag: 16ab76af-a281-4e34-aed6-5624569f7601
-@end ignore