@synindex fn cp
@synindex vr cp
@synindex pg cp
-@dircategory Emacs
-@direntry
-* Message: (message). Mail and news composition mode that goes with Gnus.
-@end direntry
-@iftex
-@finalout
-@end iftex
-@setchapternewpage odd
-
-@ifnottex
-
+@copying
This file documents Message, the Emacs message composition mode.
-Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-Free Software Foundation, Inc.
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005 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.1 or
any later version published by the Free Software Foundation; with no
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.
-@end ifnottex
+@end quotation
+@end copying
-@tex
+@dircategory Emacs
+@direntry
+* Message: (message). Mail and news composition mode that goes with Gnus.
+@end direntry
+@iftex
+@finalout
+@end iftex
+@setchapternewpage odd
@titlepage
@title Message Manual
@page
@vskip 0pt plus 1filll
-Copyright @copyright{} 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
- Free Software Foundation, Inc.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being none, 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.
+@insertcopying
@end titlepage
@page
-@end tex
-
@node Top
@top Message
* Key Index:: List of Message mode keys.
@end menu
-This manual corresponds to Message v5.10.1. Message is distributed
+This manual corresponds to Message v5.10.6. Message is distributed
with the Gnus distribution bearing the same version number as this
manual.
@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
This function will be called narrowed to the head of the article that is
being replied to.
-As you can see, this function should return a string if it has an
-opinion as to what the To header should be. If it does not, it should
-just return @code{nil}, and the normal methods for determining the To
-header will be used.
+As you can see, this function should return a list. In this case, it
+returns @code{((To . "Whom"))} if it has an opinion as to what the To
+header should be. If it does not, it should just return @code{nil}, and
+the normal methods for determining the To header will be used.
-This function can also return a list. In that case, each list element
-should be a cons, where the @sc{car} should be the name of a header
-(e.g. @code{Cc}) and the @sc{cdr} should be the header value
-(e.g. @samp{larsi@@ifi.uio.no}). All these headers will be inserted into
-the head of the outgoing mail.
+Each list element should be a cons, where the @sc{car} should be the
+name of a header (e.g. @code{Cc}) and the @sc{cdr} should be the header
+value (e.g. @samp{larsi@@ifi.uio.no}). All these headers will be
+inserted into the head of the outgoing mail.
@node Wide Reply
is that if you lose your @file{.emacs} file (which is where Gnus
stores the secret cancel lock password (which is generated
automatically the first time you use this feature)), you won't be
-able to cancel your message.
+able to cancel your message. If you want to manage a password yourself,
+you can put something like the following in your @file{~/.gnus.el} file:
+
+@lisp
+(setq canlock-password "geheimnis"
+ canlock-password-for-verify canlock-password)
+@end lisp
Whether to insert the header or not is controlled by the
@code{message-insert-canlock} variable.
@vindex message-ignored-resent-headers
Headers that match the @code{message-ignored-resent-headers} regexp will
-be removed before sending the message. The default is
-@samp{^Return-receipt}.
+be removed before sending the message.
@node Bouncing
@node Mailing Lists
@section 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
@vindex message-subscribed-address-file
@item message-subscribed-address-file
-You might be one organised human freak and have a list of addresses of
+You might be one organized human freak and have a list of addresses of
all subscribed mailing lists in a separate file! Then you can just
set this variable to the name of the file and life would be good.
@end table
-It is considered good nettiquette to honor MFT, as it is assumed the
+It is considered good netiquette to honor MFT, as it is assumed the
fellow who posted a message knows where the followups need to go
better than you do.
@vindex message-beginning-of-line
If at beginning of header value, go to beginning of line, else go to
beginning of header value. (The header value comes after the header
-name and the colon.) This behaviour can be disabled by toggling
+name and the colon.) This behavior can be disabled by toggling
the variable @code{message-beginning-of-line}.
@end table
@code{Content-Transfer-Encoding} headers.
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.
-
-You can also create arbitrarily complex multiparts using the MML
+@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.
+
+@vindex mml-dnd-protocol-alist
+@vindex mml-dnd-attach-options
+If your Emacs supports drag and drop, you can also drop the file in the
+Message buffer. The variable @code{mml-dnd-protocol-alist} specifies
+what kind of action is done when you drop a file into the Message
+buffer. The variable @code{mml-dnd-attach-options} controls which
+@acronym{MIME} options you want to specify when dropping a file. If it
+is a list, valid members are @code{type}, @code{description} and
+@code{disposition}. @code{disposition} implies @code{type}. If it is
+@code{nil}, don't ask for options. If it is @code{t}, ask the user
+whether or not to specify options.
+
+You can also create arbitrarily complex multiparts using the @acronym{MML}
language (@pxref{Composing, , Composing, emacs-mime, The Emacs MIME
Manual}).
@cindex encrypt
@cindex secure
-Using the MML language, Message is able to create digitally signed and
-digitally encrypted messages. Message (or rather MML) currently
-support @acronym{PGP} (RFC 1991), @acronym{PGP/MIME} (RFC 2015/3156) and @acronym{S/MIME}.
-Instructing 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.
+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.
@table @kbd
@item C-c C-m C-n
@kindex C-c C-m C-n
@findex mml-unsecure-message
-Remove security related MML tags from message.
+Remove security related @acronym{MML} tags from message.
@end table
These commands do not immediately sign or encrypt the message, they
-merely insert the proper MML secure tag to instruct the MML engine to
-perform that operation when the message is actually sent. They may
-perform other operations too, such as locating and retrieving a
-@acronym{S/MIME} certificate of the person you wish to send encrypted mail
-to. When the mml parsing engine converts your MML into a properly
-encoded @acronym{MIME} message, the secure tag will be replaced with either
-a part or a multipart tag. If your message contains other mml parts,
-a multipart tag will be used; if no other parts are present in your
-message a single part tag will be used. This way, message mode will
-do the Right Thing (TM) with signed/encrypted multipart messages.
+merely insert the proper @acronym{MML} secure tag to instruct the
+@acronym{MML} engine to perform that operation when the message is
+actually sent. They may perform other operations too, such as locating
+and retrieving a @acronym{S/MIME} certificate of the person you wish to
+send encrypted mail to. When the mml parsing engine converts your
+@acronym{MML} into a properly encoded @acronym{MIME} message, the secure
+tag will be replaced with either a part or a multipart tag. If your
+message contains other mml parts, a multipart tag will be used; if no
+other parts are present in your message a single part tag will be used.
+This way, message mode will do the Right Thing (TM) with
+signed/encrypted multipart messages.
Since signing and especially encryption often is used when sensitive
information is sent, you may want to have some way to ensure that your
modern cryptography, @acronym{S/MIME}, various PKCS standards, OpenSSL and
so on.
-The @acronym{S/MIME} support in Message (and MML) require OpenSSL. OpenSSL
-performs the actual @acronym{S/MIME} sign/encrypt operations. OpenSSL can
-be found at @uref{http://www.openssl.org/}. OpenSSL 0.9.6 and later
-should work. Version 0.9.5a cannot extract mail addresses from
-certificates, and it insert a spurious CR character into @acronym{MIME}
-separators so you may wish to avoid it if you would like to avoid
-being regarded as someone who send strange mail. (Although by sending
-@acronym{S/MIME} messages you've probably already lost that contest.)
+The @acronym{S/MIME} support in Message (and @acronym{MML}) require
+OpenSSL. OpenSSL performs the actual @acronym{S/MIME} sign/encrypt
+operations. OpenSSL can be found at @uref{http://www.openssl.org/}.
+OpenSSL 0.9.6 and later should work. Version 0.9.5a cannot extract mail
+addresses from certificates, and it insert a spurious CR character into
+@acronym{MIME} separators so you may wish to avoid it if you would like
+to avoid being regarded as someone who send strange mail. (Although by
+sending @acronym{S/MIME} messages you've probably already lost that
+contest.)
To be able to send encrypted mail, a personal certificate is not
-required. Message (MML) need a certificate for the person to whom you
+required. Message (@acronym{MML}) need a certificate for the person to whom you
wish to communicate with though. You're asked for this when you type
@kbd{C-c C-m c s}. Currently there are two ways to retrieve this
certificate, from a local file or from DNS. If you chose a local
file, it need to contain a X.509 certificate in @acronym{PEM} format.
If you chose DNS, you're asked for the domain name where the
certificate is stored, the default is a good guess. To my belief,
-Message (MML) is the first mail agent in the world to support
+Message (@acronym{MML}) is the first mail agent in the world to support
retrieving @acronym{S/MIME} certificates from DNS, so you're not
likely to find very many certificates out there. At least there
should be one, stored at the domain @code{simon.josefsson.org}. LDAP
As for signing messages, OpenSSL can't perform signing operations
without some kind of configuration. Especially, you need to tell it
-where your private key and your certificate is stored. MML uses an
-Emacs interface to OpenSSL, aptly named @code{smime.el}, and it
+where your private key and your certificate is stored. @acronym{MML}
+uses an Emacs interface to OpenSSL, aptly named @code{smime.el}, and it
contain a @code{custom} group used for this configuration. So, try
@kbd{M-x customize-group RET smime RET} and look around.
@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-x
@findex message-kill-to-signature
@lisp
(setq ispell-message-dictionary-alist
'(("^Newsgroups:.*\\bde\\." . "deutsch8")
- (".*" . "default")))
+ (".*" . "default")))
@end lisp
@code{ispell} depends on having the external @samp{ispell} command
@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)}.
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
matched against @code{message-subject-trailing-was-ask-regexp}. If
-@code{message-subject-trailing-was-query} is t, always strip the
+@code{message-subject-trailing-was-query} is @code{t}, always strip the
trailing old subject. In this case,
@code{message-subject-trailing-was-regexp} is used.
'(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
+member list with elements @code{Cc} and @code{To}, then
+@code{message-carefully-insert-headers} will not insert a @code{To}
+header when the message is already @code{Cc}ed to the recipient.
+
@end table
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
+Boolean variable that indicate whether @samp{X-Hashcash} headers
+should be computed for the message. @xref{Hashcash, ,Hashcash,gnus,
+The Gnus Manual}.
+
@end table
@findex smtpmail-send-it
@findex feedmail-send-it
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-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}.
@item message-mh-deletable-headers
@vindex message-mh-deletable-headers
@cindex Sun
@cindex i-did-not-set--mail-host-address--so-tickle-me
This required header will be generated by Message. A unique ID will be
-created based on the date, time, user name and system name. For the
-domain part, message will look (in this order) at
+created based on the date, time, user name (for the local part) and the
+domain part. For the domain part, message will look (in this order) at
@code{message-user-fqdn}, @code{system-name}, @code{mail-host-address}
and @code{message-user-mail-address} (i.e. @code{user-mail-address})
until a probably valid fully qualified domain name (FQDN) was found.
@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-directory
@vindex message-directory
Directory used by many mailey things. The default is @file{~/Mail/}.
+All other mail file variables are derived from @code{message-directory}.
@item message-auto-save-directory
@vindex message-auto-save-directory
@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
@lisp
@end lisp
-
@end table
@bye
@c End:
+
+@ignore
+ arch-tag: 16ab76af-a281-4e34-aed6-5624569f7601
+@end ignore