Synch with Gnus.
[elisp/gnus.git-] / texi / message.texi
index 08024a3..178b867 100644 (file)
@@ -1,67 +1,70 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename message
-@settitle Pterodactyl Message 0.73 Manual
+@settitle T-gnus 6.14 Message 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
+@dircategory Editors
+@direntry
+* Message: (message).   Mail and news composition mode that goes with Gnus.
+@end direntry
 @iftex
 @finalout
 @end iftex
 @setchapternewpage odd
 
-@ifinfo
+@ifnottex
 
 This file documents Message, the Emacs message composition mode.
 
-Copyright (C) 1996,97,98 Free Software Foundation, Inc.
+Copyright (C) 1996,97,98,99,2000 Free Software Foundation, Inc.
 
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
+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
+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.
 
-@ignore
-Permission is granted to process this file through Tex and print the
-results, provided the printed document carries copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed 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.''
 
-@end ignore
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that the
-entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions.
-@end ifinfo
+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.
+@end ifnottex
 
 @tex
 
 @titlepage
-@title Pterodactyl Message 0.73 Manual
+@title T-gnus 6.14 Message Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
 
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1996 Free Software Foundation, Inc. 
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the
-entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions.
-
+Copyright @copyright{} 1996,97,98,99,2000 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.
 @end titlepage
 @page
 
@@ -83,7 +86,7 @@ Message mode buffers.
 * Key Index::         List of Message mode keys.
 @end menu
 
-This manual corresponds to Pterodactyl Message 0.73.  Message is
+This manual corresponds to T-gnus 6.14 Message.  Message is
 distributed with the Gnus distribution bearing the same version number
 as this manual.
 
@@ -116,7 +119,7 @@ sending it.
 @section New Mail Message
 
 @findex message-mail
-The @code{message-mail} command pops up a new message buffer.  
+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
@@ -127,7 +130,7 @@ are @code{nil}, those two headers will be empty.
 @section New News Message
 
 @findex message-news
