@include gnus-overrides.texi
-@setfilename message
+@setfilename message.info
@settitle Message Manual
+@include docstyle.texi
@synindex fn cp
@synindex vr cp
@synindex pg cp
@copying
This file documents Message, the Emacs message composition mode.
-Copyright @copyright{} 1996-2012 Free Software Foundation, Inc.
+Copyright @copyright{} 1996--2016 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.3 or
any later version published by the Free Software Foundation; with no
-Invariant Sections, with the Front-Cover texts being ``A GNU Manual'',
+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.''
+modify this GNU manual.''
@end quotation
@end copying
@c Adjust ../Makefile.in if you change the following lines:
Message is distributed with Gnus. The Gnus distribution
@c
-corresponding to this manual is Ma Gnus v0.2
+corresponding to this manual is Ma Gnus v0.14
@node Interface
the normal methods for determining the To header will be used.
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
+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.
@table @code
@item message-forward-ignored-headers
@vindex message-forward-ignored-headers
-All headers that match this regexp will be deleted when forwarding a message.
+In non-@code{nil}, all headers that match this regexp will be deleted
+when forwarding a message.
+
+@item message-forward-included-headers
+@vindex message-forward-included-headers
+In non-@code{nil}, only headers that match this regexp will be kept
+when forwarding a message.
@item message-make-forward-subject-function
@vindex message-make-forward-subject-function
@end itemize
-Gnus honors the MFT header in other's messages (i.e. while following
+Gnus honors the MFT header in other's messages (i.e., while following
up to someone else's post) and also provides support for generating
sensible MFT headers for outgoing messages as well.
Now you are all set. Just start composing a message as you normally do.
And just send it; as always. Just before the message is sent out, Gnus'
MFT generation thingy kicks in and checks if the message already has a
-MFT field. If there is one, it is left alone. (Except if it's empty -
+MFT field. If there is one, it is left alone. (Except if it's empty;
in that case, the field is removed and is not replaced with an
automatically generated one. This lets you disable MFT generation on a
per-message basis.) If there is none, then the list of recipient
@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. (Iff @samp{Cc} header is not present, @samp{Bcc}
-header will be used instead.)
+Replace contents of @samp{To} header with contents of @samp{Cc}
+header (or the @samp{Bcc} header, if there is no @samp{Cc} header).
@item C-c C-f w
@kindex C-c C-f w
so on.
The @acronym{S/MIME} support in Message (and @acronym{MML}) require
-OpenSSL. OpenSSL performs the actual @acronym{S/MIME} sign/encrypt
+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
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
+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,
@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
+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.
@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
-Emacs interface to the PGP implementations, PGG (@pxref{Top, ,PGG,
-pgg, PGG Manual}), is included, but Mailcrypt is also supported.
-@xref{PGP Compatibility}.
+implementations such as PGP 2.x and PGP 5.x are also supported. The
+default Emacs interface to the PGP implementation is EasyPG
+(@pxref{Top,,EasyPG Assistant User's Manual, epa, EasyPG Assistant
+User's Manual}), but PGG (@pxref{Top, ,PGG, pgg, PGG Manual}) and
+Mailcrypt are also supported. @xref{PGP Compatibility}.
@cindex gpg-agent
Message internally calls GnuPG (the @command{gpg} command) to perform
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
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
+solution is to use PGP 2.x instead (e.g., if you use @code{pgg}, set
@code{pgg-default-scheme} to @code{pgp}). You could also convince your
-fellow PGP 2.x users to convert to GnuPG.
+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
Headers in this list that were previously generated by Message will be
deleted before posting. Let's say you post an article. Then you decide
to post it again to some other group, you naughty boy, so you jump back
-to the @code{*post-buf*} buffer, edit the @code{Newsgroups} line, and
+to the @file{*post-buf*} buffer, edit the @code{Newsgroups} line, and
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
requires the @acronym{POP}-before-@acronym{SMTP} authentication.
@xref{POP before SMTP, , POP before SMTP, gnus, The Gnus Manual}.
+@cindex X-Message-SMTP-Method
+If you have a complex @acronym{SMTP} setup, and want some messages to
+go via one mail server, and other messages to go through another, you
+can use the @samp{X-Message-SMTP-Method} header. These are the
+supported values:
+
+@table @samp
+@item smtpmail
+
+@example
+X-Message-SMTP-Method: smtp smtp.fsf.org 587
+@end example
+
+This will send the message via @samp{smtp.fsf.org}, using port 587.
+
+@example
+X-Message-SMTP-Method: smtp smtp.fsf.org 587 other-user
+@end example
+
+This is the same as the above, but uses @samp{other-user} as the user
+name when authenticating. This is handy if you have several
+@acronym{SMTP} accounts on the same server.
+
+@item sendmail
+
+@example
+X-Message-SMTP-Method: sendmail
+@end example
+
+This will send the message via the locally installed sendmail/exim/etc
+installation.
+
+@end table
+
@item message-mh-deletable-headers
@vindex message-mh-deletable-headers
Most versions of MH doesn't like being fed messages that contain the
headers in this variable. If this variable is non-@code{nil} (which is
the default), these headers will be removed before mailing when sending
-messages via MH. Set it to @code{nil} if your MH can handle these
+messages via MH@. Set it to @code{nil} if your MH can handle these
headers.
@item message-qmail-inject-program
This should be a list of strings, one string for each argument. It
may also be a function.
-For e.g., if you wish to set the envelope sender address so that bounces
+E.g., if you wish to set the envelope sender address so that bounces
go to the right place or to deal with listserv's usage of that address, you
might set this variable to @code{'("-f" "you@@some.where")}.
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})
+and @code{message-user-mail-address} (i.e., @code{user-mail-address})
until a probably valid fully qualified domain name (FQDN) was found.
@item User-Agent
unlikely that you should need to fiddle with this variable at all.
@end table
-@findex yow
@cindex Mime-Version
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 @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")}
-into the list. If you want to insert a funny quote, you could enter
-something like @code{(X-Yow . yow)} into the list. The function
-@code{yow} will then be called without any arguments.
+take no arguments, and 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")} into the list.
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
Hallvard B Furuseth <h.b.furuseth@@usit.uio.no> writes:
@end example
-@c FIXME: Add `message-insert-formatted-citation-line' and
-@c `message-citation-line-format'
+@c FIXME: Add 'message-insert-formatted-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.
-Note that Gnus provides a feature where clicking on `writes:' hides the
+Note that Gnus provides a feature where clicking on @samp{writes:} hides the
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, ,
@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
+happen for message buffers. If non-@code{nil} (the default), also turn on
auto-fill in message buffers.
@item message-signature-separator
@item message-send-mail-hook
@vindex message-send-mail-hook
-Hook run before sending mail messages. This hook is run very late --
+Hook run before sending mail messages. This hook is run very late:
just before the message is actually sent as mail.
@item message-send-news-hook
@vindex message-send-news-hook
-Hook run before sending news messages. This hook is run very late --
+Hook run before sending news messages. This hook is run very late:
just before the message is actually sent as news.
@item message-sent-hook
@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
+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.