@page
@vskip 0pt plus 1filll
-Copyright @copyright{} 1996, 1997, 1998, 1999, 2000, 2001, 2002
+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
* Key Index:: List of Message mode keys.
@end menu
-This manual corresponds to Message 5.10.1. Message is distributed
+This manual corresponds to Message v5.10.1. Message is distributed
with the Gnus distribution bearing the same version number as this
manual.
header will be used.
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
+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.
If this variable is @code{t} (the default), forwarded messages are
included as inline @acronym{MIME} RFC822 parts. If it's @code{nil}, forwarded
messages will just be copied inline to the new message, like previous,
-non @acronym{MIME}-savvy versions of gnus would do.
+non @acronym{MIME}-savvy versions of Gnus would do.
@item message-forward-before-signature
@vindex message-forward-before-signature
this variable. @code{gnus-find-subscribed-addresses} is a function
that returns a list of addresses corresponding to the groups that have
the @code{subscribed} (@pxref{Group Parameters, ,Group Parameters,
-gnus, The Gnus Manual}) group parameter set to a non-nil value. This
-is how you would do it.
+gnus, The Gnus Manual}) group parameter set to a non-@code{nil} value.
+This is how you would do it.
@lisp
(setq message-subscribed-address-functions
fetches the contents of the @samp{To:} header in the current mail
buffer, and appends the current @code{user-mail-address}.
-If the optional argument @code{include-cc} is non-nil, the addresses in
-the @samp{Cc:} header are also put into the @samp{Mail-Followup-To:}
-header.
+If the optional argument @code{include-cc} is non-@code{nil}, the
+addresses in the @samp{Cc:} header are also put into the
+@samp{Mail-Followup-To:} header.
@end table
message a single part tag will be used. This way, message mode will
do the Right Thing (TM) with signed/encrypted multipart messages.
-@vindex mml-signencrypt-style-alist
-By default, when encrypting a message, Gnus will use the
-``signencrypt'' mode. If you would like to disable this for a
-particular message, give the @code{mml-secure-message-encrypt-*}
-command a prefix argument. (for example, @kbd{C-u C-c C-m c p}).
-Additionally, by default Gnus will separately sign, then encrypt a
-message which has the mode signencrypt. If you would like to change
-this behavior you can customize the @code{mml-signencrypt-style-alist}
-variable. For example:
-
-
-@lisp
-(setq mml-signencrypt-style-alist '(("smime" combined)
- ("pgp" combined)
- ("pgpmime" combined)))
-@end lisp
-
-Will cause Gnus to sign and encrypt in one pass, thus generating a
-single signed and encrypted part. Note that combined sign and encrypt
-does not work with all supported OpenPGP implementations (in
-particular, @acronym{PGP} version 2 do not support this).
-
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
RFC822 headers. They only operate on the @acronym{MIME} object. Keep this
in mind before sending mail with a sensitive Subject line.
+By default, when encrypting a message, Gnus will use the
+``signencrypt'' mode, which means the message is both signed and
+encrypted. If you would like to disable this for a particular
+message, give the @code{mml-secure-message-encrypt-*} command a prefix
+argument, e.g., @kbd{C-u C-c C-m c p}.
+
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
so on.
The @acronym{S/MIME} support in Message (and MML) require OpenSSL. OpenSSL
-perform the actual @acronym{S/MIME} sign/encrypt operations. OpenSSL can
+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}
The @file{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 stored unencrypted in the file, so take
-care in handling it.
+@emph{Note!} Your private key is now stored unencrypted in the file,
+so take care in handling it. Storing encrypted keys on the disk are
+supported, and Gnus will ask you for a passphrase before invoking
+OpenSSL. Read the OpenSSL documentation for how to achieve this. If
+you use unencrypted keys (e.g., if they are on a secure storage, or if
+you are on a secure single user machine) simply press @code{RET} at
+the passphrase prompt.
@subsection Using PGP/MIME
@acronym{PGP/MIME} requires an external OpenPGP implementation, such
-as @uref{http://www.gnupg.org/, GNU Privacy Guard}. One Emacs
-interface to OpenPGP implementations, PGG (@pxref{Top, ,PGG, pgg, PGG
-Manual}), is included, but Mailcrypt and Florian Weimer's
+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.
@vindex gpg-temp-directory
directory specified by @code{gpg-temp-directory} have permissions
0700.
-Creating your own OpenPGP key is described in detail in the
-documentation of your OpenPGP implementation, so we refer to it.
+Creating your own key is described in detail in the documentation of
+your PGP implementation, so we refer to it.
+
+If you have imported your old PGP 2.x key into GnuPG, and want to send
+signed and encrypted messages to your fellow PGP 2.x users, you'll
+discover that the receiver cannot understand what you send. One
+solution is to use PGP 2.x instead (i.e., if you use @code{pgg}, set
+@code{pgg-default-scheme} to @code{pgp}). If you do want to use
+GnuPG, you can use a compatibility script called @code{gpg-2comp}
+available from
+@uref{http://muppet.faveve.uni-stuttgart.de/~gero/gpg-2comp/}. You
+could also convince your fellow PGP 2.x users to convert to GnuPG.
+@vindex mml-signencrypt-style-alist
+As a final workaround, you can make the sign and encryption work in
+two steps; separately sign, then encrypt a message. If you would like
+to change this behavior you can customize the
+@code{mml-signencrypt-style-alist} variable. For example:
+
+@lisp
+(setq mml-signencrypt-style-alist '(("smime" separate)
+ ("pgp" separate)
+ ("pgpauto" separate)
+ ("pgpmime" separate)))
+@end lisp
+
+This causes to sign and encrypt in two passes, thus generating a
+message that can be understood by PGP version 2.
+
+(Refer to @uref{http://www.gnupg.org/gph/en/pgp2x.html} for more
+information about the problem.)
@node Various Commands
@section Various Commands
@findex yow
@cindex Mime-Version
-In addition, you can enter conses into this list. The car of this cons
+In addition, you can enter conses into this list. The @sc{car} of this cons
should be a symbol. This symbol's name is the name of the header, and
-the cdr can either be a string to be entered verbatim as the value of
+the @sc{cdr} can either be a string to be entered verbatim as the value of
this header, or it can be a function to be called. This function should
return a string to be inserted. For instance, if you want to insert
@code{Mime-Version: 1.0}, you should enter @code{(Mime-Version . "1.0")}
something like @code{(X-Yow . yow)} into the list. The function
@code{yow} will then be called without any arguments.
-If the list contains a cons where the car of the cons is
-@code{optional}, the cdr of this cons will only be inserted if it is
+If the list contains a cons where the @sc{car} of the cons is
+@code{optional}, the @sc{cdr} of this cons will only be inserted if it is
non-@code{nil}.
If you want to delete an entry from this list, the following Lisp
cited text. If you change the citation line too much, readers of your
messages will have to adjust their Gnus, too. See the variable
@code{gnus-cite-attribution-suffix}. @xref{Article Highlighting, ,
-Article Highlighting, gnus}, for details.
+Article Highlighting, gnus, The Gnus Manual}, for details.
@item message-yank-prefix
@vindex message-yank-prefix
@item message-cancel-hook
@vindex message-cancel-hook
-Hook run when cancelling news articles.
+Hook run when canceling news articles.
@item message-mode-syntax-table
@vindex message-mode-syntax-table
Alist of ways to send outgoing messages. Each element has the form
@lisp
-(TYPE PREDICATE FUNCTION)
+(@var{type} @var{predicate} @var{function})
@end lisp
@table @var
killed, postponed or exited.
An @dfn{action} can be either: a normal function, or a list where the
-@code{car} is a function and the @code{cdr} is the list of arguments, or
+@sc{car} is a function and the @sc{cdr} is the list of arguments, or
a form to be @code{eval}ed.