This file documents Message, the Emacs message composition mode.

このファイルは Emacs のメッセージ作成モードである Message に関する説明文書です。

Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no 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''.

この文書を、フリーソフトウェア財団発行の GNU フリー文書利用許諾契約書第 1.1 版またはそれ以降の版が定める条件の下で複製、配布、あるいは変更することを許可します。変更不可部分は指定しません。「A GNU Manual」は表表紙テキスト、以下の (a) は裏表紙テキストです。この利用許諾契約書の複写は「Emacs manual」の「GNU フリー文書利用許諾契約書」という章に含まれています。

(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify this GNU Manual, like GNU software.  Copies published by the Free Software Foundation raise funds for GNU development.''

(a) FSF の裏表紙テキスト:「あなたにはこの GNU Manual を GNU ソフトウェアのように複製したり変更する自由があります。複製はフリーソフトウェア財団によって出版されました。(フリーソフトウェア財団は) GNU の開発のために必要な資金を集めています。」

This document is part of a collection distributed under the GNU Free Documentation License.  If you want to distribute this document separately from the collection, you can do so by adding a copy of the license to the document, as described in section 6 of the license.

この文書は「GNU フリー文書利用許諾契約書」に基づいて配布された収集著作物の一部です。もしあなたがこの文書を収集著作物から分離して配布したいときは、契約書の第 6 項に記述されているように、文書に契約書の複写を付加することによって、行なうことができます。

Message
*******

Gnus の全てのメッセージの作成 (メールとニュースの両方) はメッセージモードバッファで行われます。

このマニュアルは T-gnus 6.17 Message に対応します。Message はこのマニュアルと同じ版番号の Gnus の配布と共に配布されます。

界面
**

プログラム (もしくは人) がメッセージに反応したいとき---返答、フォローアップ、転送、取り消し---そのプログラム (もしくは人) はメッセージがあるバッファにポイントを入れて必要な命令を呼び出すだけで良いべきです。そうすると Message は新しい message モードバッファを適切なヘッダーを入れて作り出し、利用者はメッセージを送る前にそれを編集できます。

新しいメールメッセージ
===========

message-mail 命令は新しいバッファを作り表示します。

2つの選択自由な引数が受け付けられます: 最初のものは To ヘッダーとして、2番目は Subject ヘッダーとして使われる。もしこれらが nil であるなら、それらの2つのヘッダーは空になります。

新しいニュースメッセージ
============

命令 message-news は新しいメッセージバッファを作り、表示します。

この関数は2つの選択自由な引数を受け付けます。最初のものは Newsgroups ヘッダーとして、2つめのものは Subject ヘッダーとして使われます。もしこれらが nil であるなら、それらの2つのヘッダーは空になります。

返答
==

関数 message-reply は現在のバッファのメッセージへの返答のメッセージバッファを作り、表示します。

Message は何処に返答が行くかを普通の方法 (see Responses) で決定しますが、変数 message-reply-to-function を弄ることであなたの要求に合うようにその振る舞いを変える事ができます。

From の代わりに Sender に返答を送りたいのであれば、このような事ができます:

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

この関数はそれが返答しようとする記事のヘッダー部分に限定された範囲で呼ばれます。

ご覧の通り、この関数はそれが To ヘッダーがどのようであるべきかに間する主張があれば、文字列を返すべきです。もしそうでなければ、それは nil を返すだけで、そうすれば To ヘッダーを決定する普通の方法が使われるでしょう。

この関数はリストを返す事もできます。そのような場合は、それぞれの要素は cons セルであるべきで、それの CAR はヘッダーの名前 (例 Cc) で、CDR がヘッダーの値 (例 larsi@ifi.uio.no) であるべきです。すべてのこれらのヘッダーは出て行くメールのヘッダーに挿入されます。

広く返答
====

message-wide-reply は現在のバッファのメッセージへの広い返答のメッセージバッファを作って表示します。広い返答 は To、 From、(もしくは Reply-to) と Cc ヘッダーに挙げられている全ての人々に届く返答です。

Message は返答が何処に行くかを決定するために普通の方法を使いますが、 message-wide-reply を弄る事で、振る舞いをあなたの要求に合うように変更する事ができます。それは message-reply-to-function と同じように使われます (see Reply)。

正規表現 rmail-dont-reply-to-names に合致するアドレスは Cc ヘッダーから取り除かれます。

message-wide-reply-confirm-recipients が非-nil だったら、複数の受取人に返信するかどうかの確認を求められます。ディフォルトは nil です。

フォローアップ
=======

命令 message-followup は現在のバッファのメッセージへのフォローアップであるメッセージバッファを作り表示します。

Message はフォローアップがどこに行くかを普通の方法を使って決定しますが、 message-followup-to-function を弄る事で、あなたの要求に合うように振る舞いを変更する事ができます。それは message-reply-to-function と同じように使われます (see Reply)。

変数 message-use-followup-to は Followup-To ヘッダーに関してどうするかを指定します。それが use であれば、いつも値を使います。もしそれが ask であれば (これが初期設定です)、値を使うかどうかを尋ねます。もし t であると、それが 投稿者 でない限り、値を使います。nil であれば、値を使いません。

ニュースを取り消す
=========

命令 message-cancel-news は現在のバッファの記事を取り消します。

message-cancel-message の値が取り消し記事の本文に挿入されます。ディフォルトは I am canceling my own article. です。

Message がニュース記事をポストするとき、ディフォルトで Cancel-Lock ヘッダーを挿入します。これは暗号化されたヘッダーで、あなた自身が書いたメーッセージをあなただけが取り消すことができることを保証する、すぐれものです。欠点は、.emacs ファイル (gnus が秘密の cancel lock パスワード (最初のこの機能を使うときに自動的に生成される) を格納する場所) をなくしてしまうと、メッセージを取り消すことができないであろうことです。

そのヘッダーを挿入するかどうかは、message-insert-canlock 変数によって制御されます。

まだ多くのニュースサーバーが Cancel-Lock ヘッダーを重要視していませんが、将来は変わることが期待されます。

代替
==

命令 message-supersede は現在のバッファのメッセージを代替するメッセージバッファを作り表示します。

message-ignored-supersedes-headers に合致するヘッダーは新しいメッセージバッファを作り上げる前に取り除かれます。初期値は
^Path:\\|^Date\\|^NNTP-Posting-Host:\\|^Xref:\\|^Lines:\\|

^Received:\\|^X-From-Line:\\|Return-Path:\\|^Supersedes: です。

転送
==

命令 message-forward は現在のバッファのメッセージを転送するためのメッセージバッファを作り表示します。もし接頭引数を与えられると、転送はニュースを使います。

message-forward-ignored-headers
     この正規表現に合致するすべてのヘッダーが、転送されるメッセージから削除されます。

message-forward-before-signature
     非-nil だったら署名の前に、それ以外だったら後に、転送するメッセージを置きます。

再送
==

命令 message-resend は利用者にアドレスの入力を促進し、現在のバッファのメッセージをそのアドレスに再送します。

正規表現 message-ignored-resent-headers に合致するヘッダーはメッセージを送る前に取り除かれます。初期値は ^Return-receipt です。

失敗
==

命令 message-bounce は、もし現在のバッファが失敗したメールメッセージであれば、失敗情報を取り除いたメッセージバッファを作り表示します。失敗メッセージ は普通は mailer-daemon から配送不可として返送されたメールです。

正規表現 message-ignored-bounced-headers に合致するヘッダーはバッファを作り上げる前に取り除かれます。初期値は ^\\(Received\\|Return-Path\\): です。

メーリングリスト
========

メーリングリストに投稿するとき、投稿する人がその記事に対するフォローアップ記事の宛先を指定したいことがあります。Mail-Followup-To (MFT) はまさにこれを可能にするために作られました。これが役に立つ場合の例を二つ:

  * メーリングリストに投稿する人は、返事を投稿者を含めずに単にメーリングリストだけに送信すべきであることを、MFT を使って表現することができます。これは、投稿者がすでにそのメーリングリストを購読している場合が該当します。

  * メーリングリストに投稿する人は、返事をメーリングリストと投稿者にも送信すべきであることを、MFT を使って表現することができます。これは、投稿者がそのメーリングリストを購読していない場合が該当します。

  * メッセージがいくつかのメーリングリストに投稿されている場合に、それ以降の議論を一つのメーリングリストだけで行なうことを指定するためにも MFT は使われます。議論がいくつかのメーリングリストで行なわれてしまうとばらばらになりやすいし、フォローするのが難しくなってしまいますから。

gnus は他の人のメッセージにある MFT ヘッダーを尊重し (すなわち、だれか別の人の投稿にフォローアップするとき)、また、外に出ていくメッセージのために、道理にかなった MFT ヘッダーを作成することのサポートも提供します。

正しい MFT ヘッダーを自動的に作る
-------------------

投稿する記事に対して gnus が自動的に MFT ヘッダーを作ってくれるようにするために行なうことの第一歩は、あなたが購読しているメーリングリストのアドレスのリストを gnus に与えることです。一つ以上の方法でこれを行なうことができます。以下の変数が手ごろでしょう。

message-subscribed-addresses
     これは購読しているメーリングリストのアドレスのリストでなければなりません。ディフォルト値は nil です。例:

          (setq message-subscribed-addresses
                '("ding@gnus.org" "bing@noose.org"))

message-subscribed-regexps
     これは購読しているメーリングリストのアドレスを示す正規表現のリストでなければなりません。ディフォルト値は nil です。上記と同じ結果を成し遂げたい場合の例:

          (setq message-subscribed-regexps
                '("\\(ding@gnus\\)\\|\\(bing@noose\\)\\.org")

message-subscribed-address-functions
     これは MFT ヘッダーの値を決めるために (一度に一回!!) 呼ばれる関数のリストであることができます。それらの関数には引数が無いことを忠告しておきます。ディフォルト値は nil です。

     gnus にはこの変数の好適な候補であるところの、あらかじめ定義されている関数があります。関数 gnus-find-subscribed-addresses は、 subscribed (see Group Parameters (The Gnus Manual)) グループパラメータが非-nil に設定されているグループに対応するアドレスのリストを返します。こんなふうにしましょう。

          (setq message-subscribed-address-functions
                '(gnus-find-subscribed-addresses))

message-subscribed-address-file
     あなたはもしかしたら酔狂な人 (原典: one organised human freak) で、購読しているすべてのメーリングリストのアドレスのリストを別ファイルで持っているかもしれません! そうならば、単にこの変数をそのファイル名にすることによって、人生は良きものになるでしょう。

上記以外に一つ以上の変数を使うことができます。すべてそれらの値は何らかの方法で「加えられる」ことで動作します :-)

さあ用意ができました。いつものようにメッセージの作成を始めましょう。そしていつも通りに送信しましょう。メッセージが送出される直前に gnus の MFT を作る仕掛けが動作して、メッセージがすでに MFT フィールドを持っているかどうかを調べます。もしそれが一つなら、それは放っておかれます (ただしその場合にそれが空っぽだったら、そのフィールドは削除され自動生成されたもので置き換えられることもありません。これは個々のメッセージについて MFT の生成を禁止させる基本です)。無かった場合は受取人のアドレスのリスト (To: と Cc: ヘッダーにある) を、それらの一つが購読しているメーリングリストのアドレスかどうかを調べます。それらのどれもがメーリングリストのアドレスでなかったら、MFT は作られません。それ以外の場合には MFT がその他のヘッダーに付け加えられ、その値は To: と Cc: にあるすべてのアドレスに設定されます。

うーむ。そうするとあなたは「購読していないメーリングリストにメールを送信するときはどうなるの?  私は余分のコピーが欲しいことを MFT で言いたい」と尋ねますね (たぶん他の人は MFT が無かった場合と同様に処理してしまうだろうけれど、誰かの to-address グループパラメータを上書きするために、明示的な MFT を使うことができるのです)。関数 message-generate-unsubscribed-mail-followup-to が役に立つことがあるでしょう。これはディフォルトで C-c C-f C-a に割り当てられています。どんな場合でも、あなたは自分が選んだ MFT を挿入することができます; それを始めるのに C-c C-f C-m (message-goto-mail-followup-to) が助けてくれるでしょう。

MFT 投稿の尊重
---------

メーリングリストに投稿された記事にフォローアップするとき、その記事が MFT ヘッダーを持っていたら、gnus の動作は変数 message-use-mail-followup-to の値によって決まります。この値は以下のどれかになります:

use
     常に MFT を尊重します。フォローアップ記事の To: と Cc: ヘッダーは、元の記事の MFT ヘッダーから引き出します。これがディフォルトです。

nil
     常に MFT を尊重しません (完璧に無視)。

ask
     どうするか尋ねます。

MFT を尊重することは良いネチケット (netiquette) であると考えられています。それは、どこにフォローアップする必要があるかを、メッセージを投稿した人はあなたよりよく知っている、と思われるからです。

命令
**

バッファに入る
=======

何か他のメッセージに返答するとき、たいていはメッセージバッファで書き上げますよね。Message は多くの引用文を扱い、署名の削除や文章の整形をしたり、あるいはあなたが使っている設定に依存しています。Message は普通はうまく動作しますが、ときどき間違えもします。それらの間違いをユーザが正すことができるように、Message はそれぞれ主要な動作を行なう前にアンドゥの境界を設定します。何回かアンドゥのキー (通常 C-_) を押せば、未編集のメッセージに戻すことができます。

ヘッダー命令
======

ヘッダーに移動するための命令
--------------

以下の命令は当のヘッダーに移動します。存在しなければ挿入されます。

C-c ?
     メッセージモードの記述です。

C-c C-r C-t
     To ヘッダーに行きます (message-goto-to)。

C-c C-f C-o
     From ヘッダーに行きます (message-goto-from)。(キーバインド中の ``o'' は創作者 (Originator) に由来しています。)

C-c C-f C-b
     Bcc ヘッダーに行きます (message-goto-bcc)。

C-c C-f C-f
     Fcc ヘッダーに行きます (message-goto-fcc)。

C-c C-f C-c
     Cc ヘッダーに行きます (message-goto-cc)。

C-c C-f C-s
     Subject ヘッダーに行きます (message-goto-subject)。

C-c C-f C-r
     Reply-To ヘッダーに行きます (message-goto-reply-to)。

C-c C-f C-n
     Neswsgroups ヘッダーに行きます (message-goto-newsgroups)。

C-c C-f C-d
     Distribution ヘッダーに行きます (message-goto-distribution)。

C-c C-f C-o
     Followup-To ヘッダーに行きます (message-goto-followup-to)。

C-c C-f C-k
     Keywords ヘッダーに行きます (message-goto-keywords)。

C-c C-f C-u
     Summary ヘッダーに行きます (message-goto-summary)。

C-c C-f C-i
     値 high を持つ Importance: ヘッダーを挿入します。このヘッダーは受信者にそのメッセージの重要性を知らせるために使われるものです。もしバッファにすでにこのヘッダーがある場合は、RFC 1376 に準じた三つの値 low、normal および high を循環させます。

C-c C-f C-a
     講読していないメーリングリストに投稿する場合に見合った Mail-Followup-To: ヘッダーを挿入します。講読していないメーリングリストに本記事を投稿するときは、Mail-Followup-To: を手で書かなければなりません。内容は、ふつうはメーリングリストのアドレスとあなた自身のアドレスです。この関数はそのようなヘッダーを自動的に挿入します。これは現在のメールのバッファから To: ヘッダーの内容を抜き出し、それに現在の user-mail-address を追加します。

     任意の引数である include-cc が非-nil だった場合は、 Cc: ヘッダーにあるアドレスも Mail-Followup-To: ヘッダーに置かれます。

ヘッダーを変更するための命令
--------------

C-c C-o
     message-header-format-alist に従ってヘッダーを並べ替えます (message-sort-headers)。

C-c C-t
     フォローアップしようとするメッセージの Reply-To もしくは From ヘッダーを含む To ヘッダーを挿入します (message-insert-to)。

C-c C-n
     返答している記事の Followup-To もしくは、Nesgroups ヘッダーを反映した Newsgroups ヘッダーを挿入します (message-insert-newsgroups)。

C-c C-l
     メーリングリスト宛てだけにメッセージを送ります。 To: と Cc: ヘッダーから、そのメーリングリスト以外のアドレスを削除します。

C-c M-n
     開封確認要求を挿入します。 (message-insert-disposition-notification-to)。これは、もし受信者が RFC 2298 をサポートしていたら、彼女にそのメッセージを受け取ったことを知らせて欲しいことを意味します。

M-x message-insert-importance-high
     値 high を持つ Importance ヘッダーを挿入します。必要なら (すでにある) ヘッダーを消去してから。

M-x message-insert-importance-low
     値 low を持つ Importance ヘッダーを挿入します。必要なら (すでにある) ヘッダーを消去してから。

C-c C-f s
     現在の Subject ヘッダーを変更します。新しい Subject を尋ねて (was: <古い題名>) を追加します。古い題名は返信するときに削除することができます。message-subject-trailing-was-query (see Message Headers) を見て下さい。

C-c C-f x
     クロスポストするために追加する Newsgroups と FollowUp-To を尋ねます。 message-cross-post-followup-to は FollowUp-To および Newsgroups を、グループを指し示すように切り裂きます。 message-cross-post-default が nil だったり接頭引数 Follow-Up 付きで呼ばれると、メッセージはクロスポストされません。

C-c C-f t
     To ヘッダーの内容を Cc か Bcc ヘッダーの内容で置き換えます。

C-c C-f w
     広い返答をしたように To と Cc ヘッダーを挿入します。

C-c C-f a
     X-No-Archive: Yes をヘッダーに挿入して、本文に注意書きを入れます。ヘッダーと注意書きは message-archive-header と message-archive-note でカスタマイズすることができます。接頭引数付きで呼ばれると、挿入するテキストを要求します。本文に注意書きを入れたくない場合は、 message-archive-note を nil にして下さい。

移動
==

C-c C-b
     メッセージの本体の先頭に移動します (message-goto-body)。

C-c C-i
     メッセージの署名に移動します (message-goto-signature)。

C-a
     ヘッダーの値のところにいるときは行の先頭に移動し、そうでないときはヘッダーの値の先頭に移動します。(ヘッダーの値はヘッダー名とコロンの後に来ます。) この動作は変数 message-beginning-of-line をトグルすることによって無効にすることができます。

挿入
==

C-c C-y
     バッファ gnus-article-copy にあるメッセージをメッセージバッファに貼り付けます。普通は gnus-article-copy は返答しようとしているメッセージです (messsage-yank-original)。

C-c C-M-y
     バッファ名を尋ねて、そのバッファの内容をメッセージバッファに貼り付けます (message-yank-buffer)。

C-c C-q
     貼り付けられたメッセージを折り返します (message-fill-yanked-message)。警告: もし、引用の習慣が変であるなら、貼り付けられた文章をひどくぐちゃぐちゃにしてしまうかもしれません。それが安全であると知ると、すぐに人心地つくでしょうが。とにかく、 C-x u (undo) が使用可能で、大丈夫であると言う事を覚えておいて下さい。

C-c C-w
     バッファの最後に署名を挿入します (message-insert-signature)。

C-c M-h
     メッセージのヘッダーを挿入します (message-insert-headers)。

C-c M-m
     現在の記事のいくつかの領域を、それらを囲むためのタグで印を付けます。 message-mark-insert-begin と message-mark-insert-end を見て下さい。

C-c M-f
     現在の記事に、タグで囲まれたファイルを挿入します。 message-mark-insert-begin と message-mark-insert-end を見て下さい。

国際化ドメイン名
========

Message は IDNA に準拠した送信エージェントです。ユーザは IDNA のために一般には何もする必要がありません。 Message は From、To および Cc ヘッダーにある非-ASCII ドメイン名を自動的にエンコードします。

もっと IDNA が有名になるまでは、実際にドメイン名を IDNA エンコードすべき場合でも Message は確認を求めます。現在ではドメイン名に非-ASCII 文字を含むことができることにユーザの幾人かは気づいていないかもしれないので、彼らが偶然に非-ASCII ドメイン名をタイプしてしまったときのために安全ネットを張っているわけです。

変数 message-use-idna は IDNA を使うかどうかを制御します。この変数が nil だったら IDNA エンコードは行なわれません。シンボル ask に設定されている (ディフォルト) とユーザは確認を求められます。そして t に設定されていると、自動的に IDNA エンコードが行なわれます。

実験的に IDNA エンコードを行ないたいならば、(エンコードされた非-ASCII ドメイン名を得るために) メッセージの編集中に M-x message-idna-to-ascii-rhs RET をタイプして下さい。

この機能を使うには GNU Libidn (http://www.gnu.org/software/libidn/) をインストールしておく必要があります。

いろいろな命令
=======

C-c C-r
     現在のメッセージをシーザー変換 (別名 rot13) します (message-caesar-buffer-body)。もし範囲限定が実行されていたら、バッファの見える部分だけを変換します。数値接頭引数は文をどのくらい回転させるかを指定します。初期値は 13 です。

C-c C-e
     ポイントとマークの間の文を省きます (message-elide-region)。文章は切られて (killed) 変数 message-elide-ellipsis の値で置き換えられます。ディフォルトの省略符号として使われる値は ([...]) です。

C-c C-z
     署名までか、それが無ければ記事の最後までの全ての文を切ります (message-kill-to-signature)。

C-c C-v
     メッセージの本体のリージョンの外の全ての文を消去します (message-delete-not-region)。

M-RET
     4つの新しい行を挿入し、もしポイントが引用文の間にあるならば、再整形します。

     これは例です:

          > これは何かの引用文です。 そして、ここにはもっと引用文があります。

     もし、ポイントが そして の前にあり、M-RET を押したなら、以下のようなものを得ます:

          > これは何かの引用文です。

          *

          > そして、ここにはもっと引用文があります。

     * はポイントが置かれている場所です。

C-c M-r
     バッファの名前を変更します (message-rename-buffer)。接頭引数を与えられれば、新しいバッファ名の入力を促進します。

TAB
     message-tab-body-function に設定されている関数を実行します。さもなければ (それが nil だったら)、 text-mode-map か global-map の TAB キーに割り当てられているコマンドを使います。

送信
==

C-c C-c
     メッセージを送信し、現在のバッファを埋めます (message-send-and-exit)。

C-c C-s
     メッセージを送信します (message-send)。

C-c C-d
     メッセージバッファを埋めて終了します (message-dont-send)。

C-c C-k
     メッセージバッファを切って終了します (message-kill-buffer)。そのフレームがメッセージ専用に作られたものだった場合は、フレームを削除します。 message-kill-buffer-and-remove-file が非-nil で、かつバックアップファイルができていたら、ユーザに確認してからそれも削除します。

C-x k
     kill-buffer のイミテーションです (message-mimic-kill-buffer)。 message-kill-buffer-and-remove-file を一時的に nil に束縛して message-kill-buffer を呼びます。

メール別名
=====

変数 message-mail-alias-type はどのような型のメール別名 (mail alias) 伸張を使うかを制御します。現在では、一つの様式だけが使用可能です---Message はメール別名を扱うために mailabbrev を使います。もしこの変数が nil であるなら、メール別名伸張は実行されません。

Mailabbrev は /etc/mailrc と ~/.mailrc ファイルを解析する事により動作します。ファイルは次のようになっています:

     alias lmi "Lars Magne Ingebrigtsen <larsi@ifi.uio.no>"
     alias ding "ding@ifi.uio.no (ding mailing list)"

このような行を ~/.mailrc ファイルに追加した後で、 To や Cc (等など) のヘッダーで lmi と書いて、 SPC を押すだけで別名を伸張します。

メッセージを送るときには伸張は行われません---全ての伸張は明示的に行われなくてはなりません。

Emacs にスペルチェックさせる
=================

Emacs でスペルチェックするために普及している二つの方法、 ispell と flyspell があります。ispell の方は昔からあって、たぶんより一般的なパッケージです。あなたは例によって最初にメッセージを書いてから全体を ispell に通し、すべての書き損じを修正します。メッセージを送信するときにそれを自動的に行なうためには、.emacs ファイルに以下のようなものを入れて下さい。

     (add-hook 'message-send-hook 'ispell-message)

もしあなたが違う言語で書く習慣ならば、それは変数 ispell-message-dictionary-alist で制御できます。

     (setq ispell-message-dictionary-alist
           '(("^Newsgroups:.*\\bde\\." . "deutsch8")
             (".*" . "default")))

ispell はインストールされた ispell コマンドに依存しています。

もう一方の普及している方法は flyspell を使うことです。このパッケージはあなたが書いている最中にスペルチェックを行ない、いろんな方法で間違ったスペルの語を指摘してくれます。

flyspell を使うには、以下のようなものを .emacs ファイルに入れて下さい。

     (defun my-message-setup-routine ()
       (flyspell-mode 1))
     (add-hook 'message-setup-hook 'my-message-setup-routine)

flyspell はインストールされた ispell コマンドに依存しています。

変数
**

メッセージヘッダー
=========

Message はメッセージ作成部分に関しては非常に積極的です。それは次のようでなければなりません---それはニュースとメールの複合代理です。複合メッセージを送る事ができるように、また、それはメッセージのメールとニュースの複製が十分に同じように見えるように、全てのヘッダーをそれ自身で作成します。

message-generate-headers-first
     t ならば、メッセージの作成を始める前に全ての必要なヘッダーを作成します。これは作成するヘッダーのリストであることもできます:

          (setq message-generate-headers-first
                '(References))

     変数 message-required-headers、 message-required-mail-headers および message-required-news-headers で、どのヘッダーが必要かを指定します。

     いくつかのヘッダーは、送信する前に消されたり作り直されたりします。これには変数 message-deletable-headers (後述) が関係します。

message-draft-headers
     Message が gnus 上で走っている場合、メッセージバッファはドラフトグループと関連付けられています。message-draft-headers は、そのドラフトグループにドラフトが記録されるときに、どのヘッダーが作成されるべきかを指示します。

message-from-style
     From ヘッダーがどのように見えるかを指定します。以下の４つの値が使えます:

     nil
          アドレスだけです---king@grassland.com.

     parens
          king@granssland.com (Elvis Parsley).

     angles
          Elvis Parsley <king@grassland.com>.

     default
          それが引用符号を要求しなければ angles のように見え、もし引用符号が要求される場合は parens のように見えます。parens が引用符号を要求したとしても、とにかく angles を使います。

message-deletable-headers
     このリストにある、以前に Message により作成されたヘッダーは投稿する前に削除されます。記事を投稿するとしましょう。それから、わんぱく坊主なあなたはそれを何か他のグループに再び投稿する事に決定したので、 *post-buf* バッファに戻り、Newsgroups 行を編集し、再び送り出したとします。初期設定では、この変数は前に作成された古い Message-ID が取り除かれ、新しいものが作成される事を確実にしています。もしこれがなされないと、帝国全体はおそらく崩壊し、無政府主義が浸透し、猫が2本の足で歩き始め、世界を支配するでしょう。聞くところに依れば。

message-default-headers
     この文字列は全てのメッセージバッファのヘッダーの最後に挿入されます。

message-subject-re-regexp
     メッセージへの応答は Re:  で始まります。これは英語の ``response'' の略では ありません が、ラテン語で、``それに応答して'' (in response to) と言う意味です。いくつかの無学の馬鹿はこの事実を得る事に失敗し、彼らのソフトウェアを忌まわしい Aw:  (``antwort'') や Sv:  (``svar'') を代わりに使うように ``国際化'' しました。それは意味が無く、邪悪です。しかし、これらの邪悪な道具を使った利用者を扱わなければならないかもしれませんので、そのような場合はこの変数をこれらの接頭語に合うような正規表現に設定するでしょう。私自身は、そのような規格に従わないメールはただ捨て去っているだけです。

     これは、返事をするときにこれらのヘッダーを処理する値の例です:

          (setq message-subject-re-regexp
                (concat
                 "^[ \t]*"
                   "\\("
                     "\\("
                       "[Aa][Nn][Tt][Ww]\\.?\\|"     ; antw
                       "[Aa][Ww]\\|"                 ; aw
                       "[Ff][Ww][Dd]?\\|"            ; fwd
                       "[Oo][Dd][Pp]\\|"             ; odp
                       "[Rr][Ee]\\|"                 ; re
                       "[Rr][\311\351][Ff]\\.?\\|"   ; ref
                       "[Ss][Vv]"                    ; sv
                     "\\)"
                     "\\(\\[[0-9]*\\]\\)"
                     "*:[ \t]*"
                   "\\)"
                 "*[ \t]*"
                 ))

message-subject-trailing-was-query
     題名の行に続ける (was: <古い題名>) をどうするかを制御します。 nil だったら題名をそのままにしておきます。ask というシンボルだったら、どうするかをユーザに尋ねます。題名が message-subject-trailing-was-ask-regexp に合致する場合だけですが。message-subject-trailing-was-query が t だったら、常にぶら下がった古い題名をはぎ取ります。その場合は message-subject-trailing-was-regexp が使われます。

message-alternative-emails
     代わりのメールアドレスに合致する正規表現です。最初にマッチした (第一義ではない) アドレスが From フィールドで使われます。 (訳注: To か Cc にあるアドレスで、最初にこの正規表現に合致し、かつ user-mail-address とは違うものが、From フィールドのメールアドレスとして使われます。)

message-allow-no-recipients
     Gcc と Fcc 以外に受取人がいなかった場合に、何をするかを設定します。always だったらとにかく送信し、never だったら送信しません。ask (それがディフォルト) だったら、どうするか尋ねられます。

message-hidden-headers
     正規表現、正規表現のリスト、または最初の要素が not で残りが正規表現であるリスト。メッセージの作成中にどのヘッダーを隠したままにしておくかを決めます。

          (setq message-hidden-headers
                '(not "From" "Subject" "To" "Cc" "Newsgroups"))

message-header-synonyms
     ヘッダー同意語リストのリスト。例えばこのリストが Cc と To のメンバー・リストを含んでいると、メッセージがすでに受信者に Cc されている場合、 message-carefully-insert-headers は To ヘッダーを挿入しません。

メールヘッダー
=======

message-required-mail-headers
     この変数の構文を知りたければ、see News Headers を参照して下さい。それの初期値は (From Date Subject (optional . In-Reply-To) Message-ID Lines (optional . User-Agent)) です。

message-ignored-mail-headers
     メールを出す前に取り除かれるヘッダーの正規表現です。初期値は ^[GF]cc:\\|^Resent-Fcc:\\|^Xref:\\|^X-Draft-From: です。

message-default-mail-headers
     この文字列はメールとして初期化された全てのメッセージバッファのヘッダーの最後の挿入されます。

メール変数
=====

message-send-mail-function
     現在のバッファをメールとして送るために使われる関数です。初期値は message-send-mail-with-sendmail です。他に message-send-mail-with-mh, message-send-mail-with-qmail, message-send-mail-with-smtp, message-smtpmail-send-it, smtpmail-send-it および feedmail-send-it が使えます。

message-mh-deletable-headers
     ほとんどの版の MH はこの変数のヘッダーを含むメッセージを食わされるのを嫌います。この変数が nil でないなら (これが初期設定ですが)、これらのヘッダーは MH を使ってメッセージを送っているときには取り除かれます。あなたの MH がこれらのヘッダーを扱えるのであれば、それを nil に設定して下さい。

message-qmail-inject-program
     qmail-inject プログラムです。

message-qmail-inject-args
     qmail-inject プログラムに渡す引数です。これは文字列のリストで、それぞれの引数は一つの文字列でなければなりません。これは関数でも良いです。

     例えば、正しい場所に跳ね返したり、メーリングリストの慣習に従うために envelope sender のアドレスを設定したい場合は、この変数を '("-f" "you@some.where") に設定すれば良いでしょう。

message-sendmail-f-is-evil
     非-nil で sendmail のコマンド行に -f username を付加しません。そうすることは、付加しないより邪悪ですらあるでしょう。

message-sendmail-envelope-from
     message-sendmail-f-is-evil が nil のとき、これで SMTP エンベロープで使うアドレスを指定します。nil だったら user-mail-address を使います。シンボル header だったら、メッセージの From ヘッダーを使います。

message-mailer-swallows-blank-line
     システムのメイラーがヘッダーと本文を一緒にしてしまう場合は、非-nil に設定して下さい。(SunOS 4 で sendmail がリモートモードで動作する場合が該当します。) 値は、障害が実際に起きるかどうかをテストするための式にすべきです。

ニュースヘッダー
========

message-required-news-headers はヘッダーシンボルのリストです。これらのヘッダーは自動的に作成されるか、もしくはそれが不可能であれば、入力を促進します。以下のシンボルが使えます:

From
     この必要なヘッダーは関数 message-make-from 関数の結果により作られ、それは変数 message-from-style, user-full-name, user-mail-address に依存します。

Subject
     この必要なヘッダーは、まだ存在しない場合は入力を促進されます。

Newsgroups
     この必要なヘッダーはどのニュースグループに記事が投稿される事になるかを指定します。もしまだ存在していないなら、入力を促進されます。

Organization
     この選択任意なヘッダーは変数 message-user-organization に依存して作成されます。もしこの変数が t であれば、 message-user-organization-file が使われます。この変数は文字列である事もでき (その場合はその文字列が使われます)、関数である事もできます (その関数は引数無しで呼ばれ、使われる文字列を返す必要があります)。

Lines
     この選択任意なヘッダーは Message により計算されます。

Message-ID
     この必要なヘッダーは Message により作成されます。日付、時間、利用者名、システム名に基づいた他に無い ID が作成されます。ドメインの項については、有効な FQDN (完全に条件を満たしたドメイン名) らしいものが見つからない場合、message は message-user-fqdn, system-name, mail-host-address および message-user-mail-address (すなわち user-mail-address) を (この順で) 探します。

User-Agent
     この選択自由なヘッダーはローカル変数 message-newsreader にしたがって作られます。

In-Reply-To
     この選択自由なヘッダーは返答している記事の Date と From ヘッダーを使って作られます。

Expires
     この非常に選択自由なヘッダーは変数 message-expires にしたがって挿入されます。これは自分が何をしているかを知らない限り、使用は全く勧められません。

Distribution
     この選択自由なヘッダーは変数 message-distribution-function にしたがって作られます。それは非推奨で、非常に誤解されたヘッダーです。

Path
     この非常に選択自由なヘッダーはおそらく決して使われてはならないでしょう。しかしいくつかの とても 古いサーバーはこのヘッダーが存在する事を要求します。message-user-path がこの Path ヘッダーがどのように見えるかをさらに制御します。もしそれが nil であれば、サーバー名を leaf 節として使います。もしそれが文字列であれば、その文字列を使います。もしそれが文字列でも nil でもなければ、利用者の名前だけを使います。しかし、何らかの形でこの変数を弄らなければならない必要性は非常に少ないでしょう。

加えて cons をリストに入れる事ができます。この cons の CAR はシンボルであるべきです。このシンボル名はヘッダー名で、CDR はこのヘッダーの値としてそのまま入れられることになる文字列か、呼ばれる関数のどちらかである事ができます。例えば、もし Mime-Version: 1.0 を挿入したいなら、 (Mime-Version . "1.0") をリストに入れるべきでしょう。もしおもしろい引用を挿入したいなら、(X-Yow . yow) のようなものをリストに入れる事ができるでしょう。関数 yow はその後で引数無しで呼ばれます。

もしリストが cons の CAR が optional である cons を含んでいるなら、この cons の CDR は nil でないときだけ挿入されます。

このリストからある項目を消したいならば、以下の Lisp の切れ端が役に立つでしょう。他の要素を削除したいときはそれに合わせて下さい。

     (setq message-required-news-headers
           (delq 'Message-ID message-required-news-headers))

出て行くニュース記事をカスタマイズするための他の変数:

message-syntax-checks
     nil でなければ、Message は投稿の前に、ヘッダーと他のものの合法性を調べます。このリストに要素を付け加えたり取り除いたりする事で、調べる粒の大きさを制御する事ができます。使える要素は:

     subject-cmsg
          命令のための表題を調べます。

     sender
          From ヘッダーが変に見えれば、新しい Sender ヘッダーを挿入します。

     multiple-headers
          複数の等価なヘッダーの存在を調べます。

     sendsys
          版番号と sendsys 命令の存在を調べます。

     message-id
          Message-ID が大丈夫かどうか調べます。

     from
          From ヘッダーがよく見えるかどうかを調べます。

     long-lines
          あまりに長い行を調べます。

     control-chars
          使ってはいけない文字を調べます。

     size
          過剰な大きさを調べます。

     new-text
          メッセージに新しい文があるかどうかを調べます。

     signature
          署名の長さを調べます。

     approved
          記事が Approved ヘッダーを持っているかどうかを調べます。それは司会者だけが含むべき物です。

     empty
          記事が空かどうかを調べます。

     invisible-text
          バッファに不可視のテキストがあるかどうかを調べます。

     empty-headers
          ヘッダーのどれかが空であるかを調べます。

     existing-newsgroups
          Newsgroups と Follouup-to で書かれているニュースグループが存在するかどうかを調べます。

     valid-newsgroups
          Newsgroups と Followup-to ヘッダーが構文的に正しいかを調べます。

     repeated-newsgroups
          Newsgroups と Followup-to ヘッダーに繰り返されたグループ名が無いかを調べます。

     shorten-followup-to
          投稿するグループの数を Followup-to ヘッダーを付け加える事で少なくするかを調べます。

     これら全ての状態は初期設定では調べられます。

message-ignored-news-headers
     投稿する前に取り除かれるヘッダーの正規表現です。初期値は

     ^NNTP-Posting-Host:\\|^Xref:\\|^[BGF]cc:\\|^Resent-Fcc:\\|^X-Draft-From: です。

message-default-news-headers
     この文字列はニュースとして初期化されたすべてのメッセージバッファのヘッダーの最後に挿入されます。

新しい変数
=====

message-send-news-function
     現在のバッファをニュースとして送るために使われる関数です。初期値は mesage-send-news です。

message-post-method
     準備されたニュースメッセージを投稿するのに使われる gnus の 選択方法 (詳細は gnus マニュアルを見て下さい) です。

挿入するための変数
=========

message-ignored-cited-headers
     この正規表現に合致する全てのヘッダーは貼り付けられたメッセージから取り除かれます。初期値は . で、これは全てのヘッダーが取り除かれると言う事です。

message-cite-prefix-regexp
     ある行が取り得る最大の引用接頭語に合致する正規表現です。

message-citation-line-function
     引用行を挿入するために呼ばれる関数です。初期値は message-insert-citation-line で、これは引用行を次のようにします:

          Hallvard B Furuseth <h.b.furuseth@usit.uio.no> writes:

     この関数が呼ばれたとき、ポイントはメッセージの本体の先頭にあるでしょう。

     なお gnus には、`writes:' の上でクリックすると引用されたテキストを隠す機能があります。もしあなたが度を越して引用行を変更してしまうと、それを読む人たちも彼らの gnus を対応させなければならなくなるでしょう。変数 gnus-cite-attribution-suffix を参照して下さい。詳細は see 記事のハイライト (The Gnus Manual), にあります。

message-yank-prefix
     記事に返答かフォローアップをするときは、普通はあなたが応答している人のものに引用符を付けたいでしょう。引用文の挿入は 貼り付け によってなされ (すでに引用符が付いているものと空行は対象外、 message-yank-cited-prefix を参照のこと)、それぞれの貼り付けられた行はその前に message-yank-prefix を付けられます。初期値は >  です。

message-yank-cited-prefix
     記事から引用されたテキストがすでに引用されたものだったり空だった場合、それぞれの行にはこの変数の値が前置されます。初期値は > です。 message-yank-prefix も参照して下さい。

message-yank-add-new-references
     コマンド message-yank-original を対話的に使ったときに、この値が nil でなかったら、References フィールドに ID が追加されます。もし値がシンボル message-id-only だったら Message-ID フィールドの ID だけが使われますが、そうでなければ References、In-Reply-To および Message-ID フィールドから抽出された ID が使われます。

message-list-references-add-position
     コマンド message-yank-original を対話的に使ったときに、この値が正の整数だったら、すでにある References フィールドの最後からその個数の ID だけ離れた場所に新しい ID が挿入されます。それ以外の場合は最後に挿入されます。

message-indentation-spaces
     貼り付けられたメッセージを字下げするための空白の数です。

message-cite-function
     本記事を引用するための関数です。初期値は message-cite-original で、これは単純にもとのメッセージを挿入し、それぞれの行の頭に >  をくっつけます。message-cite-original-without-signature は同様の事をしますが、署名は省きます。Supercite を使うために、それを sc-cite-original に設定する事もできます。

message-suspend-font-lock-when-citing
     nil でなければ、本記事を引用している間 font-lock の動作を止めます。いくつかの、Emacs が暇なときに遅れて動作する font-lock のためのツール (または Emacs 自身) にはバグがあり、それらはしばしば font-lock の動作を行なう対象となるバッファを取り違えます。それはたいてい Emacs がミニバッファでユーザに何かの入力を促すときに起こります。これはその場しのぎの対策ではあるのですが、このオプションを非-nil にすることによって、あなたは不愉快なエラーを回避できるかもしれません。

message-indent-citation-function
     ちょうどメールバッファに挿入された引用文を修正するための関数です。これは関数のリストである事もできます。それぞれの関数は (point) と (mark t) の間で引用を発見する事ができます。そして、それぞれの関数は引用文が修正されると、その周りにポイントとマークを残さなければなりません。

message-mark-insert-begin
     いくつかの挿入されたテキストの始まりに印を付けるための文字列です。

message-mark-insert-end
     いくつかの挿入されたテキストの終りに印を付けるための文字列です。

message-signature
     メッセージバッファの最後に挿入される文字列です。もし t (これが初期設定です) であれば、ファイル message-signature-file が代わりに挿入されます。もし関数であれば、関数の結果が代わりに使われます。もし式であれば、式の結果が変わりに使われます。この変数が nil であれば、署名は全く挿入されません。

message-signature-file
     バッファの最後に挿入される署名の入っているファイルです。初期値は ~/.signature です。

message-signature-insert-empty-line
     t (ディフォルト) だったら、署名と本体を分離する記号の前に空行が挿入されます。

RFC1036bis は、署名はその前に --  の3文字だけの行があるべきであると言っている事に注意して下さい。これは受け手が自動的に署名を認識して、処理をする事を簡単にするためです。ですから、あなたの美しいデザインをそれが、あの、完全に破壊していると感じてもそれらの文字を取り除かないでください。

署名は4行より多くなるべきでは無いと言う事も注意して下さい。 ASCII の絵を入れる事は、皆にあなたが馬鹿で何も重要な事は言わないという事を信じさせるための効果的な方法です。

いろいろなメッセージ変数
============

message-signature-separator
     署名と本体を分離する記号に合致する正規表現です。初期値は ^-- *$ です。

mail-header-separator
     ヘッダーを本体から分けるのに使われる文字列です。初期値は --text follows this line-- です。

message-directory
     多くのメールのものから使われるディレクトリーです。初期値は ~/Mail/ です。

message-auto-save-directory
     gnus が動作していないときに Message がバッファを自動保存するディレクトリです。nil だったら Message は自動保存を行ないません。ディフォルトは ~/Mail/drafts/ です。

message-signature-setup-hook
     メッセージバッファを初期化するときに実行されるフックです。それはヘッダーが挿入されているが、署名が挿入される前に実行されます。

message-setup-hook
     メッセージバッファが初期化されたときの最後ですが、貼り付けられる文章が挿入される前に実行されるフックです。

message-header-setup-hook
     ヘッダーを初期化した後に、ヘッダーに範囲を限定して呼ばれるフックです。

     例えば、gnus を実行していて、すべてのニュース記事とメーリングリストに送る全てのメッセージに Mail-Copies-To ヘッダーを挿入したいのであれば、以下のような事ができます:

          (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 をこのフックに使う事ができます。例えば:

          (add-hook 'message-send-hook 'my-message-add-content)
          (defun my-message-add-content ()
            (message-add-header "X-In-No-Sense: Nonsense")
            (message-add-header "X-Whatever: no"))

     この関数は、ヘッダーが既に存在している場合はヘッダーを加えません。

message-send-mail-hook
     メールメッセージを送る前に実行されるフックです。このフックは非常に遅い時期 - メッセージがメールとして実際に送信される直前 -- に実行されます。

message-send-news-hook
     ニュースメッセージを送る前に実行されるフックです。このフックは非常に遅い時期 - メッセージがニュースとして実際に送信される直前 -- に実行されます。

message-sent-hook
     メッセージを送る後に実行されるフックです。

message-cancel-hook
     ニュース記事を取り消すときに実行されるフックです。

message-mode-syntax-table
     メッセージモードバッファで使われる構文テーブルです。

message-strip-special-text-properties
     Emacs はメッセージ作成をいろいろに壊してしまうことができる多くのテキスト属性 (text properties) を持っています。これが設定されていると message はそれらの属性をメッセージを作成するバッファから剥ぎ取ります。しかしいくつかのパッケージは、動作するためにそれらの属性があることが必要です。それらのパッケージの一つを使うならば、このオプションを off にして、メッセージが壊れてしまわないことを祈って下さい。

message-send-method-alist

     出て行くメッセージを送るための方法の連想リストです。それぞれの要素は次の式を持っています

          (TYPE PREDICATE FUNCTION)

     type
          方法を指定するシンボルです。

     predicate
          メッセージは TYPE のメッセージであるかどうかを決定するために引数無しで呼ばれる関数です。

     function
          PREDICATE が nil でない値を帰したときに呼ばれる関数です。 FUNCTION は一つの引数---接頭辞---と共に呼ばれます。

          ((news message-news-p message-send-via-news)
           (mail message-mail-p message-send-via-mail))

送るための変数
=======

message-fcc-handler-function
     出ていく記事を保存するために呼ばれる関数です。この関数は記事を蓄積するためのファイル名と共に呼ばれます。初期設定の関数は message-output で、それは Unix mailbox 様式で保存します。

message-courtesy-message
     複合メッセージを送るときは、この文字列はメールで送られた複製の方の最初に挿入されます。もしその文字列が書法仕様指定 %s を含んでいれば、記事が投稿されたニュースグループがそこに挿入されます。もしこの変数が nil であれば、そのような親切メッセージは加えられません。初期値は "The following message is a courtesy copy of an article\nthat has been posted to %s as well.\n\n" です。

message-interactive
     非-nil で、メッセージを送信するときにエラーが出るのを待ってを表示します。nil だったら、メイラーにエラーの報告をメールで行なわせます。

メッセージバッファ
=========

Message はあなたがメッセージバッファを要求したときに、他に無い唯一のバッファ名で新しいバッファをつくります。メッセージを送ったときに、バッファは普通は削除されません。その名前は変更されて、特定の数の古いメッセージバッファは生きたままになります。

message-generate-new-buffers
     nil でなければ、新しいバッファを作成します。初期値は t です。もしこれが関数なら、その関数を3つの引数と共に呼びます: 型、送り先アドレス、グループ名 です。 (これらのどれでも nil であるかもしれません。) 関数は新しいバッファ名を返すべきです。

message-use-multi-frames
     nil でなければ、新しいフレームを作成します。初期値は nil です。

message-delete-frame-on-exit
     変数 message-delete-frame-on-exit はメッセージを送信したときと、バッファを切ったときにフレームを消去するかを決定します。nil であれば、(これが初期設定ですが) フレームを消去しません。ask であれば、消去するかどうかを利用者に尋ねます。t であれば、常に消去します。

message-max-buffers
     この変数はどのくらい古いメッセージバッファを保っておくかを指定します。これより多いメッセージバッファがあれば、一番古いバッファが削除されます。初期値は10です。この変数が nil であると、古いメッセージバッファは削除されません。

message-send-rename-function
     メッセージを送った後で、バッファの名前は、例えば、*reply to Lars* から *sent reply to Lars* に変更されます。もしこれを好まないなら、この変数をあなたの好きな方法でバッファの名前を変更する関数に設定して下さい。そもそもバッファ名を変更する事を好まないのであれば、次のようにできます:

          (setq message-send-rename-function 'ignore)

message-kill-buffer-on-exit
     nil でなければ、終了時にすぐにバッファを削除します。

message-kill-buffer-query-function
     コマンド message-kill-buffer や message-mimic-kill-buffer で、バッファを削除するかどうかをユーザに尋ねるときに使う関数の指定です。ディフォルトは yes-or-no-p ですが、 y-or-n-p や nnheader-Y-or-n-p などを使うこともできます。 t にすると無条件にバッファを削除します。

message-kill-buffer-and-remove-file
     非-nil だったら、バッファを削除した後でもしバックアップファイルがあったら、ユーザに確認してからそれも削除します。nil ではファイルを削除しません。ディフォルトは t です。ただし、コマンド message-mimic-kill-buffer はこれが nil であるものとして動作します。

メッセージの動作
========

Message がニュース/メールリーダーから使われたとき、リーダーはメッセージが送られた後の何らかの仕事を実行したがる傾向があります。おそらく、前のウィンドウ設定に戻るか、記事に返答されたと言う印を付けるなどをしたいのでしょう。

利用者はいろいろな方法でメッセージバッファから出るかもしれません。一番良くあるのは C-c C-c で、それはメッセージを送って終了します。他の可能性には C-c C-s があり、これはメッセージを送るだけであり、 C-c C-d はメッセージの編集を先に延ばしてメッセージバッファを埋め、 C-c C-k はメッセージバッファを削除します。これらの動作はそれぞれそれと関連付けられたリストを持っていて、それは実行される動作を含んでいます: message-send-actions, message-exit-actions, message-postpone-actions, and message-kill-actions です。

Message はこれらのリストと作用する関数を提供しています: message-add-action です。最初の引数は加えられる動作で、残りの引数はどのリストにこの動作を加えるかです。これは gnus からの例です:

       (message-add-action
        `(set-window-configuration ,(current-window-configuration))
        'exit 'postpone 'kill)

これは、メッセージバッファが削除、延期、終了されたときに gnus のウィンドウ設定を復活させます。

動作 は次のどれかです: 普通の関数、もしくは car が関数で、 CDR が引数のリストであるリストか、評価 される式です。

互換性
***

Message は事実上、それ自身の変数しか使いません---古い mail- の変数は考慮されません。Message にこれらの変数を計算に入れさせたいのであれば、以下のものを .emacs ファイルに入れる事ができます:

     (require 'messcompat)

これは多くの Message 変数を対応するメール変数から初期化します。

付記
**

応答
==

メッセージが何処に行くかを決定するために、初期設定では以下のアルゴリズムが使われます。

reply
     返答 (reply) はメッセージを送った人 だけ にメールで応答したいときのものです。受取人は一人しかいません。受取人が誰であるかを決定するために、以下のヘッダーが順番に考慮されます:

     Reply-To

     From

wide reply
     広い返答 (wide reply) は応答しようとしているメッセージに書かれていた 全ての 実体を含むメールによる応答です。以下のヘッダーからの全てのメールボックスが連結されて、出ていく To/Cc ヘッダーをつくります:

     From
          (Reply-To が無い限り、これが使われ、それがある場合はそれが代わりに使われます)。

     Cc

     To

     Mail-Copies-To ヘッダーが存在していると、それもメールボックスのリストに加えられるでしょう。このヘッダーが never であれば、それは From (もしくは Reply-To) メールボックスが抑制されると言う事です。

followup
     フォローアップ (followup) はニュースによる応答です。以下のヘッダー (優先順位の高いものから挙げられています) が何処に応答が送られるかを決定します:

     Followup-To

     Newsgroups

     もし Mail-Copies-To ヘッダーが存在すると、それが never でなければ、新しい Cc ヘッダーの基として使われます。