[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1. 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.

1.1 New Mail Message  Editing a brand new mail message.
1.2 New News Message  Editing a brand new news message.
1.3 Reply  Replying via mail.
1.4 Wide Reply  Responding to all people via mail.
1.5 Followup  Following up via news.
1.6 Canceling News  Canceling a news article.
1.7 Superseding  Superseding a message.
1.8 Forwarding  Forwarding a message via news or mail.
1.9 Resending  Resending a mail message.
1.10 Bouncing  Bouncing a mail message.
1.11 Mailing Lists  Send mail to mailing lists.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1 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 are nil, those two headers will be empty.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.2 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 are nil, those two headers will be empty.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.3 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 (see section 5.1 Responses), 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")
               (list (cons 'To (mail-fetch-field "sender"))))

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 list. In this case, it returns ((To . "Whom")) 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.

Each list element should be a cons, where the CAR should be the name of a header (e.g. Cc) and the CDR should be the header value (e.g. `larsi@ifi.uio.no'). All these headers will be inserted into the head of the outgoing mail.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.4 Wide Reply

The message-wide-reply pops up a message buffer that's a wide reply to the message in the current buffer. A wide reply is a reply that goes out to all people listed in the To, From (or Reply-to) and Cc headers.

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 1.3 Reply).

Addresses that match the message-dont-reply-to-names regular expression will be removed from the Cc header.

If message-wide-reply-confirm-recipients is non-nil you will be asked to confirm that you want to reply to multiple recipients. The default is nil.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.5 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 1.3 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.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.6 Canceling News

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

The value of message-cancel-message is inserted in the body of the cancel message. The default is `I am canceling my own article.'.

When Message posts news messages, it inserts Cancel-Lock headers by default. This is a cryptographic header that ensures that only you can cancel your own messages, which is nice. The downside is that if you lose your `.emacs' file (which is where Gnus stores the secret cancel lock password (which is generated automatically the first time you use this feature)), you won't be able to cancel your message. If you want to manage a password yourself, you can put something like the following in your `~/.gnus.el' file:

(setq canlock-password "geheimnis"
      canlock-password-for-verify canlock-password)

Whether to insert the header or not is controlled by the message-insert-canlock variable.

Not many news servers respect the Cancel-Lock header yet, but this is expected to change in the future.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.7 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

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.8 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.

All headers that match this regexp will be deleted when forwarding a message.

A list of functions that are called to generate a subject header for forwarded messages. The subject generated by the previous function is passed into each successive function.

The provided functions are:

Source of article (author or newsgroup), in brackets followed by the subject.

Subject of article with `Fwd:' prepended to it.

If this variable is t, the subjects of forwarded messages have the evidence of previous forwards (such as `Fwd:', `Re:', `(fwd)') removed before the new subject is constructed. The default value is nil.

If this variable is t (the default), forwarded messages are included as inline MIME RFC822 parts. If it's nil, forwarded messages will just be copied inline to the new message, like previous, non MIME-savvy versions of Gnus would do.

If non-nil, put forwarded message before signature, else after.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.9 Resending

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

Headers that match the message-ignored-resent-headers regexp will be removed before sending the message.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.10 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. A bounced message is typically a mail you've sent out that has been returned by some mailer-daemon as undeliverable.

Headers that match the message-ignored-bounced-headers regexp will be removed before popping up the buffer. The default is `^\\(Received\\|Return-Path\\|Delivered-To\\):'.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.11 Mailing Lists

Sometimes while posting to mailing lists, the poster needs to direct followups to the post to specific places. The Mail-Followup-To (MFT) was created to enable just this. Three example scenarios where this is useful:

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.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.11.1 Composing a correct MFT header automagically

The first step in getting Gnus to automagically generate a MFT header in posts you make is to give Gnus a list of the mailing lists addresses you are subscribed to. You can do this in more than one way. The following variables would come in handy.

This should be a list of addresses the user is subscribed to. Its default value is nil. Example:
(setq message-subscribed-addresses
      '("ding@gnus.org" "bing@noose.org"))

This should be a list of regexps denoting the addresses of mailing lists subscribed to. Default value is nil. Example: If you want to achieve the same result as above:
(setq message-subscribed-regexps

This can be a list of functions to be called (one at a time!!) to determine the value of MFT headers. It is advisable that these functions not take any arguments. Default value is nil.

There is a pre-defined function in Gnus that is a good candidate for this variable. gnus-find-subscribed-addresses is a function that returns a list of addresses corresponding to the groups that have the subscribed (see section `Group Parameters' in The Gnus Manual) group parameter set to a non-nil value. This is how you would do it.

(setq message-subscribed-address-functions

You might be one organized human freak and have a list of addresses of all subscribed mailing lists in a separate file! Then you can just set this variable to the name of the file and life would be good.

You can use one or more of the above variables. All their values are "added" in some way that works :-)

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 - 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 addresses (in the To: and Cc: headers) is checked to see if one of them is a list address you are subscribed to. If none of them is a list address, then no MFT is generated; otherwise, a MFT is added to the other headers and set to the value of all addresses in To: and Cc:

Hm. "So", you ask, "what if I send an email to a list I am not subscribed to? I want my MFT to say that I want an extra copy." (This is supposed to be interpreted by others the same way as if there were no MFT, but you can use an explicit MFT to override someone else's to-address group parameter.) The function message-generate-unsubscribed-mail-followup-to might come in handy. It is bound to C-c C-f C-a by default. In any case, you can insert a MFT of your own choice; C-c C-f C-m (message-goto-mail-followup-to) will help you get started.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.11.2 Honoring an MFT post

When you followup to a post on a mailing list, and the post has a MFT header, Gnus' action will depend on the value of the variable message-use-mail-followup-to. This variable can be one of:

Always honor MFTs. The To: and Cc: headers in your followup will be derived from the MFT header of the original post. This is the default.

Always dishonor MFTs (just ignore the darned thing)

Gnus will prompt you for an action.

It is considered good netiquette to honor MFT, as it is assumed the fellow who posted a message knows where the followups need to go better than you do.

[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by XEmacs Webmaster on October, 2 2007 using texi2html