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
@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.
@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
@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
^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:}.
@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
@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
@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
@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
@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.
@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)}.
'(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
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
@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
@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
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.
@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
@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
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
@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
@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:
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
@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:
@chapter Key Index
@printindex ky
-@summarycontents
-@contents
@bye
@c End: