Go to the first, previous, next, last section, table of contents.

# 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 point in the buffer where the message is and call the required command. `Message` will then pop up a new `message` mode buffer with appropriate headers filled out, and the user can edit the message before sending it.

- New Mail Message: Editing a brand new mail message.
- New News Message: Editing a brand new news message.
- Reply: Replying via mail.
- Wide Reply: Responding to all people via mail.
- Followup: Following up via news.
- Canceling News: Canceling a news article.
- Superseding: Superseding a message.
- Forwarding: Forwarding a message via news or mail.
- Resending: Resending a mail message.
- Bouncing: Bouncing a mail message.

## New Mail Message

The `message-mail` command pops up a new message buffer.

Two optional parameters are accepted: The first will be used as the `To` header and the second as the `Subject` header. If these aren't present, those two headers will be empty.

## New News Message

The `message-news` command pops up a new message buffer.

This function accepts two optional parameters. The first will be used as the `Newsgroups` header and the second as the `Subject` header. If these aren't present, those two headers will be empty.

## Reply

The `message-reply` function pops up a message buffer that's a reply to the message in the current buffer.

Message uses the normal methods to determine where replies are to go, but you can change the behavior to suit your needs by fiddling with the `message-reply-to-function` variable.

If you want the replies to go to the `Sender` instead of the `From`, you could do something like this:

    (setq message-reply-to-function
          (lambda ()
           (cond ((equal (mail-fetch-field "from") "somebody")
                   (mail-fetch-field "sender"))
                 (t
                  nil))))

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 `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 car should be the name of an header (eg. `Cc`) and the cdr should be the header value (eg. ``larsi@ifi.uio.no'`). All these headers will be inserted into the head of the outgoing mail.

## Wide Reply

The `message-wide-reply` pops up a message buffer that's a wide reply to the message in the current buffer.

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 `message-wide-reply-to-function`. It is used in the same way as `message-reply-to-function` (see section Reply).

Addresses that matches the `rmail-dont-reply-to-names` regular expression will be removed from the `Cc` header.

## Followup

The `message-followup` command pops up a message buffer that's a followup to the message in the current buffer.

Message uses the normal methods to determine where followups are to go, but you can change the behavior to suit your needs by fiddling with the `message-followup-to-function`. It is used in the same way as `message-reply-to-function` (see section Reply).

The `message-use-followup-to` variable says what to do about `Followup-To` headers. If it is `use`, always use the value. If it is `ask` (which is the default), ask whether to use the value. If it is `t`, use the value unless it is ``poster'`. If it is `nil`, don't use the value.

## Canceling News

The `message-cancel-news` command cancels the article in the current buffer.

## Superseding

The `message-supersede` command pops up a message buffer that will supersede the message in the current buffer.

Headers matching the `message-ignored-supersedes-headers` are removed before popping up the new message buffer. The default is ``^Path:\\|^Date\\|^NNTP-Posting-Host:\\|^Xref:\\|^Lines:\\|^Received:\\|^X-From-Line:\\|Return-Path:'`.

## Forwarding

The `message-forward` command pops up a message buffer to forward the message in the current buffer. If given a prefix, forward using news.

`message-forward-start-separator`
  Delimiter inserted before forwarded messages. The default is ``------- Start of forwarded message -------\n'`.
`message-forward-end-separator`
  Delimiter inserted after forwarded messages. The default is ``------- End of forwarded message -------\n'`.
`message-signature-before-forwarded-message`
  If this variable is `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.
`message-included-forward-headers`
  Regexp matching header lines to be included in forwarded messages.

## Resending

The `message-resend` command will prompt the user for an address and resend the message in the current buffer to that address.

Headers the match the `message-ignored-resent-headers` regexp will be removed before sending the message. The default is ``^Return-receipt'`.

## Bouncing

The `message-bounce` command will, if the current buffer contains a bounced mail message, pop up a message buffer stripped of the bounce information.

Headers that match the `message-ignored-bounced-headers` regexp will be removed before popping up the buffer. The default is ``^Received:'`.

Go to the first, previous, next, last section, table of contents.