-The @code{message-news} command pops up a new message buffer.  
+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}
@@ -153,8 +156,8 @@ If you want the replies to go to the @code{Sender} instead of the
 (setq message-reply-to-function
       (lambda ()
        (cond ((equal (mail-fetch-field "from") "somebody")
-               (mail-fetch-field "sender"))     
-             (t 
+               (list (cons 'To (mail-fetch-field "sender"))))
+             (t
               nil))))
 @end lisp
 
@@ -170,7 +173,7 @@ This function can also return a list.  In that case, each list element
 should be a cons, where the car should be the name of an header
 (eg. @code{Cc}) and the cdr should be the header value
 (eg. @samp{larsi@@ifi.uio.no}).  All these headers will be inserted into
-the head of the outgoing mail. 
+the head of the outgoing mail.
 
 
 @node Wide Reply
@@ -186,10 +189,10 @@ reply that goes out to all people listed in the @code{To}, @code{From}
 Message uses the normal methods to determine where wide replies are to go,
 but you can change the behavior to suit your needs by fiddling with the
 @code{message-wide-reply-to-function}.  It is used in the same way as
-@code{message-reply-to-function} (@pxref{Reply}). 
+@code{message-reply-to-function} (@pxref{Reply}).
 
-@findex rmail-dont-reply-to-names
-Addresses that match the @code{rmail-dont-reply-to-names} regular
+@findex 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.
 
 
@@ -246,26 +249,9 @@ the message in the current buffer.  If given a prefix, forward using
 news.
 
 @table @code
-@item message-forward-start-separator
-@vindex message-forward-start-separator
-Delimiter inserted before forwarded messages.  The default is@*
-@samp{------- Start of forwarded message -------\n}. 
-
-@vindex message-forward-end-separator
-@item message-forward-end-separator
-@vindex message-forward-end-separator
-Delimiter inserted after forwarded messages.  The default is@*
-@samp{------- End of forwarded message -------\n}. 
-
-@item message-signature-before-forwarded-message
-@vindex message-signature-before-forwarded-message
-If this variable is @code{t}, which it is by default, your personal
-signature will be inserted before the forwarded message.  If not, the
-forwarded message will be inserted first in the new mail.
-
-@item message-included-forward-headers
-@vindex message-included-forward-headers
-Regexp matching header lines to be included in forwarded messages.  
+@item message-forward-ignored-headers
+@vindex message-forward-ignored-headers
+All headers that match this regexp will be deleted when forwarding a message.
 
 @item message-make-forward-subject-function
 @vindex message-make-forward-subject-function
@@ -288,10 +274,16 @@ Subject of article with @samp{Fwd:} prepended to it.
 @item message-wash-forwarded-subjects
 @vindex message-wash-forwarded-subjects
 If this variable is @code{t}, the subjects of forwarded messages have
-the evidence of previous forwards (such as @samp{Fwd:}, @samp{Re:}, 
+the evidence of previous forwards (such as @samp{Fwd:}, @samp{Re:},
 @samp{(fwd)}) removed before the new subject is
 constructed.  The default value is @code{nil}.
 
+@item message-forward-as-mime
+@vindex message-forward-as-mime
+If this variable is @code{t} (the default), forwarded messages are
+included as inline MIME RFC822 parts.  If it's @code{nil}, forwarded
+messages will just be copied inline to the new message, like previous,
+non MIME-savvy versions of gnus would do.
 @end table
 
 
@@ -305,7 +297,7 @@ and resend the message in the current buffer to that address.
 @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}. 
+@samp{^Return-receipt}.
 
 
 @node Bouncing
@@ -316,7 +308,7 @@ The @code{message-bounce} command will, if the current buffer contains a
 bounced mail message, pop up a message buffer stripped of the bounce
 information.  A @dfn{bounced message} is typically a mail you've sent
 out that has been returned by some @code{mailer-daemon} as
-undeliverable. 
+undeliverable.
 
 @vindex message-ignored-bounced-headers
 Headers that match the @code{message-ignored-bounced-headers} regexp
@@ -331,6 +323,8 @@ will be removed before popping up the buffer.  The default is
 * Header Commands::     Commands for moving to headers.
 * Movement::            Moving around in message buffers.
 * Insertion::           Inserting things into message buffers.
+* MIME::                @sc{mime} considerations.
+* Security::            Signing and encrypting messages.
 * Various Commands::    Various things.
 * Sending::             Actually sending the message.
 * Mail Aliases::        How to use mail aliases.
@@ -351,57 +345,57 @@ it will be inserted.
 Describe the message mode.
 
 @item C-c C-f C-t
-@kindex C-c C-f C-t 
+@kindex C-c C-f C-t
 @findex message-goto-to
 Go to the @code{To} header (@code{message-goto-to}).
 
 @item C-c C-f C-b
-@kindex C-c C-f C-b 
+@kindex C-c C-f C-b
 @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 
+@kindex C-c C-f C-f
 @findex message-goto-fcc
 Go to the @code{Fcc} header (@code{message-goto-fcc}).
 
 @item C-c C-f C-c
-@kindex C-c C-f C-c 
+@kindex C-c C-f C-c
 @findex message-goto-cc
 Go to the @code{Cc} header (@code{message-goto-cc}).
 
 @item C-c C-f C-s
-@kindex C-c C-f C-s 
+@kindex C-c C-f C-s
 @findex message-goto-subject
 Go to the @code{Subject} header (@code{message-goto-subject}).
 
 @item C-c C-f C-r
-@kindex C-c C-f C-r 
+@kindex C-c C-f C-r
 @findex message-goto-reply-to
 Go to the @code{Reply-To} header (@code{message-goto-reply-to}).
 
 @item C-c C-f C-n
-@kindex C-c C-f C-n 
+@kindex C-c C-f C-n
 @findex message-goto-newsgroups
 Go to the @code{Newsgroups} header (@code{message-goto-newsgroups}).
 
 @item C-c C-f C-d
-@kindex C-c C-f C-d 
+@kindex C-c C-f C-d
 @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 
+@kindex C-c C-f C-o
 @findex message-goto-followup-to
 Go to the @code{Followup-To} header (@code{message-goto-followup-to}).
 
 @item C-c C-f C-k
-@kindex C-c C-f C-k 
+@kindex C-c C-f C-k
 @findex message-goto-keywords
 Go to the @code{Keywords} header (@code{message-goto-keywords}).
 
 @item C-c C-f C-u
-@kindex C-c C-f C-u 
+@kindex C-c C-f C-u
 @findex message-goto-summary
 Go to the @code{Summary} header (@code{message-goto-summary}).
 
@@ -413,13 +407,13 @@ Go to the @code{Summary} header (@code{message-goto-summary}).
 
 @table @kbd
 @item C-c C-b
-@kindex C-c C-b 
+@kindex C-c C-b
 @findex message-goto-body
 Move to the beginning of the body of the message
-(@code{message-goto-body}). 
+(@code{message-goto-body}).
 
 @item C-c C-i
-@kindex C-c C-i 
+@kindex C-c C-i
 @findex message-goto-signature
 Move to the signature of the message (@code{message-goto-signature}).
 
@@ -432,13 +426,20 @@ Move to the signature of the message (@code{message-goto-signature}).
 @table @kbd
 
 @item C-c C-y
-@kindex C-c C-y 
+@kindex C-c C-y
 @findex message-yank-original
-Yank the message that's being replied to into the message buffer
-(@code{message-yank-original}). 
+Yank the message in the buffer @code{gnus-article-copy} into the message
+buffer. Normally @code{gnus-article-copy} is what you are replying to
+(@code{message-yank-original}).
+
+@item C-c M-C-y
+@kindex C-c M-C-y
+@findex message-yank-buffer
+Prompt for a buffer name and yank the contents of that buffer into the
+message buffer (@code{message-yank-buffer}).
 
 @item C-c C-q
-@kindex C-c C-q 
+@kindex C-c C-q
 @findex 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
@@ -447,10 +448,10 @@ 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 
+@kindex C-c C-w
 @findex message-insert-signature
 Insert a signature at the end of the buffer
-(@code{message-insert-signature}).  
+(@code{message-insert-signature}).
 
 @item C-c M-h
 @kindex C-c M-h
@@ -466,6 +467,10 @@ All headers that match this regexp will be removed from yanked
 messages.  The default is @samp{.}, which means that all headers will be
 removed.
 
+@item message-cite-prefix-regexp
+@vindex message-cite-prefix-regexp
+Regexp matching the longest possible citation prefix on a line.
+
 @item message-citation-line-function
 @vindex message-citation-line-function
 Function called to insert the citation line.  The default is
@@ -488,6 +493,22 @@ to quote the person you are answering.  Inserting quoted text is done by
 @dfn{yanking}, and each quoted line you yank will have
 @code{message-yank-prefix} prepended to it.  The default is @samp{> }.
 
+@item message-yank-add-new-references
+@vindex message-yank-add-new-references
+@cindex yanking
+Non-@code{nil} means new IDs will be added to References field when an
+article is yanked by the command @code{message-yank-original}
+interactively.  If it is a symbol @code{message-id-only}, only an ID
+from Message-ID field is used, otherwise IDs extracted from References,
+In-Reply-To and Message-ID fields are used.
+
+@item message-list-references-add-position
+@vindex message-list-references-add-position
+@cindex yanking
+Integer value means position for adding to References field when an
+article is yanked by the command @code{message-yank-original}
+interactively.
+
 @item message-indentation-spaces
 @vindex message-indentation-spaces
 Number of spaces to indent yanked messages.
@@ -538,6 +559,156 @@ Including ASCII graphics is an efficient way to get everybody to believe
 that you are silly and have nothing important to say.
 
 
+@node MIME
+@section MIME
+@cindex MML
+@cindex MIME
+@cindex multipart
+@cindex attachment
+
+Message is a @sc{mime}-compliant posting agent.  The user generally
+doesn't have to do anything to make the @sc{mime} happen---Message will
+automatically add the @code{Content-Type} and
+@code{Content-Transfer-Encoding} headers.
+
+The most typical thing users want to use the multipart things in
+@sc{mime} for is to add ``attachments'' to mail they send out.  This can
+be done with the @code{C-c C-a} command, which will prompt for a file
+name and a @sc{mime} type.
+
+You can also create arbitrarily complex multiparts using the MML
+language (@pxref{Composing, , Composing, emacs-mime, The Emacs MIME
+Manual}).
+
+@node Security
+@section Security
+@cindex Security
+@cindex S/MIME
+@cindex PGP/MIME
+@cindex sign
+@cindex encrypt
+
+Using the MML language, Message is able to create digitally signed and
+digitally encrypted messages.  Message (or rather MML) currently support
+PGP/MIME and S/MIME.  Instructing MML to perform security operations on
+a MIME part is done using the @code{M-m s} key map for signing and the
+@code{M-m c} key map for encryption, as follows.
+
+@table @kbd
+
+@item M-m s s
+@kindex M-m s s
+@findex mml-secure-sign-smime
+
+Digitally sign current MIME part using S/MIME.
+
+@item M-m s p
+@kindex M-m s p
+@findex mml-secure-sign-pgp
+
+Digitally sign current MIME part using PGP/MIME.
+
+@item M-m c s
+@kindex M-m c s
+@findex mml-secure-encrypt-smime
+
+Digitally encrypt current MIME part using S/MIME.
+
+@item M-m c p
+@kindex M-m c p
+@findex mml-secure-encrypt-pgpmime
+
+Digitally encrypt current MIME part using PGP/MIME.
+
+@end table
+
+These commands do not immediately sign or encrypt the message, they
+merely insert proper MML tags 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 S/MIME certificate of
+the person you wish to send encrypted mail to.
+
+Since signing and especially encryption often is used when sensitive
+information is sent, you may want to have some way to ensure that your
+mail is actually signed or encrypted.  After invoking the above
+sign/encrypt commands, it is possible to preview the raw article by
+using @code{C-u M-m P} (@code{mml-preview}).  Then you can verify that
+your long rant about what your ex-significant other or whomever actually
+did with that funny looking person at that strange party the other
+night, actually will be sent encrypted.
+
+@emph{Note!}  Neither PGP/MIME nor S/MIME encrypt/signs RFC822 headers.
+They only operate on the MIME object.  Keep this in mind before sending
+mail with a sensitive Subject line.
+
+Actually using the security commands above is not very difficult.  At
+least not compared with making sure all involved programs talk with each
+other properly.  Thus, we now describe what external libraries or
+programs are required to make things work, and some small general hints.
+
+@subsection Using S/MIME
+
+@emph{Note!}  This section assume you have a basic familiarity with
+modern cryptography, S/MIME, various PKCS standards, OpenSSL and so on.
+
+The S/MIME support in Message (and MML) require OpenSSL.  OpenSSL
+perform the actual S/MIME sign/encrypt operations.  OpenSSL can be found
+at @code{http://www.openssl.org/}.  OpenSSL 0.9.5a and later should
+work.  However, version 0.9.5a insert a spurious CR character into 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 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
+wish to communicate with though.  You're asked for this when you type
+@code{M-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 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 retrieving 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 is a more popular method of distributing certificates, support for
+it is planned.  (Meanwhile, you can use @code{ldapsearch} from the
+command line to retrieve a certificate into a file and use it.)
+
+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 contain
+a @code{custom} group used for this configuration.  So, try @code{M-x
+customize-group RET smime RET} and look around.
+
+Currently there is no support for talking to a CA (or RA) to create your
+own certificate.  None is planned either.  You need to do this manually
+with OpenSSL or using some other program.  I used Netscape and got a
+free S/MIME certificate from one of the big CA's on the net.  Netscape
+is able to export your private key and certificate in PKCS #12 format.
+Use OpenSSL to convert this into a plain X.509 certificate in PEM format
+as follows.
+
+@example
+$ openssl pkcs12 -in ns.p12 -clcerts -nodes > key+cert.pem
+@end example
+
+The @code{key+cert.pem} file should be pointed to from the
+@code{smime-keys} variable.  You should now be able to send signed mail.
+
+@emph{Note!}  Your private key is store unencrypted in the file, so take
+care in handling it.
+
+@subsection Using PGP/MIME
+
+PGP/MIME require an external OpenPGP implementation, such as GNU Privacy
+Guard (@code{http://www.gnupg.org/}.  It also require a Emacs interface
+to it, such as Mailcrypt (available from
+@code{http://www.nb.net/~lbudney/linux/software/mailcrypt.html}) or
+Florian Weimer's @code{gpg.el}.
+
+Creating your own OpenPGP key is described in detail in the
+documentation of your OpenPGP implementation, so we refer to it.
 
 @node Various Commands
 @section Various Commands
@@ -545,7 +716,7 @@ that you are silly and have nothing important to say.
 @table @kbd
 
 @item C-c C-r
-@kindex C-c C-r 
+@kindex C-c C-r
 @findex message-caesar-buffer-body
 Caesar rotate (aka. rot13) the current message
 (@code{message-caesar-buffer-body}).  If narrowing is in effect, just
@@ -556,8 +727,9 @@ many places to rotate the text.  The default is 13.
 @kindex C-c C-e
 @findex message-elide-region
 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.
+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 C-z
 @kindex C-c C-x
@@ -592,17 +764,17 @@ If point is before @samp{And} and you press @kbd{M-RET}, you'll get:
 > And here's more quoted text.
 @end example
 
-@samp{*} says where point will be placed.  
+@samp{*} says where point will be placed.
 
 @item C-c C-t
-@kindex C-c C-t 
+@kindex C-c C-t
 @findex message-insert-to
 Insert a @code{To} header that contains the @code{Reply-To} or
 @code{From} header of the message you're following up
-(@code{message-insert-to}). 
+(@code{message-insert-to}).
 
 @item C-c C-n
-@kindex C-c C-n 
+@kindex C-c C-n
 @findex message-insert-newsgroups
 Insert a @code{Newsgroups} header that reflects the @code{Followup-To}
 or @code{Newsgroups} header of the article you're replying to
@@ -622,15 +794,15 @@ prompt for a new buffer name.
 
 @table @kbd
 @item C-c C-c
-@kindex C-c C-c 
+@kindex C-c C-c
 @findex message-send-and-exit
 Send the message and bury the current buffer
-(@code{message-send-and-exit}). 
+(@code{message-send-and-exit}).
 
 @item C-c C-s
-@kindex C-c C-s 
+@kindex C-c C-s
 @findex message-send
-Send the message (@code{message-send}). 
+Send the message (@code{message-send}).
 
 @item C-c C-d
 @kindex C-c C-d
@@ -704,7 +876,7 @@ look sufficiently similar.
 @item message-generate-headers-first
 @vindex message-generate-headers-first
 If non-@code{nil}, generate all headers before starting to compose the
-message.  
+message.
 
 @item message-from-style
 @vindex message-from-style
@@ -738,7 +910,7 @@ ship it off again.  By default, this variable makes sure that the old
 generated @code{Message-ID} is deleted, and a new one generated.  If
 this isn't done, the entire empire would probably crumble, anarchy would
 prevail, and cats would start walking on two legs and rule the world.
-Allegedly.  
+Allegedly.
 
 @item message-default-headers
 @vindex message-default-headers
@@ -757,6 +929,11 @@ have to deal with users that use these evil tools, in which case you may
 set this variable to a regexp that matches these prefixes.  Myself, I
 just throw away non-compliant mail.
 
+@item message-alternative-emails
+@vindex message-alternative-emails
+A regexp to match the alternative email addresses.  The first matched
+address (not primary one) is used in the @code{From} field.
+
 @end table
 
 
@@ -784,7 +961,7 @@ buffers that are initialized as mail.
 
 
 @node Mail Variables
-@section Mail Variables 
+@section Mail Variables
 
 @table @code
 @item message-send-mail-function
@@ -825,7 +1002,7 @@ This required header will be filled out with the result of the
 
 @item Subject
 @cindex Subject
-This required header will be prompted for if not present already. 
+This required header will be prompted for if not present already.
 
 @item Newsgroups
 @cindex Newsgroups
@@ -851,11 +1028,10 @@ This optional header will be computed by Message.
 @findex system-name
 @cindex Sun
 This required header will be generated by Message.  A unique ID will be
-created based on the date, time, user name and system name.  Message will
-use @code{mail-host-address} as the fully qualified domain name (FQDN)
-of the machine if that variable is defined.  If not, it will use
-@code{system-name}, which doesn't report a FQDN on some machines --
-notably Suns.
+created based on the date, time, user name and system name.  Message
+will use @code{system-name} to determine the name of the system.  If
+this isn't a fully qualified domain name (FQDN), Message will use
+@code{mail-host-address} as the FQDN of the machine.
 
 @item X-Newsreader
 @cindex X-Newsreader
@@ -928,21 +1104,21 @@ to this list.
 Valid checks are:
 
 @table @code
-@item subject-cmsg 
+@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 
+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 
+@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 
+@item long-lines
 @cindex long lines
 Check for too long lines.
 @item control-chars
@@ -964,7 +1140,7 @@ 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 
+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
@@ -999,7 +1175,7 @@ buffers that are initialized as news.
 @item message-send-news-function
 @vindex message-send-news-function
 Function used to send the current buffer as news.  The default is
-@code{message-send-news}. 
+@code{message-send-news}.
 
 @item message-post-method
 @vindex message-post-method
@@ -1013,10 +1189,21 @@ posting a prepared news message.
 @section Various Message Variables
 
 @table @code
+@item message-default-charset
+@vindex message-default-charset
+@cindex charset
+Symbol naming a @sc{mime} charset.  Non-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-@sc{mime}
+translation process.
+
 @item message-signature-separator
 @vindex message-signature-separator
 Regexp matching the signature separator.  It is @samp{^-- *$} by
-default. 
+default.
 
 @item mail-header-separator
 @vindex mail-header-separator
@@ -1025,12 +1212,12 @@ follows this line--} by default.
 
 @item message-directory
 @vindex message-directory
-Directory used by many mailey things.  The default is @file{~/Mail/}. 
+Directory used by many mailey things.  The default is @file{~/Mail/}.
 
 @item message-signature-setup-hook
 @vindex message-signature-setup-hook
 Hook run when initializing the message buffer.  It is run after the
-headers have been inserted but before the signature has been inserted. 
+headers have been inserted but before the signature has been inserted.
 
 @item message-setup-hook
 @vindex message-setup-hook
@@ -1039,7 +1226,7 @@ but before yanked text is inserted.
 
 @item message-header-setup-hook
 @vindex message-header-setup-hook
-Hook called narrowed to the headers after initializing the headers. 
+Hook called narrowed to the headers after initializing the headers.
 
 For instance, if you're running Gnus and wish to insert a
 @samp{Mail-Copies-To} header in all your news articles and all messages
@@ -1069,9 +1256,8 @@ If you want to add certain headers before sending, you can use the
 (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"))
+   "X-In-No-Sense: Nonsense"
+   "X-Whatever: no"))
 @end lisp
 
 This function won't add the header if the header is already present.
@@ -1130,10 +1316,10 @@ A function to be called if @var{predicate} returns non-@code{nil}.
 
 @table @code
 
-@item message-fcc-handler-function 
-@vindex message-fcc-handler-function 
+@item message-fcc-handler-function
+@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
+called with the name of the file to store the article in.  The default
 function is @code{message-output} which saves in Unix mailbox format.
 
 @item message-courtesy-message
@@ -1143,7 +1329,7 @@ the mailed copy.  If the string contains the format spec @samp{%s}, the
 newsgroups the article has been posted to will be inserted there.  If
 this variable is @code{nil}, no such courtesy message will be added.
 The default value is @samp{"The following message is a courtesy copy of
-an article\nthat has been posted to %s as well.\n\n"}. 
+an article\nthat has been posted to %s as well.\n\n"}.
 
 @end table
 
@@ -1164,6 +1350,18 @@ 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.
 
+@item message-use-multi-frames
+@vindex message-use-multi-frames
+If non-@code{nil}, generate new frames. The default is @code{nil}.
+
+@item message-delete-frame-on-exit
+@vindex message-delete-frame-on-exit
+The @code{message-delete-frame-on-exit} variable says whether to delete
+the frame after sending the message or killing the message buffer. If it
+is @code{nil} (which is the default), don't delete the frame. If it is
+@code{ask}, ask wheter to delete the frame. If it is @code{t}, always
+delete the frame.
+
 @item message-max-buffers
 @vindex message-max-buffers
 This variable says how many old message buffers to keep.  If there are
@@ -1196,7 +1394,7 @@ If non-@code{nil}, kill the buffer immediately on exit.
 When Message is being used from a news/mail reader, the reader is likely
 to want to perform some task after the message has been sent.  Perhaps
 return to the previous window configuration or mark an article as
-replied.  
+replied.
 
 @vindex message-kill-actions
 @vindex message-postpone-actions
@@ -1209,7 +1407,7 @@ C-d} which postpones the message editing and buries the message buffer,
 and @kbd{C-c C-k} which kills the message buffer.  Each of these actions
 have lists associated with them that contains actions to be executed:
 @code{message-send-actions}, @code{message-exit-actions},
-@code{message-postpone-actions}, and @code{message-kill-actions}.  
+@code{message-postpone-actions}, and @code{message-kill-actions}.
 
 Message provides a function to interface with these lists:
 @code{message-add-action}.  The first parameter is the action to be