This file documents Message, the Emacs message composition mode.

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

Copyright (C) 1996 Free Software Foundation, Inc.

Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.

著作権表示とこの許可文がすべての複製に存在する限り、この説明書のまったく同一の複製を作り、配布することを許可する。

Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.

同一複製の条件の下で、それによって得られた結果もこの許可文の表示と同一の条件のもとで配布する限り、この説明書の修正版の複製をし、配布することを許可する。

Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.

上記の修正版に関する条件の下で、この説明書の翻訳の複製を作り、配布することを許可する。

Message
*******

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

このマニュアルは Message 6.10.052 に対応します。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-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-supersede は現在のバッファのメッセージを代替するメッセージバッファを作り表示します。

message-ignored-supersedes-headers に合致するヘッダーは新しいメッセージバッファを作り上げる前に取り除かれます。初期値は

^Path:\\|^Date\\|^NNTP-Posting-Host:\\|^Xref:\\|^Lines:\\|

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

転送
==

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

message-forward-state-separator
     転送されるメッセージの前に挿入される区切りです。初期値は

     ------- Start of forwarded message -------\n です。

message-forward-end-separator
     転送されるメッセージの後に挿入される区切りです。初期値は

     ------- End of forwarded message -------\n です。

message-signature-before-forwarded-message
     もしこの変数が t であると、それが初期値ですが、あなたの個人的な署名が転送されるメッセージの前に挿入されます。もしそうでなければ、転送されるメッセージは新しいメールの最初に挿入されます。

message-included-forward-headers
     これは正規表現で、それは転送されるメッセージに含まれるヘッダー行に合致するものです。

再送
==

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

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

失敗
==

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

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

命令
**

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

これらの全ての命令は当のヘッダーに移動します。もしそれが存在しないと、それは挿入されます。

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

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

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-b
     メッセージの本体の先頭に移動します (message-goto-body)。

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

挿入
==

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

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

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

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

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

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

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

message-yank-prefix
     あなたが記事に返答かフォローアップをしているときは、普通はあなたが応答している人のものに引用符を付けたいでしょう。引用文の挿入は 貼り付けによってなされ、それぞれの貼り付けられた引用行はその前に message-yank-prefix を付けられます。初期値は >  です。もしそれが nil であれば、メッセージの字下げだけをします。

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

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

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

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

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

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

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

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

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

C-c C-e
     ポイントとマークの間の文を省きます (message-elide-region)。文章は切られて (killed) 省略符号 ([...] がその場所に挿入されます。

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

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

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

     これは例です:

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

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

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

          *

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

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

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

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

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

送信
==

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-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 を押すだけで別名を伸張します。

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

変数
**

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

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

message-generate-headers-first
     nil でなければ、メッセージの作成を始める前に全てのヘッダーを作成します。

message-from-style
     From ヘッダーがどのように見えるかを指定します。4つの合法的値があります:

     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'') を代わりに使うように ``国際化'' しました。それは意味が無く、邪悪です。しかし、これらの邪悪な道具を使った利用者を扱わなければならないかもしれませんので、そのような場合はこの変数をこれらの接頭語に合うような正規表現に設定するでしょう。私自身は、そのような規格に従わないメールはただ捨て去っているだけです。

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

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

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

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

メール変数
=====

message-send-mail-function
     現在のバッファをメールとして送るために使われる関数です。初期値は message-send-mail-with-sendmail です。もし代わりに MH で送るのを好むのであれば、この変数を message-send-mail-with-mh に設定して下さい。

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

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

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 が作成されます。Message は mail-host-address が定義されていれば、それを fully qualified domain name (FQDN) (完全に条件を満たしたドメイン名) として使います。もしそうでなければ、それは system-name を使い、それはいくつかのマシン -- 主に Sun では、FQDN を報告しません。

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

X-Mailer
     この選択自由なヘッダーは、既に X-Nesreader ヘッダーが存在している場合以外は、ローカル変数 message-mailer にしたがって作られます。

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 でないときだけ挿入されます。

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

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
          記事が空かどうかを調べます。

     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: です。

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

新しい変数
=====

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

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

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

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

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

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

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
             "Mime-Version: 1.0"
             "Content-Type: text/plain"
             "Content-Transfer-Encoding: 7bit"))

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

message-send-mail-hook
     メールメッセージを送る前に実行されるフックです。

message-send-news-hook
     ニュースメッセージを送る前に実行されるフックです。

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

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

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

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

利用者はいろいろな方法でメッセージバッファから出るかもしれません。一番良くあるのは 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 ヘッダーの基として使われ、ます。