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 messages, it has to generate all headers itself to ensure that mail and news copies of messages look sufficiently similar.
message-generate-headers-first
nil
, generate all headers before starting to compose the
message.
message-from-style
From
headers should look. There are four legal
values:
nil
parens
angles
default
angles
if that doesn't require quoting, and
parens
if it does. If even parens
requires quoting, use
angles
anyway.
message-deletable-headers
*post-buf*
buffer, edit the Newsgroups
line, and
ship it off again. By default, this variable makes sure that the old
generated 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.
message-default-headers
message-required-mail-headers
(From Date Subject (optional . In-Reply-To) Message-ID Lines
(optional . X-Mailer))
by default.
message-ignored-mail-headers
message-default-mail-headers
message-send-mail-function
message-send-mail-with-sendmail
. If you prefer using MH
instead, set this variable to message-send-mail-with-mh
.
message-mh-deletable-headers
nil
(which is
the default), these headers will be removed before mailing. Set it to
nil
if your MH can handle these headers.
message-required-news-headers
a list of header symbols. These
headers will either be automatically generated, or, if that's
impossible, they will be prompted for. The following symbols are legal:
From
message-make-from
function, which depends on the
message-from-style
, user-full-name
,
user-mail-address
variables.
Subject
Newsgroups
Organization
message-user-organization
variable.
message-user-organization-file
will be used if this variable is
t
. This variable can also be a string (in which case this string
will be used), or it can be a function (which will be called with no
parameters and should return a string to be used).
Lines
Message-ID
mail-host-address
as the fully qualified domain name (FQDN)
of the machine if that variable is defined. If not, it will use
system-name
, which doesn't report a FQDN on some machines --
notably Suns.
X-Newsreader
message-newsreader
local variable.
X-Mailer
message-mailer
local variable, unless there already is an
X-Newsreader
header present.
In-Reply-To
Date
and From
header of the article being replied to.
Expires
message-expires
variable. It is highly deprecated and shouldn't
be used unless you know what you're doing.
Distribution
message-distribution-function
variable. It is a deprecated and
much misunderstood header.
Path
message-user-path
further controls how this
Path
header is to look. If it is nil
, use the server name
as the leaf node. If it is a string, use the string. If it is neither
a string nor nil
, use the user name only. However, it is highly
unlikely that you should need to fiddle with this variable at all.
In addition, you can enter conses into this list. The 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
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
Mime-Version: 1.0
, you should enter (Mime-Version . "1.0")
into the list. If you want to insert a funny quote, you could enter
something like (X-Yow . yow)
into the list. The function
yow
will then be called without any arguments.
If the list contains a cons where the car of the cons is
optional
, the cdr of this cons will only be inserted if it is
non-nil
.
Other variables for customizing outgoing news articles:
message-syntax-checks
nil
, Message will attempt to check the legality of the
headers, as well as some other stuff, before posting. You can control
the granularity of the check by adding or removing elements from this
list. Legal elements are:
subject-cmsg
sender
Sender
header if the From
header looks odd.
multiple-headers
sendsys
message-id
Message-ID
looks ok.
from
From
header seems nice.
long-lines
control-chars
size
new-text
signature
approved
Approved
header, which is
something only moderators should include.
empty
empty-headers
existing-newsgroups
Newsgroups
and
Followup-To
headers exist.
valid-newsgroups
Newsgroups
and Followup-to
headers
are valid syntactically.
shorten-followup-to
Followup-to
header to shorten the number
of groups to post to.
message-ignored-news-headers
message-default-news-headers
message-send-news-function
message-send-news
.
message-post-method
message-signature-separator
mail-header-separator
message-directory
message-autosave-directory
message-signature-setup-hook
message-setup-hook
message-header-setup-hook
(defun my-message-header-setup-hook () (let ((group (or gnus-newsgroup-name ""))) (when (or (message-fetch-field "newsgroups") (gnus-group-find-parameter group 'to-address) (gnus-group-find-parameter group 'to-list)) (insert "Mail-Copies-To: never\n")))) (add-hook 'message-header-setup-hook 'my-message-header-setup-hook)
message-send-hook
message-add-header
function in this hook. For instance:
(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"))This function won't add the header if the header is already present.
message-send-mail-hook
message-send-news-hook
message-sent-hook
message-mode-syntax-table
message-fcc-handler-function
rmail-output
which saves in Unix mailbox format.
message-courtesy-message
nil
, no such courtesy message will be added.
The default value is `"The following message is a courtesy copy of
an article\nthat has been posted to %s as well.\n\n"'.
Message will generate new buffers with unique buffer names when you request a message buffer. When you send the message, the buffer isn't normally killed off. Its name is changed and a certain number of old message buffers are kept alive.
message-generate-new-buffers
nil
, generate new buffers. The default is t
. If
this is a function, call that function with three parameters: The type,
the to address and the group name. (Any of these may be nil
.)
The function should return the new buffer name.
message-max-buffers
nil
, no old message buffers
will ever be killed.
message-send-rename-function
(setq message-send-rename-function 'ignore)
message-kill-buffer-on-exit
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.
The user may exit from the message buffer in various ways. The most
common is C-c C-c, which sends the message and exits. Other
possibilities are C-c C-s which just sends the message, C-c
C-d which postpones the message editing and buries the message buffer,
and C-c C-k which kills the message buffer. Each of these actions
have lists associated with them that contains actions to be executed:
message-send-actions
, message-exit-actions
,
message-postpone-actions
, and message-kill-actions
.
Message provides a function to interface with these lists:
message-add-action
. The first parameter is the action to be
added, and the rest of the arguments are which lists to add this action
to. Here's an example from Gnus:
(message-add-action `(set-window-configuration ,(current-window-configuration)) 'exit 'postpone 'kill)
This restores the Gnus window configuration when the message buffer is killed, postponed or exited.
An action can be either: a normal function, or a list where the
car
is a function and the cdr
is the list of arguments, or
a form to be eval
ed.
Go to the first, previous, next, last section, table of contents.