# The Mutt E-Mail Client

## by Michael Elkins <me@cs.hmc.edu>

version 1.5.10 +20050813

``All mail clients suck. This one just sucks less.'' -me, circa 1995

## 1. 紹介

Mutt は小さいながらも非常にパワフルなテキストベイス MIME メイルクライアントです。その高い柔軟性に加えて、キー割り当てや キーボードマクロ、メイルのスレッド表示、正規表現検索、さらには メッセイジ選択用の強力なパターン言語といった高度な機能により、 まさしくメイルのパワーユーザにぴったりであると言えます。

> 「メイルクライアントはぜんぶ腐ってる。こいつはそれほど腐っちゃいない ってだけのことさ」 - 作者 Michael Elkins, 1995 年頃の発言

## 1.1 ホウムペイジ

http://www.mutt.org/

## 1.2 メイリングリスト

以下のメイリングリストを講読するにはメッセイジ本文に subscribeと書いて `mutt-○○`-request`@mutt.org` に送ってください。

- mutt-announce@mutt.org ―　流量の少ない、アナウンス用リスト
- mutt-users@mutt.org ―　質問、バグ報告、要望
- mutt-dev@mutt.org ―　開発メイリングリスト

メモ: mutt-announce への投稿は自動的に mutt-users に転送されるので、両方を講読する必要はありません。

## 1.3 ソフトウェア配布サイト

- ftp://ftp.mutt.org/mutt/

ミラーサイトについては http://www.mutt.org/download.html をご覧ください。

## 1.4 IRC

irc.freenode.net (www.freenode.net) のチャンネル #mutt に行けば、Mutt に関心のある人と会話できます。 (訳注：ただし、英語。なお、このチャンネル利用者の心得が wiki.mutt.org に書いてある。必ずしも即座に反応があるわけではないので、 「だれかいる?」というような質問をせず、だまって相談し、しばらく待つべし、 とのこと。日本語の Mutt チャンネルはどこかにあるのだろうか……。)

## 1.5 USENET

ニューズグループ comp.mail.mutt を見てください。

## 1.6 Copyright (著作権)

Mutt is Copyright (C) 1996-2000 Michael R. Elkins <me@cs.hmc.edu> and others

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.

(参考訳)

このプログラムはフリーソフトウェアです。Free Software Foundation による GNU General Public License のヴァージョン 2 もしくはそれ以降のヴァージョン (自由選択) のいずれかに従う限り、自由に変更および再配布できます。

このプログラムは役に立つことを願って配布されていますが、「まったく無保証」です。商品能力や特定の目的への適性について、暗黙の保証さえありません。詳細は GNU General Public License を参照してください。

GNU General Public License の文面は、このプログラムに付いてきたはずです。そうでなければ、Free Software Foudation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA に手紙をください。

## 2. 開始

この章の目的は Mutt の使い方を概観することです。 ほかにもマニュアルの別の場所で説明されている機能はたくさんあります。 さらには Mutt FAQ や種々のウェブペイジで手に入る情報もあります。 詳しくは Mutt Page を参照してください。

この章では、配布されているままの既定のキー割り当てで説明します。 自分のサイトではシステム管理者が既定値を変えてしまっている かもしれません。どのメニューでも "?" を押して 現在のキー割り当てを表示できます。

まず必要なのは Mutt を起動することです。コマンドラインから mutt と入力するだけです。コマンドラインの種々のオプションについては mutt の man ペイジか 「早見」の章を 参照してください。

## 2.1 メニュー内で動きまわる

情報はメニューの中に、ELM そっくりの形式で表示されます。 以下は各メニューでの操作に共通のキーの表です。

> `

>     j と Down       next-entry      次の項目へ移動
>     k と Up         previous-entry  前の項目へ移動
>     z と PageDn     page-down       次のペイジに行く
>     Z と PageUp     page-up         前のペイジに行く
>     = と Home       first-entry     最初の項目に飛ぶ
>     * と End        last-entry      最後の項目に飛ぶ
>     q               quit            現在のメニューを終了
>     ?               help            現在のメニューのキー割り当てを表示

> `

## 2.2 入力領域を編集する

Muttには内蔵ラインエディタがあり、これが メイルアドレスやファイル名のような文字デイタ入力の主要な手段となっています。 編集中に動きまわるためのキーは Emacs によく似ています。

> `

>     ^A or <Home>    bol             行頭に移動
>     ^B or <Left>    backward-char   一文字戻る
>     Esc B           backward-word   一語戻る
>     ^D or <Delete>  delete-char     カーソル位置の文字を削除
>     ^E or <End>     eol             行末に移動
>     ^F or <Right>   forward-char    一文字進む
>     Esc F           forward-word    一語進む
>     <Tab>           complete        ファイル名やエイリアスを補完
>     ^T              complete-query  問い合わせでアドレスを補完
>     ^K              kill-eol        行末まで削除
>     ESC d           kill-eow        単語の終わりまで削除
>     ^W              kill-word       カーソルの前の一語を消す
>     ^U              kill-line       一行全体を削除
>     ^V              quote-char      次に入力するキーに引用符を付ける
>     <Up>            history-up      履歴から前の入力文字列を呼び出す
>     <Down>          history-down    履歴から次の入力文字列を呼び出す
>     <BackSpace>     backspace       カーソルの前の一文字を削除
>     Esc u           upcase-word     単語を大文字に変換
>     Esc l           downcase-word   単語を小文字に変換
>     Esc c           capitalize-word 単語の最初の文字を大文字に変換
>     ^G              n/a             取消
>     <Return>        n/a             編集を終了

> `

エディタ (editor) の関数を割り当て直すには bind コマンドを使います。 例えば、Delete キーを押したときに、カーソルの乗っている文字ではなく カーソルの前にある文字を消すようにするには、こうしてください。

`bind editor <delete> backspace`

## 2.3 メイルを読む　―　インデックスとペイジャ

他の多くのメイルクライアントと同様、Mutt ではメイルを読むモウドが二つあります。 第一のモウドはメイルボックス内のメッセイジ一覧です。 これを Mutt では「インデックス」 (index) と呼んでいます。 第二のモウドはメッセイジの内容表示です。これは「ペイジャ」 (pager) といいます。

続く数節で、これらのモウドそれぞれに提供されている関数を説明します。

### メッセイジインデックス

> `

>     c               メイルボックスを変更
>     ESC c           フォルダを読み出し専用モウドに変更
>     C               現在のメッセイジを別のメイルボックスにコピー
>     ESC C           メッセイジを復号化してフォルダにコピー
>     ESC s           メッセイジを復号化してフォルダにセイヴ (移動)
>     D               パターンに合致するメッセイジを削除
>     d               現在のメッセイジを削除
>     F               大事だとして印付け
>     l               パターンに合致するメッセイジを表示
>     N               新しいとして印付け
>     o               現在の整列方法を変更
>     O               メイルボックスを逆順に整列
>     q               変更を保存して終了
>     s               メッセイジをセイヴ (移動)
>     T               パターンに合致するメッセイジにタグ付け
>     t               メッセイジのタグを切替
>     ESC t           メッセイジスレッド全体のタグを切替
>     U               パターンに合致するメッセイジの削除を解除
>     u               メッセイジの削除を解除
>     v               添付ファイルを閲覧
>     x               変更を破棄して終了
>     <Return>        メッセイジを表示
>     <Tab>           次の新しいメッセイジに飛ぶ
>     @               差出人の完全なメイルアドレスを表示
>     $               変更をメイルボックスへ保存
>     /               検索
>     ESC /           逆順に検索
>     ^L              画面を消して再描画
>     ^T              パターンに合致するメッセイジのタグをはずす

> `

### ステイタスフラグ

メッセイジ送信者と題に加えて、各メッセイジの状態の短い要約が メッセイジ番号のそばに書かれます。 次の「フラグ」の中に適合するものがあれば表示されます。意味は以下の通りです。

D

  削除メッセイジである (削除予定の印が付いている)

d

  メッセイジ中に、削除予定の添付ファイルがある

K

  PGP 公開鍵を含んでいる

N

  メッセイジが新しい

O

  メッセイジが古い

P

  メッセイジが暗号化されている

r

  メッセイジが返信済み

S

  メッセイジが署名されており、その署名が検証済み

s

  メッセイジが署名されている

!

  メッセイジが重要フラグ付き

*

  メッセイジがタグ付き

ステイタスフラグの一部は、次のコマンドを使ってオン／オフできます。

- set-flag (既定では w)
- clear-flag (既定では W)

さらに、次のフラグはメッセイジが誰にあてられたものなのかを反映するものです。 これは $to_chars 変数によって 変更できます。

+

  メッセイジが To で自分だけに宛てられている

T

  メッセイジが To で自分に宛てられているが、他の人にも To か Cc されている

C

  メッセイジが自分に Cc されている

F

  メッセイジが自分発

L

  メッセイジが購読しているメイリングリストに送られている

### ペイジャ

既定では、Mutt は内蔵ペイジャを使ってメッセイジ本文を表示します。 このペイジャは Unix プログラムの less によく似ていますが、 less ほど多機能ではありません。

> `

>     <Return>        一行下に移動
>     <Space>         次のペイジ (メッセイジの終わりでは次のメッセイジ) を表示
>     -               前のペイジに戻る
>     n               次の合致部分を検索
>     S               引用文を飛ばす
>     T               引用文の表示を切替
>     ?               キー割り当てを表示
>     /               正規表現 (パターン) を検索
>     ESC /           正規表現を逆順に検索
>     \               検索パターン着色を切替
>     ^               メッセイジの一番上に飛ぶ
>     $               メッセイジの一番下に飛ぶ

> `

上記に加えて、インデックスの関数の多くがペイジャでも使えます。 例えば delete-message (削除) や copy-message (コピー) などです (これは、外部ペイジャでメッセイジ閲覧するよりも 便利な点の一つです)。

また、内部ペイジャはさらに二つの優れた機能をサポートしています。 第一に、nroff の「標準」シークウェンスを受け付け、太字や下線を解釈します。 シーケンスは連続で「文字、バックスペイス (^H)、同じ文字」なら太字、 「文字、バックスペイス、"_"」なら下線付き文字です。 端末がサポートしていれば、これを Mutt はそれぞれ太字と下線付き文字として 表示しようとします。サポートしていなければ bold (太字) と underline (下線) という color のオブジェクトを使って色属性か白黒属性を指定できます。

さらに、内部ペイジャは ANSI エスケイプシークウェンスの文字属性を サポートしています。 Mutt がそのシークウェンスを正しい色や文字設定に解釈してくれるのです。 Mutt がサポートしているシークウェンスは以下の通りです。

> `

>     ESC [ Ps;Ps;Ps;...;Ps m
>     Ps は
>     0    全属性解除
>     1    太字あり
>     4    下線付き
>     5    点滅あり
>     7    反転表示
>     3x   文字色を x に
>     4x   背景色を x に

>     色は
>     0    黒
>     1    赤
>     2    緑
>     3    黄
>     4    青
>     5    赤紫 (マゼンタ)
>     6    青緑 (シアン)
>     7    白

> `

Mutt はこれらの属性を text/enriched メッセイジの取り扱いに使いますし、 外部の 自動閲覧 スクリプトから 着色の目的で使うこともあります。 注意: 画面の色を変更すると、上記と違う色になります。 例えば xterm で color2 に対応する色を変更すると、 緑色のはずの部分に xterm ではその変更した色が使われます。

### スレッドモウド

メイルボックスがスレッドで 整列されているときは、さらにいくつかの関数が インデックスモウドとペイジャモウドで利用できます。

> `

>     ^D      delete-thread        現在のスレッドのメッセイジをすべて削除
>     ^U      undelete-thread      現在のスレッドのメッセイジの削除をすべて解除
>     ^N      next-thread          次のスレッドの始点に飛ぶ
>     ^P      previous-thread      前のスレッドの始点に飛ぶ
>     ^R      read-thread          現在のスレッドを既読にする
>     ESC d   delete-subthread     現在のサブスレッドのメッセイジをすべて削除
>     ESC u   undelete-subthread   現在のサブスレッドのメッセイジの削除予定をすべて解除
>     ESC n   next-subthread       次のサブスレッドの始点に移動
>     ESC p   previous-subthread   前のサブスレッドの始点に移動
>     ESC r   read-subthread       現在のサブスレッドを既読にする
>     ESC t   tag-thread           現在のスレッドのタグを切替
>     ESC v   collapse-thread      現在のスレッドの折りたたみを切替
>     ESC V   collapse-all         すべてのスレッドの折りたたみを切替
>     P       parent-message       スレッド中の親メッセイジに飛ぶ

> `

メモ: スレッドを折りたたむと、スレッドの 最初のメッセイジだけが表示されて、他は隠れます。 これは、一つのスレッドにメッセイジがたくさん含まれていて、 画面にほんの一握りのスレッドしか見えないというときに便利です。 $index_format の %M を見てください。例えば $index_format に "%?M?(#%03M)&(%4l)?" という設定を使って、スレッドが折りたたまれているときに 隠れているメイルの数を表示するようにできます。

参照: $strict_threads

### その他の機能

エイリアスの作成 / create-alias (既定値: a)

現在のメッセイジをもとに (あるいは新規プロンプトで) 新しいエイリアスを 作成します。編集を終えると、 $alias_file で指定したファイルに alias コマンドが追加されて、あとから使えるようになります。 注意: $alias_file を指定しただけでは、中の alias を追加することになりません。そのファイルを source する必要もあります。

伝統的 PGP のチェック / check-traditional-pgp (既定値: ESC P)

この関数は現在のメッセイジを調べて、「伝統的な」方法で PGP の署名・暗号化がなされている内容を探します。 「伝統的」というのは、つまり適切な MIME タグのないもののことです。 技術的なことを言うと、この関数は、PGP デイタを含むパートの MIME content type を一時的に変更します。つまり edit-type 関数の効果と似ています。

へッダ間引きの切替 / display-toggle-weed (既定値: h)

ignore コマンドで指定された ヘッダフィールドの間引き表示を切り替えます。

編集 / edit (既定値: e)

このコマンド (インデックスとペイジャで利用可) は、 現在のメッセイジを「なま」で編集する、つまり、 メイルフォルダにある姿のままで編集するコマンドです。 編集を終えると、変更されたメッセイジは現在いるフォルダに追加され、 オリジナルのメッセイジは削除のために印付けられます。

content-type の編集 / edit-type
(既定値: 添付ファイルメニュー、ぺイジャ、およびインデックスメニューでは ^E, コンポウズメニューでは ^T)

このコマンドは添付ファイルの content type を一時的に編集するために使い、 例えば偽装してある文字セットのパラメータを修正したりします。 インデックスやペイジャから使うと最上位の添付ファイルの content type を編集できます。 添付ファイルメニューから使えば、どの添付ファイルの content type でも変更できます。この変更は永続的なものではなく、 フォルダ変更によって消えてしまいます。

このコマンドは コンポウズメニューでも使える ということを覚えておいてください。このメニューでは、 送信する添付ファイルの性質を調整するために使います。 (訳注：この場合は永続的な変更)

コマンドの入力 / enter-command (既定値: ":")

このコマンドは、通常だと設定ファイルの中に入れるようなコマンドを 動作中の Mutt 上で実行するために使います。 一般的な使い方としては、変数の設定をチェック (訳注：":set ?変数名") したり、 macro と組み合わせて動作中に設定を変更するために 使ったりします。

公開鍵の抽出 / extract-keys (既定値: ^K)

このコマンドは PGP 公開鍵を現在のメッセイジやタグ付きメッセイジから 抽出して自分の PGP 公開鍵束に追加します。

パスフレイズの忘却 / forget-passphrase (既定値: ^F)

このコマンドはパスフレイズをメモリ上から消去します。 パスフレイズを誤入力したときに使います。

メイリングリストへの返信 / list-reply (既定値: L)

現在のメッセイジやタグ付きメッセイジから lists や subscribe コマンドで指定されている正規表現に合致するアドレスを抽出して、 そこに返信するコマンドです。それだけではなく、もし $honor_followup_to 変数が設定されていると `Mail-Followup-To` へッダを信用します。 メイリングリストに投稿されたメッセイジに返信するときに これを使えば、返信する元メッセイジの差出人とメイリングリストへ 二重に送信するのを避ける助けになります。

メッセイジのパイプ / pipe-message (既定値: |)

外部 Unix コマンドの入力を要求して、現在のメッセイジやタグ付き メッセイジをそこにパイプします。 $pipe_decode, $pipe_split, $pipe_sep, $wait_key 変数が この関数の動作を精密に制御します。

メッセイジの再送 / resend-message (既定値: ESC e)

resend-message を使うと、Mutt は現在のメッセイジを雛型として 新しいメッセイジを作成します。 この関数は「任意のフォルダの復元」と説明するのが最適でしょう。 MIME メッセイジを、もともとのメイル構造を保ったまま転送するのに便利です。 このときに含まれるへッダは $weed 変数に 依存しているということに注意してください。 (訳注：ただ添付ファイルごと転送したいだけであれば、添付ファイルメニューから すべてのファイルにタグを付けて「;f」、すなわち tag-prefix, forward-message をする方が、余計なヘッダが付かなくて良いかもしれない。)

この関数は添付ファイルメニューからも利用できます。 これを使えば message/rfc822 パートとして転送されてきたメッセイジを 簡単に再送できます。

シェルコマンドの実行 / shell-escape (既定値: !)

外部 UNIX コマンドの入力を要求し、それを実行します。 $wait_key を使って、コマンドが終了したときに (おそらくコマンドの出力をユーザが読めるようにするため) 何かキーが押されるまで 待つかどうかをコマンドの戻り値で制御するようにできます。 (訳注：$wait_key が no だと、戻り値が 0 以外のときのみ キー入力を待つ。)

引用文表示の切替 / toggle-quoted (既定値: T)

メッセイジ本文の表示中に、ペイジャは $quote_regexp 変数を使って引用文を検出します。 この関数はメッセイジ中の引用部分を表示するかどうかを切り替えます。 特に、返事だけに興味があるのに大量の引用文があって邪魔だというようなときに 役に立ちます。

引用文をとばして移動 / skip-quoted (既定値: S)

内部ペイジャにおいて、この関数は、 引用文の行のあとの非引用文の行に移動します。

## 2.4 メイルを送信する

以下のコマンドがメイル送信のためにインデックスで利用できます。

> `

>     m       compose      新規メッセイジを作成
>     r       reply        差出人へ返信
>     g       group-reply  受信者全員へ返信
>     L       list-reply   メイリングリストのアドレスへ返信
>     f       forward      メッセイジを転送
>     b       bounce       メッセイジを中継 (再送)
>     ESC k   mail-key     だれかに PGP 公開鍵を送信

> `

メッセイジの中継は、指定した宛先に「あるがまま」のメッセイジを送信します。 メッセイジの転送は、転送するメッセイジにコメントを付けたり変更したりできます。 これらに関しては次の節 「メイルを転送・中継する」 で詳しく論じられています。

上記のコマンドを使うと Mutt はコンポウズ (compose) メニューに入り、 "To:" ヘッダフィールドに入れる宛先の入力を促します。 次にメッセイジの "Subject:" フィールドを聞いてきますが、 メッセイジの返信や転送のときは既定値が入っています。 このとき Mutt がどう質問するのかを変更するには、 $askcc, $askbcc, $autoedit, $fast_reply を参照してください。

それから Mutt はメッセイジ本文に対して エディタ ($editor) を起動します。 $edit_headers 変数が設定されているときは、 メッセイジの上にヘッダもあります。 メッセイジには、返信するメッセイジが整列の順に取り込まれ、それぞれに適切な 由来 ($attribution), 引用文字列 ($indent_string), 引用終了文字列 ($post_indent_string) が付きます。メッセイジ転送時、 $mime_forward 変数が設定されていなければ、 転送するメッセイジのコピーも本文に取り込まれます。また、 署名ファイル ($signature) を指定してあれば、 そのファイルも付加されます。

送信メッセイジの本文を編集し終えると、コンポウズメニューに戻ります。 以下の選択肢があります。

> `

>     a      attach-file          ファイルを添付
>     A      attach-message       メッセイジにメッセイジを添付
>     ESC k  attach-key           PGP 公開鍵を添付
>     d      edit-description     添付ファイルの内容説明を編集
>     D      detach-file          添付ファイルをはずす
>     t      edit-to              To フィールドを編集
>     ESC f  edit-from            From フィールドを編集
>     r      edit-reply-to        Reply-To フィールドを編集
>     c      edit-cc              Cc フィールドを編集
>     b      edit-bcc             Bccフィールドを編集
>     y      send-message         メッセイジを送信
>     s      edit-subject         題名を編集
>     S      smime-menu           S/MIME オプションを選択
>     f      edit-fcc             "Fcc" メイルボックスを指定
>     p      pgp-menu             PGP オプションを選択
>     P      postpone-message     メッセイジを次回まで延期
>     q      quit                 メッセイジ送信を中断 (または中止)
>     w      write-fcc            メッセイジをフォルダに書き込む
>     i      ispell               綴りを確認 (利用可能なシステムならば)
>     ^F     forget-passphrase    メモリからパスフレイズを拭い去る

> `

注意: attach-message 関数は、添付したいメッセイジのあるフォルダを 入力するよう促します。そこのフォルダでメッセイジにタグを付ければ、 そのメッセイジを送信メッセイジに添付できます。(訳注：タグを付けたあとは q でコンポウズメニューに戻れる。) このフォルダにいるときは新規メッセイジ作成や返信、転送などの操作が できないということに注意してください。 $status_format に %r があれば、 それが A に変わって、メッセイジ添付 (attach-message) モウドにいることを示します。

### メッセイジヘッダを編集する

送信メッセイジのヘッダを編集するときには、 いくつか特別な機能が利用できます。

`Fcc:` ファイル名
を指定すると、あたかもコンポウズメニューで edit-fcc 関数を使ったかのようにファイル名を扱います。

また、
`Attach:` ファイル名 [ 内容説明 ]
を指定してメッセイジにファイルを添付することもできます。 ここで ファイル名 は添付するファイルで、 内容説明 は添付ファイルの説明に使う付加的な文字列です。

メッセイジに返信するときにヘッダフィールドから In-Reply-To: フィールドを削除すると Mutt は Reference: フィールドを生成しません。 このようにして新規のメッセイジスレッドを作成することができます。

edit_headers も参照してください。

### Mutt で PGP を使う

PGP を使いたい場合は

`Pgp:` [ `E` | `S` | `S`<id> ]

を指定してください。"E" は暗号化、"S" は署名、 "S<id>" は指定した鍵で署名します。 鍵は $pgp_sign_as で 恒久的に設定できます。

メッセイジを PGP で暗号化するよう Mutt に言うと、 メッセイジを送信しようとするときに鍵選択プロセスを通るよう指示されます。 Mutt は、信用できるユーザ ID があってメッセイジ宛先のメイルアドレスに合致する鍵 については何も尋ねません。 しかしながら、鍵が複数あったり、ユーザ ID フィールドの信用度が弱かったり、 合致する鍵がひとつも見つからないという状況もありえます。

こういう場合には、鍵を選択できる一覧のメニューに行かされます。 そのメニューを終了したり、合致する鍵を Mutt が見つけられなかったりすると、 ユーザ ID の入力を促されます。普段どおり、このプロンプトは `^G` を使って中止できます。そうすると Mutt はコンポウズ画面に戻ります。

正しく鍵選択を完了すると、そのメッセイジは 選択した公開鍵を使って暗号化され送信されます。

鍵選択メニューの項目 ( $pgp_entry_format も参照) の ほとんどのフィールドの意味は明白ですが、 能力 (capabilities), フラグ (flags), 信用度 (validity) のフィールドについて 少し説明しておいても良いでしょう。

フラグシークウェンス (%f) は以下のフラグのいずれかに展開されます。

> `

>     R            鍵は破棄されており、使えない
>     X            鍵は期限切れになっており、使えない
>     d            自分で鍵を使用不可に印付けた
>     c            未知の重要な自己署名パケットがある

> `

能力フィールド (%c) は、鍵の能力を表わす二文字シークウェンスに展開されます。 第一の文字は暗号化能力です。 マイナス (-) は暗号化に使えないという意味です。 ドット (.) はいずれかのユーザ ID の署名鍵として印付けられているけれども 暗号化にも使えるという意味です。"e" の文字は 暗号化 (encryption) に使えるという意味です。

第二の文字は鍵の署名能力を表しています。こちらもやはり、 "-" は「署名用ではない」という意味で、"." はあるユーザ ID の暗号化鍵として印付けられているという意味、 "s" は署名に使えるという意味です。

最後に、信用度フィールド (%t) は ユーザ ID がどれほどしっかり確証されているかを示します。 疑問符 (?) は信用度が未定義だという意味で、 マイナス (-) は信用できない関係、 スペイス文字は部分的に信用できる関係、 プラス (+) は完全な信用度を表しています。

### 匿名メッセイジを Mixmaster 経由で送信する

Mutt を Mixmaster 匿名リメイラ (remailer) と共働するよう 設定してあるかもしれません。(訳注：日本では法律に抵触するかもしれない。) Mixmaster はリメイラのチェインを使って匿名でメッセイジを送信できます。 Mutt の Mixmaster サポートは Mixmaster version 2.04 (beta 45 が最新のようです) と 2.03 に対するものです。これ以前のヴァージョンと、これ以降の version 3 beta と呼ばれるヴァージョン (2.9b23 が最新のようです) は サポートしていません。

Mixmaster を使うにはいくつかの制限に従わなくてはなりません。 最も重要なのは `Cc` と `Bcc` へッダを使えないということです。 Mutt から Mixmaster を使うには、まずコンポウズメニューで mix 関数を使って リメイラチェインを選ばなくてはなりません。

チェイン選択画面はふたつの部分に分かれています。 上の (広い方の) 部分では使えるリメイラの一覧を見ることができます。 下の部分では現在選択されているリメイラチェインを参照できます。

このチェインの中を `chain-prev` 関数と `chain-next` 関数を使って渡り歩けます。 この関数は既定では左右の矢印キーと `h` と `l` キーに割り当てられています (vi のキーバインドを考えてください)。 新しいリメイラを現在のチェイン位置に挿入するには `insert` 関数を使ってください。 リメイラを現在のチェイン位置の後に追加するには `select-entry` か `append` を使ってください。 `delete` 関数を使ってチェインから項目を消すこともできます。 最後に、メニューをそのまま抜けて変更を破棄するか、 (既定値では) リターンキーを押して承認 (`accept`) してください。

リメイラごとに持っている能力が違うということに注意してください。 その能力はリメイラメニューの %c の項目で表示されています ( $mix_entry_format を参照してください)。 一番重要なのは大文字の "M" で示される "middleman" 能力です。 これは問題のリメイラが、チェインの最終要素にはなれないとはいえ、 他の mixmaster リメイラにメッセイジを転送することはできるという意味です。 他の能力の詳細については Mixmaster の文書を見てください。

## 2.5 メイルを転送・中継する

中継と転送は、既存メッセイジを自分で指定した宛先に送信できる機能です。 メッセイジの中継とは、コピーを別のアドレスに送信することですが、 その際、あたかもそこが元々の宛先であるかのように送信する方法で sendmail コマンドを使います。 一方、メッセイジの転送は、再送の前にメッセイジを変更できます (例えばコメントを加えるなど)。

既定では次のキーが割り当てられています。

> `

>     f       forward         メッセイジを転送
>     b       bounce          メッセイジを中継 (再送)

> `

転送は $mime_forward 変数の値によって、オリジナルのメッセイジを新規メッセイジの本文に (それとわかるように示す行で囲んで) 取り込むか、もしくは MIME 添付ファイルとして取り込みます。 添付ファイルをペイジャのように復号化するかどうかは、それぞれ $forward_decode 変数と $mime_forward_decode 変数で制御できます。どちらの転送方法が良いかは内容によります。 そのため $mime_forward は四択オプション (quadoption) になっていて、例えば "ask-no" にすることができます (訳注： ask-no は「質問の際に Return だけ入力したときは no とみなす」 という意味)。

$mime_forward が設定されていない限り、へッダの取り込みはその時点の $weed 変数の設定によって制御されます。

転送のためのメッセイジ編集は、新規送信や返信と同じ手順に従います。

## 2.6 メイルを延期する

たまに、メッセイジをすでに書き始めたものの、 送信は後にしたいということがあります。 postpone-message 関数をコンポウズメニューで 使うと、メイルの本文と添付ファイルは $postponed 変数で指定されたメイルボックスに格納されます。 これはつまり、Mutt を終了して次回また起動したとしても、 そのメッセイジを呼び出せるということです。

メッセイジを延期したあとで再開するには、いくつかの方法があります。 コマンドラインからは "-p" オプションが使えますし、 インデックスやペイジャから新規作成 (compose 関数) を実行すると、延期したメッセイジがあるときには再開するかどうか聞かれます。 延期メッセイジが複数あるときは、延期 (postponed) メニューが出てきて、 どのメッセイジを再開したいか選択できます。

注意: メッセイジに対する返信を延期したならば、返信済みフラグが 更新されるのは返信メッセイジを実際に完成させて送信したときだけだということに 注意してください。しかも、その親メッセイジと同じフォルダにいなければ 状態がきちんと更新されません。

$postpone という quadoption (四択オプション) についてもご覧下さい。 (訳注： postponed とは違う。末尾の "d" に注意！)

## 3. 設定

既定の設定 (すなわち初期値) は、そのままでも Mutt が使えるように なっていますが、Mutt を自分の好みにあわせて仕立てたいということもよくあります。 起動したとき、 コマンドライン オプションの "-n" が指定されていなければ Mutt は最初に「システム」設定ファイル (システム管理者が設定した既定値) を読み出そうとします。この設定ファイルは多くの場合、 `/usr/local/share/mutt/Muttrc` か `/etc/Muttrc` です (訳注：FreeBSD などでは `/usr/local/etc/Muttrc` も多いと思う)。 次に Mutt はホウムディレクトリの `.muttrc` というファイルがないか探します。 もしこのファイルが存在せず、ホウムディレクトリに `.mutt` というサブディレクトリがあれば、`.mutt/muttrc` というファイルを読み込もうとします。

`.muttrc` は、普段から自分用の コマンドを入れておいて Mutt を設定するためのファイルです。

それに加えて Mutt は、上で説明した既定のファイルの代わりに実行する、 特定ヴァージョンの設定ファイルをサポートしています。例えば システム設定ディレクトリに `Muttrc-0.88` というファイルがあって Mutt のヴァージョン 0.88 を使っていると、`Muttrc` ではなく そのファイルが読み込まれます。 ユーザ設定ファイルに関しても同じことが言えます。 ホウムディレクトリに `.muttrc-0.88.6` というファイルがあると、 ヴァージョン 0.88.6 の Mutt を走らせたときには 既定の `.muttrc` の代わりにこのファイルを読み込みます。 ヴァージョン番号は、 コマンドラインスウィッチの "-v" を使ったり、インデックスメニューから `show-version` のキー (既定値: V) を使ったりして表示されるものと 同じです。

## 3.1 初期化ファイルの構文

初期化ファイルは一連の「コマンド」から成っています。 ファイルの各行には、ひとつでも複数でもコマンドを入れられます。 複数コマンドを使うときはセミコロン (;) で区切らなければなりません。

> `

>     set realname='Mutt ユーザ' ; ignore x-

> `

ハッシュマーク、別名ポンド記号 ("#") は 「コメント」文字として使われます。これは初期化ファイルへの注釈に使えます。 コメント文字以降の文章はすべて無視されます。例えば

> `

>     my_hdr X-Disclaimer: Why are you listening to me? # ここはコメントです

> `

シングルクウォウト (') とダブルクウォウト (") を使って、 スペイスその他の特殊な文字を含む文字列を扱えます。 この二種類の引用符の違いは、多くの一般的なシェルプログラムに似ています。 つまり、シングルクウォウトはその字面どおりの (シェル変数にも変換されず、 バックスラッシュでの文字指定 [次の段落を参照] も変換されないままの) 文字列を指定するために使う一方、ダブルクウォウトは、中の文字列を解釈すべきだ ということを示します。 例えば、バックティック (`) はダブルクウォウトの中では解釈されますが、 シングルクウォウトの中では解釈されません。

\ は、その次の文字をそのまま指定 (原語：quote) します。 ちょうど bash や zsh のようなシェルと同じです。 例えば引用符「"」を文字列の中に入れて使いたいときに 「\」を使って、解釈しない文字どおりの引用符にすることができます。

> `

>     set realname="Michael \"MuttDude\" Elkins"

> `

「\\」は「\」そのものを意味します。 「\n」と「\r」は通常の C での意味合いと同じで、 それぞれ改行 (LF = linefeed) と復帰 (CR = carriage-return) を意味します。

行末に \ を使えば、コマンドを複数の行に分割できます。 ただし分割地点がコマンド名の途中であってはなりません。

さらには初期化ファイルの中で、一部を Unix コマンドの出力に 置き換えることも可能です。 これはコマンドをバッククウォウト二つ (``) ではさむことによって行なえます。 例えば、

> `

>     my_hdr X-Operating-System: `uname -a`

> `

この `uname -a` の部分は、行を実行する前に「uname -a」という Unix コマンドの 出力で置き換えられます。 ここで注意すべきなのは、初期化ファイルが行指向であるゆえ、 Unix コマンドの出力の最初の行だけにしか置換されないということです。

UNIX 環境変数には、sh や bash といったシェルでやるようにしてアクセスできます。 環境変数の名前の前に "$" を付けるのです。 例えばこうです。

> `

>     set record=+sent_on_$HOSTNAME

> `

Mutt が解釈できるコマンドについては、次節以降で説明していきます。 全コマンド一覧は コマンド早見表を見てください。

## 3.2 エイリアスを定義・使用する

使い方: `alias` エイリアス アドレス [ , アドレス, ... ]

連絡を取ろうとしている人のアドレスをいちいち思い出したり入力したりするのは、 通常とても面倒なことです。 Mutt では、アドレスに割り当てる短い文字列「エイリアス (alias)」を作成できます。

注意: グループに対してエイリアスを作成したい (複数のメイルアドレスを指定したい) 場合は、アドレスを読点 (,) で区切る必要があります。

エイリアスを削除するには、こうします。 ("*" はエイリアス全部という意味です)

`unalias` [ * | キー ... ]

> `

>     alias muttdude me@cs.hmc.edu (Michael Elkins)
>     alias theguys manny, moe, jack

> `

他のメイラとは違い、Mutt は エイリアスを特別のファイルに定義する必要がありません。 コマンド `alias` は、 source などで読み込まれるファイルであれば、どこにでも書けます。 したがって、複数のエイリアスファイルを使うこともできますし、 muttrc の中にすべて定義してしまうこともできます。

その一方で、 create-alias 関数は ひとつのファイルしか使えません。 $alias_file 変数 で指定されるファイルだけ (既定では `~/.muttrc`) です。 しかし、このファイルは特別扱いされるわけではありません。 というのも、Mutt はどのファイルにでもエイリアスを追加できますし、 このファイルもきちんと source しなければ 新規エイリアスが有効にならないのです。

例えばこうです。

> `

>     source /usr/local/share/Mutt.aliases
>     source ~/.mail_aliases
>     set alias_file=~/.mail_aliases

> `

エイリアスの使い方は、いつでも Mutt が To: や Cc: といったプロンプトでアドレスの入力を促すときに、 エイリアスを入力するだけです。 また $edit_headers 変数を設定してあれば、エディタでも適切なヘッダにエイリアスを入力できます。

加えて、種々のアドレス入力プロンプトにおいては、Tab を使えば 一部だけ入力したエイリアスから完全なエイリアスに展開させることができます。 合致するものが複数あると、Mutt は合致したエイリアスのメニューを出します。 エイリアスの完全な一覧を表示させるには、書きかけのエイリアスのない状態で Tab を打たなくてはなりません。 例えばプロンプトの最初や、アドレスが複数あることを示すコンマ (",") の後です。

エイリアスメニューでは、エイリアスを好きなだけ select-entry キー (既定値: RET) で選択してから exit キー (既定値: q) を使ってアドレスのプロンプトに戻れます。

## 3.3 既定のキー割り当てを変更する

使い方: `bind` マップ キー 関数

このコマンドで既定のキー割り当て (キーを押したときに起動する命令) を変更することができます。

マップは、その割り当てがどのメニューのものなのかを指定します。 複数のマップをコンマ (,) で区切って指定することもできます (ただし空白を入れてはいけません)。 現状で定義されているマップはこうなっています。

generic

  これは実際のメニュー名ではなく、ペイジャとエディタ以外の全メニューにおける 最終候補となるものです。Mutt は、キーが実際のメニューで定義されていないとき、 generic の割り当てを使うのです。これによって、関数を複数のメニューのキーに 割り当てることができますので、同じ効果を得るためにいくつも bind を書かなくて済みます。 (訳注：ただし、いちど bind されたキーは noop に bind しても generic を見てくれないので、あまり意味がない。今ではマップを複数指定できるので、 alias,attach,browser,index,compose,postpone,pgp と書く方が確実。)

alias

  エイリアスメニューは、muttrc に定義されている個人的エイリアスの一覧です。 短いエイリアス名から完全なメイルアドレスへの割り当てです。

attach

  この添付ファイルメニューを使って、受信したメッセイジの添付ファイルを扱います。

browser

  ブラウザは、ロウカルのディレクトリ構造を閲覧するためにも使いますし、 受信メイルボックスを一覧するためにも使います。

editor

  このエディタは、ユーザがテキストデイタを入力する一行エディタです。

index

  インデックスとは、メイルボックスに含まれているメッセイジの一覧です。 (訳注：このマニュアルやソースコウドでは「メインメニュー」とも呼ばれる。)

compose

  コンポウズメニューは、新規メッセイジを送信するときに使われる画面のことです。

pager

  このペイジャは、メッセイジおよび添付ファイルのデイタや ヘルプ一覧を表示するために使われるモウドのことです。

pgp

  PGP メニューを使って、送信メッセイジの暗号に使う OpenPGP 鍵を選択します。

postpone

  延期メニューはインデックスメニューに似ていますが、作成して送信せず 次回まで保存しておいたようなメッセイジを復元するときに使うものです。

キー は割り当てたいキー (または キーシークウェンス = キーの組み合わせ) です。コントロウル文字を指定するには \Cx というキーシークウェンスを使ってください。 この x がコントロウル文字です (例えば Control-A を指定するには "\Ca" とします)。x と \C が大文字であるか 小文字であるかは無視されるので注意してください。つまり \CA, \Ca, \cA, \ca はすべて等価です。 別の方式は、"\" に続く三桁の 8 進数としてキーを指定します (例えば \177 は \c? と等価です)。

さらに、これも キー に含められます。

> `

>     \t              タブ (Tab)
>     <tab>           タブ (Tab)
>     <backtab>       Backtab / Shift-Tab
>     \r              キャリッジリターン
>     \n              改行
>     \e              エスケイプ (Esc)
>     <esc>           エスケイプ (Esc)
>     <up>            上矢印 (↑)
>     <down>          下矢印 (↓)
>     <left>          左矢印 (←)
>     <right>         右矢印 (→)
>     <pageup>        Page Up
>     <pagedown>      Page Down
>     <backspace>     Backspace
>     <delete>        Delete
>     <insert>        Insert
>     <enter>         Enter
>     <return>        Return
>     <home>          Home
>     <end>           End
>     <space>         スペイス
>     <f1>            ファンクションキー 1  (F1)
>     <f10>           ファンクションキー 10 (F10)

> `

キー は、スペイスを含まない限り引用符でくくる必要はありません。

関数 は キー が押されたときに取る行動を指定します。 関数すべての一覧については 関数早見表 を参照して下さい。また、特殊な関数 noop を指定すると、 そのキーシークウェンスへの割り当てをなくします。 (訳注：はじめから割り当てられていないキーは generic が有効だが、 noop に割り当てられたキーは常に何もしない。)

## 3.4 文字セットのエイリアスを定義する

使い方: `charset-hook` エイリアス 文字セット
使い方: `iconv-hook` 文字セット 独自の文字セット

`charset-hook` コマンドは文字セット (charset) へのエイリアスを定義します。 これは、Mutt の知らない文字セット名が付いたメッセイジを 正しく表示するために使えます。

`iconv-hook` コマンドは文字セットに対してシステム特有の名前を定義します。 これは、システムの文字変換ライブラリが、文字セットに システム特有のおかしな名前を使うよう主張するときの助けになります。 (訳注：拡張的な文字セットを使うときに、mutt-j:02343 のパッチを当てて "iconv-hook 標準的なセット名 拡張セット名" というような使い方も可能。)

## 3.5 メイルボックスに基づいて変数を設定する

使い方: `folder-hook` [!]パターン コマンド

多くの場合、どのメイルボックスを読んでいるかに合わせて 設定を変更できれば便利です。`folder-hook` コマンドは、 そのようにしてどんな設定コマンドでも実行できる手段を提供します。 パターンは、どのメイルボックスで (読み出す前に) コマンドを実行するかを指定する正規表現です。 メイルボックスが複数の folder-hook に合致したときには muttrc で出て来る順番に実行されます。

注意: もし $spoolfile への ショートカットの "!" をパターンの最初に使うなら、 正規表現の論理演算子 not (否定) と区別するために ダブルかシングルの引用符でくくらなければなりません。

設定はメイルボックスを出るときに復帰しないので注意してください。 例えば、実行したいコマンド動作が、読み出すメイルボックスに合わせて 整列方法を変更することだとします。

> `

>     folder-hook mutt set sort=threads

> `

このようにしたとしても、違うメイルボックスを読み出すときに整列方法が 以前の値に復帰するわけではありません。既定 のコマンドを指定するには "." というパターンを使ってください。

> `

>     folder-hook . set sort=date-sent

> `

(訳者の蛇足：つまり、上記のふたつの folder-hook を組み合わせて使えば、 普段は送信日付で整列するし、"mutt" というパターンに 合致するメイルボックスではスレッド整列になる。 "mutt" に合致するメイルボックスから 合致しないメイルボックスに移るときに送信日付へ戻すために、 二番目の folder-hook が必要だというわけ。)

## 3.6 キーボードマクロ

使い方: `macro` メニュー キー シークウェンス [ 説明 ]

マクロは、キーひとつで連続作業を実行したいときに便利です。 そのメニューでそのキーを押すと、 シークウェンスを入力したのと同様に振る舞うのです。 ですから、よく連続して入力するコマンドがあれば、 マクロを作成してキーひとつでそのコマンドを実行するようにできます。

メニューは、マクロを割り当てる マップです。 複数のマップを指定することもできます。 複数メニューをコンマ (,) で区切れば良いのです。 ただし、メニューとコンマの間に空白を使うことはできません。

キーとシークウェンスは キー割り当てと 同じルールで展開されます。ただ、いくつか追加があります。 第一点は、シークウェンスにおけるコントロウル文字を ^x とも指定できることです。 カレット ("^") を使うには ^^ とする必要があります。 第二に、Up などの一部のキーを指定したり、 関数を直接起動したりするために <キー名> と <関数名> というフォーマットを使えます。 キー名の一覧については キー割り当ての節を 参照してください。関数は 関数早見表で 一覧になっています。

マクロに関数名を直接使う利点は、それによって 動作時のキー割り当てと関係なくマクロが動くので、 特定のキー定義をしてあるユーザでなくとも使えるということです。 これでマクロは堅固かつ可搬 (ポータブル) になり、何人かで使うファイル (例えばシステムの Muttrc) の中でマクロを定義するのも容易になります。 (訳注：ここで逆に考えてみれば、関数名を直接指定しないマクロは、 folder-hook 等で bind を実行するたびに違う結果を得ることができるので 面白いことができるかもしれない。)

必須ではありませんが、説明文をシークウェンスの後ろに指定できます。 これはヘルプ画面に表示されます。

注意: ヘルプ画面に表示されるマクロ定義 (定義されていればですが) は、 自動的に画面の幅に切り取られてしまい、折り返し表示はされません。

## 3.7 色と白黒の画面属性を使う

使い方: `color` 対象 前景 背景 [ 正規表現 ]
使い方: `color` index 前景 背景 パターン
使い方: `uncolor` index パターン [ パターン ... ]

端末がカラー表示をサポートしていれば、独自の色構成を創作して 一味ちがう Mutt にすることができます。ある対象 (情報の型) の色を定義するには 前景色と背景色の両方を指定しなければなりません (前景だけや背景だけを指定することは不可能です)。

対象は次のどれかになります。

- attachment (添付ファイル情報)
- body (メッセイジの本文で正規表現に合致する部分)
- bold (メッセイジの本文の太字強調部分)
- error (Mutt が出力するエラーメッセイジ)
- header (メッセイジヘッダで正規表現に合致する部分)
- hdrdefault (ペイジャにおけるメッセイジヘッダの既定の色)
- index (メッセイジインデックスでパターンに合致する部分)
- indicator (メニューで現在の項目を指し示す矢印もしくはバー [ $arrow_cursor 参照])
- markers (ペイジャで折り返された行の行頭にある "+" マーク)
- message (情報メッセイジ [訳注：エラーでない情報、という意味のように思われる])
- normal (普通の部分)
- quoted (メッセイジの本文で $quote_regexp に合致する文章)
- quoted1, quoted2, ... quotedN (何段階か重なっている引用)
- search (ペイジャでの検索語句の強調)
- signature (署名)
- status (モウドに合わせて、メイルボックスやメッセイジに関する情報を表示する行)
- tilde (ペイジャの空行を埋める "~" の部分)
- tree (メッセイジインデックスと添付ファイルメニューで描かれる スレッドトゥリー)
- underline (メッセイジ本文の下線つきパターンを強調する [訳注：カラーでは下線を使えないのでこれで代用する] )

前景と背景には以下のどれかを使えます。

- white
- black
- green
- magenta
- blue
- cyan
- yellow
- red
- default
- colorx

前景には先頭に bright というキーワードを付けて 太字にすることもできます (例えば brightred)。

端末がサポートしていれば、特別なキーワードである default を 透明色として使えます。また brightdefault という値も有効です。 Mutt が S-Lang ライブラリにリンクされていれば、 透明色が正しく動作するように COLORFGBG 環境変数を 端末の既定色として設定しておく必要もあります。 例えば (Bourne 系シェルの場合) こうです。

> `

>     set COLORFGBG="green;black"
>     export COLORFGBG

> `

注意: この変数を設定するとき、S-Lang ライブラリでは white や yellow を使わず、白には lightgray, 黄色には brown というキーワードを使う必要があります。

注意: uncolor コマンドは index 対象にのみ適用できます。 これは項目をリストから消去します。 消去するには必ず color コマンドで指定したのと同じパターンを指定 しなければなりません。"*" というパターンは特別な印で、 color index のリストを全項目消去することを意味します。

Mutt は color0, color1, ..., colorN-1 (N は端末でサポートされている色の数) といったキーワードも認識できます。 これは、画面の色を (例えば xterm の color2 に関連付けてある色を変更したりして) 割り当て直したときに有用です。色名が通常の意味を失ってしまうからです。

端末がカラー表示をサポートしていなくとも、画面属性を "mono" コマンドの使用によって変更することが可能です。

使い方: `mono` <対象> <属性> [ 正規表現 ]
使い方: `mono` index 属性 パターン
使い方: `unmono` index パターン [ パターン ... ]

属性の部分は以下のどれかです。

- none
- bold (太字)
- underline (下線)
- reverse (反転)
- standout (点滅等 [語義：くっきりと見やすい])

## 3.8 不要なメッセイジヘッダを無視 (間引き) する

使い方: `[un]ignore` パターン [ パターン ... ]

多くのメッセイジには、自動処理システムによって付加された、すなわち、 画面に表示させても役に立つとは思えないようなヘッダフィールドが たくさん付いています。 このコマンドで、普段は見ないでいたいヘッダフィールドを指定することができます。

ヘッダフィールド名全体を指定する必要はありません。 例えば "ignore content-" は "content-" で始まるヘッダフィールドをすべて無視します。

以前に追加した項目をリストから外すには "unignore" コマンドを 使ってください。"unignore" コマンドは、指定したパターンの ヘッダフィールドを表示させます。例えば "ignore x-" としているとき、"unignore x-mailer" で x-mailer: を表示することができます。

"unignore *" は無視リストから全項目を消去します。

以下は一例です。

> `

>     # Sven の冷徹なヘッダ間引き設定
>     ignore *
>     unignore from date subject to cc
>     unignore organization organisation x-mailer: x-newsreader: x-mailing-list:
>     unignore posted-to:

> `

## 3.9 代替アドレス

使い方: `[un]alternates` 正規表現 [ 正規表現 ... ]

Mutt は種々の関数において、自分で送信したメッセイジか 他人から受信したメッセイジかに応じて違う扱い方をします。 例えば、かつて自分が別の団体へ送信したメッセイジに返信を書くとき、 Mutt は自動的にその元メッセイジの宛先へ返事を送るよう提案します。 多くの場合、自分に返事を書くなどということは意味をなさないからです。 ( $reply_to 参照。)

多くのユーザは複数の異なるアドレスでメイルを受信します。 この場合 Mutt の機能をフル活用するには、どのアドレスで自分がメイルを 受信するのかを Mutt が理解できるようにしなくてはなりません。 これこそが `alternates` コマンドの目的とするところです。 このコマンドは正規表現のリストを受け取り、それらを使って、 自分がメイルを受信するアドレスを識別するのです。

`unalternates` コマンドを使えば、`alternates` のパターンに 例外を作ることができます。あるアドレスが `alternates` コマンドに 該当していて、しかしそれを自分のではないことにしたい場合には、 詳細なパターンを `unalternates` コマンドで指定することができるのです。

`alternates` のリストから正規表現を削除するには `unalternates` コマンドで完全に同一の 正規表現 を指定します。 同様に、`alternates` コマンドの 正規表現 が `unalternates` のリストにある項目と同じであれば、その `unalternates` の項目は 削除されます。もし `unalternates` の 正規表現 が「*」であれば、 `alternates` の 全ての項目 が削除されます。

## 3.10 メイリングリスト

使い方: `[un]lists` 正規表現 [ 正規表現 ... ]
使い方: `[un]subscribe` 正規表現 [ 正規表現 ... ]

Mutt には メイリングリストの扱いに関する 優れた機能が幾つかあります。その益にあずかるには、 どのアドレスがメイリングリストに属するのか、 そして自分がどのメイリングリストを講読しているのかを指定しなければなりません。 そうすれば、 list-reply 関数は 既知のメイリングリストすべてに動作します。 そのうえ、購読しているリストにメッセイジを送るときには Mutt が Mail-Followup-To へッダを付けて、返信を自分のアドレスにも送ることのないよう 他の人のメイルユーザエイジェント (原語：Mail User Agents = MUA) に 伝えてくれます。 ただ、Mail-Followup-To へッダは非標準的な拡張であって、すべての MUA でサポートされているわけではないことに注意してください。 このへッダを付けても、リストのメッセイジが自分宛てに CC: で来るのを防ぐ 防弾チョッキにはなりません。 Mail-Followup-To へッダの生成は設定変数 $followup_to によって制御されることも 覚えておいてください。

さらに正確に言うと、Mutt が管理しているのは、 既知および購読中のメイリングリストのアドレスを表すパターンのリストです。 購読しているメイリングリストはすべて既知になります。 あるメイリングリストを既知であるということにするには lists コマンドを使ってください。 購読中にするには subscribe コマンドを使います。

どちらのコマンドにも正規表現を使えます。 例えば、Mutt のバグトラッキングシステムにおける 各バグレポートのアドレスに送信されたメッセイジを、 メイリングリストのメイルであるということにするには "subscribe [0-9]*@bugs\.guug\.de" とすれば良いわけです。 多くの場合は、単にリストのメイルアドレスの一部分を指定するだけで十分です。

十分な長さでアドレスを指定して、あいまいさをなくしてください。 例えば、Mutt のメイリングリストを購読していれば mutt-users@mutt.org に宛てられたメイルを受信することになります。 それで、このアドレスがメイリングリストだということを Mutt に教えるには、 初期化ファイルに "lists mutt-users" を追加できます。 これを購読していることを Mutt に教えるには、代わりに "subscribe mutt-users" を追加してください。 万一 mutt-users@example.com というアドレスの人からメイルを 受け取ることがあるなら、"lists mutt-users@mutt\\.org" か "subscribe mutt-users@mutt\\.org" を使って、実際にリストから来たメイルにだけ一致させることができます。

unlists コマンドは、既知と購読中のメイリングリストのリストから 項目を消去するために使います。項目をすべて消去するには "unlists *" を使って下さい。

メイリングリストを、購読中のメイリングリストのリストからは消去しつつ、 既知のメイリングリストのリストに残しておくためには、 "unsubscribe" を使ってください。

## 3.11 複数のスプールメイルボックスを使う

使い方: `mbox-hook` [!]パターン メイルボックス

このコマンドは、終了時やフォルダ変更時に、 既読メッセイジを特定のメイルボックスから違うメイルボックスへと、 自動で移動させるのに使います。 パターンは「スプール」のメイルボックスとして扱うメイルボックスを指定する 正規表現で、メイルボックスは、既読時にメイルをどこにセイヴ (移動) すべきかを指定します。

一部の hook コマンドと違って、最初に合致したパターンだけが 使われます (既読メイルを一度に複数のメイルボックスへセイヴ [移動] することは できません)。

## 3.12 メイルを受信するメイルボックスを定義する

使い方: `mailboxes` [!]ファイル名 [ ファイル名 ... ]

このコマンドは、メイルを受信することがあるフォルダを指定します。 指定したフォルダは、新着メッセイジがあるかどうかチェックされることになります。 既定では、このフォルダのうちのいくつに新着メッセイジがあるかを、 メインメニュー (訳注：インデックスメニュー) のステイタス行が表示します。

フォルダ変更時にスペイスを押すと、新着メイルのあるフォルダを 次々に表示します。

ディレクトリブラウザで TAB キーを押すと、 `mailboxes` コマンドで指定したファイルを表示するメニューが出ます。 コマンドラインから `-y` オプション付きで起動されると、 Mutt は自動的にこのモウドに入ります。

"unmailboxes" コマンドを使って、メイルを受信するフォルダの リストから項目を削除できます。すべて削除するには "unmailboxes *" を使います。

注意: 新着メイルは、最終変更時刻と最終アクセス時刻との比較によって 検出されます。`biff` や `frm` のようなユーティリティや、 メイルボックスにアクセスするその他のプログラムがアクセス時刻を 適切に再設定しなければ、そのメイルボックスでは Mutt が新着メイルを 検出できなくなってしまいます。 バックアップツールもまた、アクセス時刻を更新してしまう一般的な原因です。

注意: `mailboxes` コマンド中のファイル名は コマンド実行時に解決されますので、 ショートカット文字 ("=" や "!" など) を含んでいるなら、その文字に影響する変数 ( $folder や $spoolfileなど) の定義は `mailboxes` コマンドの 前に実行すべきです。

## 3.13 ユーザ定義へッダ

使い方:
`my_hdr` 文字列
`unmy_hdr` フィールド [ フィールド ... ]

"my_hdr" コマンドで 自分独自のヘッダフィールドを創作できます。 このヘッダフィールドは送信するメッセイジすべてに付加されます。

例えば送信メッセイジすべてに "Organization:" ヘッダフィールドを 付加したいのであれば、

> my_hdr Organization: 大会社 (株)

というコマンドを `.muttrc` に入れればいいのです。

注意: キーワードとコロン (":") の間に スペイスを入れることは許されません。 電子メイルの規格 (RFC822 [訳注：現在は 2822 か]) で、 そこにスペイスを入れるのは違反だと言われています。 それで Mutt はその規則を強制するというわけです。

単独のメッセイジにヘッダフィールドを付加したい場合は、 $edit_headers 変数を 設定しておくか、送信メニュー (訳注：コンポウズメニューのことか) で edit-headers 関数 (既定値: E) を使うかのいずれかによって、 メッセイジの本文と一緒にヘッダを編集できます。

ユーザ定義のヘッダフィールドを消去するには "unmy_hdr" コマンドを使ってください。 アスタリスク ("*") を指定して すべてのヘッダフィールドを消去することもできますし、 消去するフィールドを指定することもできます。 例えば、"To" と "Cc" ヘッダフィールドを すべて削除するには、こうすればよいのです。

> unmy_hdr to cc

## 3.14 メッセイジ閲覧時のヘッダの順序を定義する

使い方: `hdr_order` ヘッダ1 [ ヘッダ2 ヘッダ3 ... ]

このコマンドによって、 メッセイジ閲覧時に Mutt がヘッダを表示する順序を指定できます。

"unhdr_order *" は以前に指定したヘッダをすべて 順序リストから解除しますから、システム全体の初期化ファイルによって設定された ヘッダ順序の効果も消去してしまいます。

> `

>     hdr_order From Date: From: To: Cc: Subject:

> `

## 3.15 既定のセイヴファイル名を指定する

使い方: `save-hook` [!]パターン ファイル名

このコマンドは、メッセイジをセイヴ (移動) するときに使うファイル名の 既定値を上書きするのに使います。 ファイル名は、正規表現パターンに合致するアドレスが From: のときか、自分が差出人でメッセイジの To: が正規表現パターン に合致するときに、既定のファイル名として使われます。 (訳注：send-hook, save-hook, fcc-hook, fcc-save-hook には printf風シークウェンスが使えるらしい。% 記号を使った書式については $index_format と $status_format を参照。)

パターンの正確な書式の情報については 「フックにおけるメッセイジの合致」の節を参照してください。

例:

> `

>     save-hook me@(turing\\.)?cs\\.hmc\\.edu$ +elkins
>     save-hook aol\\.com$ +spam

> `

fcc-save-hook コマンドも参照して下さい。

## 3.16 メッセイジ作成時の既定の Fcc: メイルボックスを指定する

使い方: `fcc-hook` [!]パターン メイルボックス

このコマンドは送信メッセイジを $record 以外のメイルボックスに保存するために使います。 Mutt はまず、メッセイジ宛先リストの中で正規表現パターンを検索して、 最初に合致したもののメイルボックスを 既定の Fcc: メイルボックスとして使います。 合致するものが見付からなければ $record つまり「記録」メイルボックスに保存します。

パターンの正確な書式の情報については 「フックにおけるメッセイジの合致」の節を参照してください。

例: `fcc-hook [@.]aol\\.com$ +spammers`

上のようにすると、aol.com ドメインに行くことになっているメッセイジは すべて既定で +spammers メイルボックスにコピーが保存されます fcc-save-hook コマンドの節も参照してください。

## 3.17 既定のセイヴファイル名と既定の Fcc:メイルボックスを同時に指定する

使い方: `fcc-save-hook` [!]パターン メイルボックス

このコマンドはショートカット (訳注：短縮コマンドのような意味) であり、 同じ引数で fcc-hook と save-hook を両方とも実行するのと等価です。

## 3.18 メッセイジの宛先によって設定を変更する

使い方: `reply-hook` [!]パターン コマンド
使い方: `send-hook` [!]パターン コマンド
使い方: `send2-hook` [!]パターン コマンド

このコマンドを使って、メッセイジの宛先に基づいて任意のコマンドを実行できます。 パターンは望みのアドレスに合致する正規表現です。 コマンドは、パターンがメッセイジの宛先に合致するときに実行されます。

`reply-hook` は送信するメッセイジの代わりに返信元の メッセイジに対して検索されます。`send-hook` は新規メッセイジにも 返信メッセイジに対しても検索されます。 注意: `reply-hook` はユーザの設定ファイルに指定されている順番に 関わらず `send-hook` より先に検索されます。

`send2-hook` はメッセイジが変更されるたびに実行されます。 すなわち、編集したか、コンポウズメニューで宛先や題名を変更したときです。 `send2-hook` は `send-hook` の後に実行されるので、 例えば $sendmail 変数のようなパラメータを 自分の送信アドレスに応じたものとするために使うことができます。

`send-hook` および `reply-hook` の各タイプとも、 複数の該当結果が生じたときにコマンドが実行される順番は (そのタイプのフックのうちでは) muttrc に書かれている順です。 (訳注：それで、変数の設定は後に実行されたほうが先の設定を上書きする。)

パターンの正確な書式の情報については 「フックにおけるメッセイジの合致」の節を参照してください。

例: `send-hook mutt "set mime_forward signature=''"`

このコマンドの別の典型的な使い方は、署名と出典の言語を 宛先に応じて変更するために $attribution, $signature, $locale 変数の値を切り換えることです。

注意: send-hook は最初に宛先リストができた直後に《一度》 実行されるだけです。返信を書いたり編集したりしてから宛先を追加しても、 send-hook は《実行されません》。 また、宛先ヘッダや題名を変える my_hdr コマンドが send-hook から実行されたとき、そのメッセイジには何の影響も与えない ということにも注意してください。(訳注： unmy_hdr 等で変更されなければ、次のメッセイジには適用される)

## 3.19 メッセイジ整形前に設定を変更する

使い方： `message-hook` [!]パターン コマンド

このコマンドを使って、メッセイジの閲覧や整形の前に、 そのメッセイジに関する情報に基づいて任意の設定コマンドを実行できます。 表示しようとしているメッセイジにパターンが合致していれば コマンドが実行されます。(訳注：無限ループに入らないよう注意！) 複数の合致が生じるときは、muttrc にある順番でコマンドが実行されます。

パターンの正確な書式の情報については 「フックにおけるメッセイジの合致」の節を参照してください。

例：

> `

>     message-hook ~A 'set pager=builtin'
>     message-hook '~f freshmeat-news' 'set pager="less \"+/^  subject: .*\""'

> `

## 3.20 宛先の人の暗号鍵を選ぶ

使い方: `crypt-hook` パターン 鍵ID

メッセイジを暗号化するとき、 ある特定の鍵をそのメイルアドレスに自動で割り当てたいと思うかもしれません。 それは宛先の公開鍵が目的のアドレスからは推測できないからであったり、 Mutt の通常の選択をなんらかの理由で上書きする必要があるからであったりします。 crypt-hook コマンドは、特定の宛先へのメッセイジを暗号化するときに使う公開鍵の ID を指定する手段を提供するのです。

ここでは広い意味で「鍵 ID」と言っています。数字の鍵 ID を入れることも できますし、メイルアドレスも使えます。本名でも構いません。

## 3.21 キーボードバッファにキーシークウェンスを加える

使い方: `push` 文字列

このコマンドは、指名した文字列をキーボードバッファに入れます。この文字列には macro コマンドのシークウェンスのように、 コントロウル文字、キーの名前、関数名を含められます。 これを使って、起動時や特定のフォルダへの移動時に、 複数のコマンドを連続実行することもできます。 (訳注：これぞ Mutt 最強のコマンド。修得すべし。)

## 3.22 関数を実行する

使い方: `exec` 関数 [ 関数 ... ]

このコマンドは、あらゆる関数の実行に使えます。 関数は 関数早見表で一覧にしてあります。 "exec 関数" は "push <関数>" と等価です。

## 3.23 メイルの得点付け

使い方: `score` パターン 値
使い方: `unscore` パターン [ パターン ... ]

`score` コマンドは、パターンがメッセイジに合致するなら、指定した 値をそのメッセイジの得点に加えます。パターンは 「パターン」の節に説明してある書式の文字列です (注意: 効率上の理由から、インデックスで扱えない情報を走査するパターン、 例えば `~b`, `~B`, `~h` 等は 使えません)。 値は正か負の整数です。メッセイジの 最終的な得点は、合致する `score` コマンドすべての合計です。 しかしながら、値の前に等号 (=) を付けて、特定の score コマンドに合致すればそこで計算を止めさせる (訳注：確定させる) ということもできます。負数の最終得点は 0 に丸められます。

`unscore` コマンドは score コマンドのリストから項目を 除去します。`score` コマンドで指定したのと同じパターンを 指定しなければ除去できません。 "*" というパターンは score コマンドのリストを すべて消去するという意味の特殊記号です。

## 3.24 スパム検出

使い方: `spam` パターン 書式
使い方: `nospam` パターン

Mutt には、外部のスパム得点フィルタに対する一般化されたサポートがあります。 自分のスパムパターンを `spam` と `nospam` で定義することによって、 外部フィルタが決定したスパム属性にもとづいてメイルを limit (表示制限)、search (検索)、sort (整列) することができるのです。さらに、スパム属性をインデックス画面に 表示することもできます。`%H` を $index_format 変数に使うのです。(便利ワザ: `%?H?[%H] ?` としてみると、スパムタグがメッセイジに定義されている場合 のみ表示される。)

はじめの一歩として、外部フィルタのスパムパターンを `spam` コマンドで 定義します。パターン は正規表現で、メイルメッセイジのヘッダに 合致するものであるべきです。メイルボックス中のメッセイジは、 この正規表現に合致すると「スパムタグ」すなわち「スパム属性」を 受け取ります (ただし後述の `nospam` パターンに合致している場合は除く)。 この「属性」の表示方法は、自分で完全に制御することができます。 その制御をおこなうのは 書式 パラメータです。書式 は 静的テキストでも構いませんが、パターン からの後方参照を含めることも できます。(正規表現の「後方参照」とは、括弧の中に含まれた表現を参照するもの。) `%1` は正規表現中の最初の後方参照に置換され、`%2` は 二番目の後方参照に置換されるのです。

複数のスパムフィルタを利用していると、メッセイジに 複数のスパム関連ヘッダが付くことがあります。そこで、`spam` コマンドのパターンを各々のフィルタのために複数定義することができます。 メッセイジが複数のパターンに合致したとき、 $spam_separator 変数が 文字列 (訳注：空文字列を含む) であれば、そのメッセイジのスパムタグは すべての 書式 文字列が連結されたものになります。その際、 それぞれの値が $spam_separator 変数で区切られます。

例えば DCC, SpamAssassin, PureMessage を使っているとします。 すると、このようなスパム設定をするかもしれません。

> `

>     spam "X-DCC-.*-Metrics:.*(....)=many"         "90+/DCC-%1"
>     spam "X-Spam-Status: Yes"                     "90+/SA"
>     spam "X-PerlMX-Spam: .*Probability=([0-9]+)%" "%1/PM"
>     set spam_separator=", "

> `

このとき、受信したメッセイジが DCC の Fuz2 チェックサムで many と判定され、 PureMessage でスパム確率が 97% と判定された場合に、そのメッセイジの スパムタグは `90+/DCC-Fuz2, 97/PM` となります。(DCC ヘッダで 「=many」の前の四文字は使用したチェックサムを示しています。この場合は Fuz2 でした。)

$spam_separator 変数が解除されていると、spam パターンの合致は以前の合致を上書きします。 連結された 書式 文字列ではなく、最後の合致のみが返されることになります。

スパムタグは、`%H` を `$index_format` 変数で使用した際に インデックスへ表示される文字列です。また、search (検索) および limit (表示制限) 関数で `~H` というパターン合致表現が合致する 文字列でもあります。さらに、スパム属性で整列する際に使うカギでもあります。

これは非常に混み入った例でした。ほとんどの人が実際に利用している環境では、 スパムフィルタはひとつだけでしょう。設定が単純であればあるほど、 Mutt の動作を効果的にすることができます。特に整列に関してそう言えます。

一般的に言って、スパムタグで整列する際に Mutt は 辞書的 に、 すなわち、文字列を一文字ずつ英数字順に評価して整列します。しかしながら、 スパムタグがもしも数字で始まっているならば、まず数値順に整列して、 数値が同じ場合にのみ辞書的に整列します。(これは UNIX の `sort -n` に似ています。) スパム属性が何もないメッセイジ、すなわち、どの `spam` パターンも合致しなかったメッセイジは、最低の順位で整列されます。 数値がそれに続いて、0 から順に高い順位で整列されます。 最後に数字以外の文字列が整列されます。a は z より低い順位になります。 明らかにスパムタグの整列は、フィルタで強制的に数値を返させることが できれば、概して最も効果的になると言えます。しかし それができない場合でも、Mutt はまずまず有用な動作をするわけです。

`nospam` コマンドは `spam` パターンの例外を書くために使います。 もしヘッダが `spam` コマンドに合致した場合でもスパムタグを付けたくない 条件があるなら、そうしたより詳細なパターンを `nospam` コマンドで 列挙することができるのです。

`nospam` に与えられた パターン が既存の `spam` リストにある パターン とまったく同一のときには、例外を追加するのではなく `spam` リストからその項目を消去する効果があります。 同様に、`spam` コマンドの パターン が `nospam` リストの 項目に合致する場合には、その `nospam` 項目が消去されます。 もし `nospam` の パターン が "*" であれば、 リスト双方のすべての項目 が消去されます。`spam` や `nospam` を `folder-hook` と組み合わせて使う際にはこれを既定動作にすることでしょう。

`spam` コマンドと `nospam` コマンドは、いくつでも好きなだけ 使うことができます。Mutt だけで初歩的なスパム検出をすることも可能です。 例えば `MAILER-DAEMON` からのメイルをすべてスパムとみなすのであれば、 このように `spam` コマンドを使うことができるでしょう。

> `

>     spam "^From: .*MAILER-DAEMON"       "999"

> `

## 3.25 変数を設定する

使い方: `set` [no|inv]変数[=値] [ 変数 ... ]
使い方: `toggle` 変数 [変数 ... ]
使い方: `unset` 変数 [変数 ... ]
使い方: `reset` 変数 [変数 ... ]

このコマンドは 設定変数を設定したり解除したり するのに使います。変数には基本的な四つの型があります。boolean (二値), number (数値), string (文字列), quadoption (四値) です。 boolean の変数は 設定されている (真) か 設定されていない (偽) かのいずれかです (訳注：訳者の気分により、設定 (yes) と解除 (no) という表現も使う)。 number 変数には正の整数を割り当てることができます。

string 型の変数はいくつかの表示文字 (原語：printable characters, つまりコントロウル文字以外の文字) で構成されます。 スペイスやタブを含むならば引用符で括らなければなりません。 また "C" のエスケイプシークウェンス \n と \t を、それぞれ改行とタブの代わりに使用できます。

quadoption 型の変数は、特定の動作について実行前に質問 するかどうかを制御したり、既定 (訳注：リターンだけを押したとき) の 動作を指定したりするのに使います。yes という値は、あたかも質問に yes と答えたかのような動作を 自動で引き起こします。それと同様、no という値は、no と答えたかのような 動作を引き起こします。ask-yes という値は既定の答えを yes にして 質問しますし、ask-no は既定の答えを no にします。

"no" を変数の前に付けると、変数を解除します。 例: `set noaskbcc`

boolean 型の変数に関しては、変数名の前に `inv` を付けて 値を切り替えられます (on ⇔ off)。これはマクロを書くときに便利です。 例: `set invsmart_wrap`

`toggle` コマンドは、指定した変数すべての頭に自動で `inv` を付けます。

`unset` は指定した変数すべての頭に `no` を付けるコマンドです。

インデックスメニューで enter-command 関数を使えば、 変数の名前の前に疑問符を付けることによって、変数の値を問い合わせられます。

> `

>     set ?allow_8bit

> `

この疑問符は、実際には boolean 変数と quadoption 変数にしか 必要ありません。(訳注：ほかは set だけで値を参照できる)

`reset` コマンドは与えられた変数すべてをコンパイル時の既定値 (おそらく、このマニュアルに書いてある値) に戻します。 `set` コマンドで変数の前に "&" を付けると `reset` コマンドと同じ挙動となります。

`reset` コマンドには特別な変数 "all" が存在し、 これですべての変数をシステムの既定値に戻すことができます。

## 3.26 初期化コマンドを別のファイルから読み込む

使い方: source ファイル名

このコマンドで、初期化コマンドを他のファイルから取り込めます。 例えばエイリアスファイルを `~/.mail_aliases` に配置すれば、 `~/.muttrc` を (訳注：他ユーザから) 読めるようにしても、 エイリアスは秘密にしておけます。

ファイル名の最初がティルド ("~") であれば、 自分のホウムディレクトリのパスに展開されます。

ファイル名が縦線 (|) で終わっていれば、指定したファイル名のファイルは 実行プログラムとみなされ、そこから入力を読み出します。(例: `source ~/bin/myscript|`)

## 3.27 フックを取り除く

使い方: `unhook` [ * | フック ]

このコマンドで、それまでに設定してきたフックを流し去ることができます。 あらゆるフックを消すのも "*" を引数として与えることによって できますし、`unhook send-hook` のようにして特定のタイプのフックを すべて消すということもできます。

## 4. 高度な使い方

## 4.1 正規表現

Mutt における文字列パターンは、より複雑な パターンにおける文字列パターンも含めて、すべて正規表現 (regular expressions = regexp) の「POSIX 拡張」文法 (egrep や GNU awk で使われている文法とほぼ同じです) を使って指定しなくてはなりません。 便宜のため、以下にこの文法の簡単な説明を含めました。

検索は、パターンに一つでも大文字があれば文字の大小を意識し、 それ以外は大小を意識しません。"\" を 初期化コマンド中の正規表現に使うには "\\" とする必要があるので注意してください。

正規表現は一つのパターンで何種類かの文字列を表します。 正規表現は代数表現と同じように、 より小さな式を色々な演算子で組み合わせて構築されます。

正規表現は、「"」や「'」で囲んだり区切ったりできます。 これは正規表現が空白文字を含む場合に便利です。区切り記号「"」と「'」の 処理に関するさらに詳細な情報は、 「初期化ファイルの構文」の項を参照してください。 そのままの記号として「"」や「'」に合致させるには、 記号の前に「\」(バックスラッシュ [訳注：半角「￥」が表示される フォントもあるが、英語圏では逆向きスラッシュ]) をつけてください。

基本となる単位は文字ひとつに合致する正規表現です。 すべてのアルファベットと数字を含めて、ほとんどの文字は 自分自身に合致する正規表現です。 特殊な意味を持つメタ文字記号は、前にバックスラッシュを付けることによって 本来の記号に合致します。(訳注：つまり "." に合致する正規表現は "\.")

ピリオド "." はどんな文字にでも合致します。 カレット "^" とドル記号 "$" はそれぞれ、 行の最初と最後という、文字ではない部分に合致するメタ文字です。

文字を "[" と "]" で囲んだリストは、 その中のどの文字 (一字) にでも合致します。 そのリストの最初の文字がカレット "^" であれば、 そのリストにない文字に合致します。 例えば [0123456789] は十進数の数字ひとつに合致します。 ある範囲内における最初と最後の文字の間にハイフン "-" を置けば、その範囲の ASCII 文字全体を指定できます。 リストの中ではほとんどのメタ文字から特別な意味がなくなります。 "]" という記号そのものを含めるには、リストの最初に置きます。 同様に、"^" そのものを含めたい場合はリストの最初以外のどこかに 置けば大丈夫です。そしてハイフン記号 "-" そのものを含めるにはリストの最後に置くというわけです。

あるクラスの文字は、前もって特定の名前で定義してあります。 文字クラスは、「[:クラスを表すキーワード:]」という構成です。 以下のクラスは POSIX 標準で定められているものです。

[:alnum:]

  アルファベットと数字

[:alpha:]

  アルファベット

[:blank:]

  スペイスとタブ

[:cntrl:]

  コントロウル文字

[:digit:]

  数字

[:graph:]

  表示文字であり可視文字でもある文字 (スペイスは表示文字だが不可視。 一方で "a" は表示文字かつ可視な文字)

[:lower:]

  小文字のアルファベット

[:print:]

  表示文字 (コントロウル文字でない文字のこと)

[:punct:]

  記号 (アルファベット、数字、コントロウル文字、空間文字のどれでもない文字のこと)

[:space:]

  空間文字 (幾つか挙げてみると、 スペイス、タブ、改ペイジといったところ)

[:upper:]

  大文字のアルファベット

[:xdigit:]

  16 進数

文字クラスは、文字リストの括弧内の正規表現でのみ有効です。 注意してほしいのは、このクラス名に付いている角括弧はシンボル名の一部であり、 リストを囲む角括弧に加えて、さらに必要になるということです。 例えば [[:digit:]] が [0-9] と等価です。

さらに二つの特殊シークウェンスを文字リスト中で使えます。 これは非 ASCII 文字セットに適用されるもので、以下のように、 そうした文字セットでは単一のシンボル (照合要素 collating elements と呼ばれる) が、照合や整列において等価な複数の文字列や文字を 象徴することがあります。

照合記号

  照合記号は複数文字の照合要素を "[." と ".]" で括ったもの。 例えば ch が照合要素だとすると、[[.ch.]] が この照合要素に合致する正規表現。一方、[ch] だと c または h のどちらかに合致する正規表現ということになってしまう

等価クラス

  等価クラスとは、特定の言語における一連の等価な文字を指す名前のこと。 その名前は "[=" と "=]" で括る。 例えば e という名前で、アクセント記号付きのものも含めた三種類の e を すべて表わせる。この場合 [[=e=]] は 右下がりアクセントの e (0xE8), 右上がりアクセントの e (0xE9), 普通の e のどれかであれば合致する正規表現である

一字に合致する正規表現は、幾つかある繰り返し演算子のうちの いずれかを後に付けることができます。

?

  この記号の前にあるアイテムは、あってもなくても良く、 あっても一回しか合致しない (訳注：0 〜 1 回)

*

  この記号の前のアイテムは 0 回でもそれ以上でも合致する (訳注：0 〜 ∞回)

+

  この記号の前のアイテムは一回以上あれば合致する (訳注：1 〜 ∞回)

{n}

  この前のアイテムは、きっちり n 回なら合致する

{n,}

  この前のアイテムは n 回以上で合致する (訳注：n 回も含む)

{,m}

  この前のアイテムは m 回まで合致する (訳注：0 〜 m 回)

{n,m}

  この前のアイテムは n 回以上 m 回までなら合致する

二つの正規表現を連結することができます。その結果できた正規表現が 合致するのは、それぞれに合致する文字列をその順番に並べたものです。 (訳注：訳が悪いので補足すると、例えば [A-Z][0-9] は、 A3 や B5 といった、大文字アルファベットの次に数字が来るような文字列 に合致する一つの正規表現である、ということ。)

二つの正規表現は中間演算子 "|" で連結することもでき、 二つをこのようにつないでできる正規表現は、 いずれかの「子表現」の合致する文字列に合致します。 (訳注：例えば [A-Z]|[0-9] だと、D2 等ではなく C や 0 や R に合致することになり、[A-Z0-9] と等価になる。 a1B2c3 という文字列に対して、[A-Z][0-9] は B2 にのみ合致し、 [A-Z]|[0-9] は 1 にも B にも 3 にも合致する。)

繰り返し演算子は単なる連結よりも優先されます。 連結はというと、こちらは代替表現より優先されます。 子表現にしたい部分を括弧で囲めば、この優先順位を上書きできます。 (訳注：[a-z][0-9]+ は繰り返し演算子の効力が [0-9] にしかなくて、 aaa777 のうち a777 の部分に合致。 これを ([a-z][0-9])+ にすると括弧内全体に効力が及ぶので、 aaa777 に対しては a7 の部分にのみ合致。a7a7a7 なら全体に合致。)

メモ: Mutt を GNU rx パッケイジと共にコンパイルしていれば、 次の演算子も正規表現の中で使えます。

\\y

  単語が開始または終了する部分 (訳注：単語とスペイスの間の部分など) に合致する

\\B

  単語の内部 (訳注：文字と文字の間の部分) に合致する

\\<

  単語の開始部分 (訳注：単語の最初の文字とその前のスペイスの間など) に合致する

\\>

  単語の終了部分 (訳注：最後の文字とそれに続くスペイスの間など) に合致する

\\w

  単語要員の文字 (アルファベット、十進数字、アンダスコア [下線]) の いずれにも合致する

\\W

  単語要員でないあらゆる文字に合致する

\\`

  バッファ (文字列) の開始部分に合致する

\\'

  バッファの終了部分に合致する

とはいえご注意いただきたいのは、 これらの演算子が POSIX で定められていないため、これらを 普段のライブラリで使えるシステムも使えないシステムもあるということです。

## 4.2 パターン

Mutt コマンドには、パターンを指定して合致したものにだけ適用することの できるものが多数あります (limit, tag-pattern, delete-pattern 等)。 いくつかの方法でメッセイジを選択できます。

> `

>     ~A              全てのメッセイジ
>     ~b EXPR         メッセイジ本文 (body) に EXPR を含むメッセイジ
>     ~B EXPR         メッセイジ全体のどこかに EXPR を含むメッセイジ
>     ~c USER         USER に CC 送付されているメッセイジ
>     ~C EXPR         To: か Cc: に EXPR のあるメッセイジ
>     ~D              削除される (deleted) メッセイジ
>     ~d [MIN]-[MAX]  送信日 ("date-sent") が範囲内にあるメッセイジ
>     ~E              期限切れ (expired) メッセイジ
>     ~e EXPR         "Sender" フィールドに EXPR を含むメッセイジ
>     ~F              フラグ付き (flagged) メッセイジ
>     ~f USER         USER から送られた (from USER) メッセイジ
>     ~g              暗号で署名されているメッセイジ
>     ~G              暗号化されているメッセイジ
>     ~H EXPR         EXPR に合致するスパム属性を持つメッセイジ
>     ~h EXPR         ヘッダ (header) に EXPR を含むメッセイジ
>     ~k              PGP 鍵 (key) を含むメッセイジ
>     ~i ID           "Message-ID" フィールドに ID が合致するメッセイジ
>     ~L EXPR         EXPR が出したか受けとったか、いずれかのメッセイジ
>     ~l              既知のメイリングリスト (list) へ宛てたメッセイジ
>     ~m [MIN]-[MAX]  番号が MIN から MAX の範囲のメッセイジ *)
>     ~n [MIN]-[MAX]  得点が MIN から MAX の範囲のメッセイジ *)
>     ~N              新着 (new) メッセイジ
>     ~O              古い (old) 未読メッセイジ
>     ~p              自分宛てのメッセイジ (alternates を考慮する)
>     ~P              自分が出したメッセイジ (alternates を考慮する)
>     ~Q              返信済みのメッセイジ
>     ~R              既読 (read) メッセイジ
>     ~r [MIN]-[MAX]  受信日付 "date-received" が範囲内にあるメッセイジ
>     ~S              置き換えられた (superseded) メッセイジ
>     ~s SUBJECT      "Subject" フィールドに SUBJECT を持つメッセイジ
>     ~T              タグ付き (tagged) メッセイジ
>     ~t USER         USER に宛てられた (to USER) メッセイジ
>     ~U              未読 (unread) メッセイジ
>     ~v              折りたたんだスレッドにあるメッセイジ
>     ~x EXPR         "References" フィールドに EXPR を含むメッセイジ
>     ~y EXPR         "X-Label" フィールドに EXPR を含むメッセイジ
>     ~z [MIN]-[MAX]  サイズが MIN から MAX までの範囲にあるメッセイジ *)
>     ~=              重複しているメッセイジ ($duplicate_threads 参照)
>     ~$              参照されていないメッセイジ (スレッド表示が必要)

> `

EXPR, USER, ID, SUBJECT の部分は 正規表現です。

*) `<[MAX]`, `>[MIN]`, `[MIN]-`, `-[MAX]` という形式も使えます。

### パターン修飾子

アドレスの「リスト」に合致させる種類のパターン (特に ~c, ~C, ~p, ~P, ~t) は、 リストの中に一つでも合致するものがあれば合致してしまうので注意してください。 そのリストの要素すべてに合致する場合に限るには、 パターンの前に ^ を付ける必要があります。 これはドイツの人だけに宛てられたメイルすべてに合致する例です。

> `

>     ^~C \.de$

> `

### 複雑なパターン

複数の条件を指定することによって論理積 AND が計算されます。 例えば、

> `

>     ~t mutt ~f elkins

> `

これは、宛先のリストに "mutt" という語を含み、かつ "From" ヘッダフィールドに "elkins" という語のある メッセイジを選択します。

Mutt は以下の演算子も認識するので、 さらに複雑な検索パターンを作成できます。

- ! -- 論理演算子 NOT (否定)
- | -- 論理演算子 OR (論理和)
- () -- グループ化論理演算子

ここに、複雑な検索パターンをよく表している例があります。 このパターンは、メッセイジのうち、"mutt" を "To" および "Cc" フィールドに含まず、 かつ "elkins" から来ているものすべてを選択します。

> `

>     !(~t mutt|~c mutt) ~f elkins

> `

次は、空白を正規表現内で使う例です (「'」と「"」に注目してください)。 これが合致するのは、メイルの題名が "^Junk +From +Me$" に合致し、差出人が "Jim +Somebody" か "Ed +SomeoneElse" であるメッセイジです。 (訳注：「+」は一回以上の繰り返しを表すということを思い出してください。)

> `

>      '~s "^Junk +From +Me$" ~f ("Jim +Somebody"|"Ed +SomeoneElse")'

> `

正規表現に括弧や垂直棒 ("|") があるときは必ずダブルクウォウトか シングルクウォウトで囲まなくてはなりません。それらの記号は Mutt のパターン言語において別の部分を区切るためにも使われるからです。例えば、

> `

>     ~f "me@(mutt\.org|cs\.hmc\.edu)"

> `

これにクウォウトがなかったら、括弧が終わらないことになります。 「~f me@(mutt\.org」と「cs\.hmc\.edu)」という 二つのパターンが OR されることになるのです。これは絶対に間違いですね。

### 日付で検索する

Mutt は二種類の日付、すなわち絶対日付と 相対日付に対応しています。

絶対日付。　日付は必ず DD/MM/YY という形式で指定しなければなりません (ただし、月と年は現在の月と年が既定になっており、省略できます)。 正しい日付範囲の例は次のとおり (訳注：limit 関数の例)。

> `

>     メッセイジの表示を制限するパターン: ~d 20/1/95-31/10

> `

最小値 (一番目) の日付を省略して "-DD/MM/YY" だけ指定すると、 その日付以前のメッセイジがすべて選択されます。 最大値 (二番目) の日付を省略して "DD/MM/YY-" と指定すると、 その日付以後のメッセイジがすべて選択されます。 ダッシュ ("-") なしでひとつだけ日付を指定すると、 その日付に送信されたメッセイジだけが選択されます。

誤差範囲。　絶対日付には誤差範囲を付けられます。誤差範囲は、 符号 (+ か -), 次に数字、その次に単位という形式で指定します。

    y       年
    m       月
    w       週
    d       日

特例として、符号を "*" にすることができます。 これは正と負に同じだけ誤差を与えるのと等価です。

例: 2001 年 1 月 15 日の前後二週間ずつのメッセイジを選択するには、 次のようなパターンを使えます。

> `

>     メッセイジの表示を制限するパターン: ~d 15/1/2001*2w

> `

相対日付。　このタイプの日付は、現在の日付から 相対的に見たものです。このように指定できます。

- >offset (offset より長く経過したメッセイジ)
- <offset (経過期間が offset より短いメッセイジ)
- =offset (ちょうど offset だけ経過したメッセイジ)

offset は正の数に以下の単位のいずれかを付けたものです。

    y       年
    m       月
    w       週
    d       日

例: 生後一ヵ月未満のメッセイジを選択するには次のようにします。

> `

>     メッセイジの表示を制限するパターン: ~d <1m

> `

注意: 検索時に使う日付はすべてロウカル時間に対する 相対日付ですから、 $index_format の設定を変更して `%[...]` フォーマットを 含むようにしないと、必ずしもインデックスに表示されている日付と 同じではありません。

## 4.3 タグを使う

操作を実行するときに、一通ずつ扱うよりも、ひとまとめにしたメッセイジを 一度に扱った方が良いことがあります。 例としては、あるメイリングリスト宛てのメッセイジを別のフォルダにセイヴ (移動) するとか、指定した題名のメッセイジをすべて削除するといったものがあるでしょう。 パターンに合致したメッセイジにタグをつけるには tag-pattern 関数を使います。 これは既定で "shift-T" に割り当てられています。 また、個々のメッセイジを手作業で選択するため "tag-message" 関数を使うこともできます。こちらは既定で "t" に割り当てられています。Mutt のパターン検索の構文については 「パターン」の節を参照して下さい。

お望みのメッセイジにタグをつけたら、"tag-prefix" 演算子を使えます。 これは既定値では ";" (セミコロン) キーです。 "tag-prefix" 演算子が使われると、次の操作は、 タグの付いたメッセイジすべてに適用されます (そのような使い方の できる操作であれば、ですが)。 もし $auto_tag 変数が セットされていれば、次の操作が自動的にタグ付きメッセイジへ適用されるので、 "tag-prefix" 演算子は必要ありません。

macro や push コマンドには "tag-prefix-cond" 演算子を使うことができます。 タグの付いたメッセイジがない場合には Mutt が残りのマクロを「食って」、 実行されないようにしてくれるのです。 マクロに "end-cond" 演算子が出てきたところで食うのをやめて、 その後の残りのマクロは通常通りに実行されるようになります。 (訳注：特にパターンでタグを付ける際、 必ずしも一つ以上のメッセイジにタグが付いているとは限らない。 タグがない場合に単なる "tag-prefix" を使うと、 カーソルの位置にあるメッセイジへ操作が適用されてしまう。 それで、tag-prefix-cond が追加された。例えば `macro index i <tag-pattern>~d*1w\n<tag-prefix-cond><save-message>=recent\n<end-cond>` と設定すると、ここ一週間のメイルを移動するマクロができる。 注意すべき点は、これが単なる条件分岐であるということだ。 "tag-prefix-cond" から "end-cond" までの部分を タグ付きメッセイジすべてに適用するというわけではなく、 タグ付きメッセイジへ適用されるのは "tag-prefix" と同様、 "tag-prefix-cond" 直後の操作のみである。)

## 4.4 フックを使う

フックとは EMACS エディタから借りてきた概念で、 ある操作の実行前に任意のコマンドを実行できるようにするものです。 例えば、読もうとしているメイルボックスや送ろうとしているメイルのあて先に 基づいて設定を調整したいと思うことがあります。 Mutt の世界において、フックは設定オプションやコマンドに合った 正規表現や パターン で構成されます。 利用できる各種フックの詳細については、以下を参照してください。

- folder-hook
- send-hook
- message-hook
- save-hook
- mbox-hook
- fcc-hook
- fcc-save-hook

注意: フックが設定を変更した場合、変更の効果は その mutt セッションの終わりまで続きます。 これは一般的に望み通りの動作ではありませんので、 既定のフックを他のフックの前に追加して 設定の既定値に復帰する必要があります。 次に挙げるのは send-hook と my_hdr 命令の例です。 (訳注：b@bab や b@b.b といったアドレスを To か Cc に含むメッセイジを 送信するときにのみ自分のアドレスを c@c.c とする、という設定。 最初の send-hook がないと、そのようなメッセイジを送ったあとは ずっと From: c@c.c のままになる。最初の send-hook があるおかげで 他の宛先には my_hdr が解除されて、from 変数の値が使用される。)

> `

>     send-hook . 'unmy_hdr From:'
>     send-hook ~C'^b@b\.b$' my_hdr from: c@c.c

> `

### フックにおけるメッセイジ合致条件

メッセイジに対して働くフック (`send-hook, save-hook, fcc-hook, message-hook`) は、他とは少し違う方法で評価されます。 他のタイプのフックコマンドには 正規表現で十分ですが、 メッセイジを扱うときには、合致に関して、よりきめ細かな制御が必要です。 目的が異なれば、合致させたいと思う条件も異なるものだからです。

Mutt では、フックコマンドにおけるメッセイジ合致条件に 検索パターン言語を使えます。 これは、演算子のうち、メッセイジのへッダ (すなわち from, to, cc, date, subject 等) から抽出した情報に関するものしか使えない点を除けば、 メイルボックスを search (検索) したり limit (表示制限) したりするときとまったく同じように動作します。

例えば、送信メッセイジに基づいて返信先を特定のアドレスに設定したい場合、 次のようにすることができます。

> `

>     send-hook '~t ^me@cs\.hmc\.edu$' 'my_hdr From: Mutt User <user@host>'

> `

これは、me@cs.hmc.edu 宛てにメイルを送るときに 所定のコマンドを実行する例です。

とはいえ、合致パターンは完全な形の検索言語で書かなければならない というわけではありません。 他のフック同様、単なる正規表現を使っても良く、 この場合 Mutt がそのパターンを完全な言語に翻訳してくれます。 翻訳には $default_hook 変数によって指定されている方法を使います。 パターンはそのフックが宣言された時点で翻訳されるので、 その当時有効だった $default_hook の値が使われます。

## 4.5 アドレスの外部問い合わせ

Mutt は、LDAP, ph/qi, bbdb, NIS といった 外部ディレクトリデイタベイスへの接続をサポートしており、これは 簡単なインタフェイスで Mutt に接続するラッパスクリプトを通して実現します。 $query_command 変数を使って、 利用するラッパコマンドを指定します。例えばこうです。

> `

>     set query_command = "mutt_ldap_query.pl '%s'"

> `

ラッパスクリプトはコマンドライン上で問い合わせを受け付けることになっています。 一行メッセイジを返し、次に合致結果がそれぞれ一行ずつ並び、 その各行は「アドレス、名前、その他付加情報」をこの順に タブ区切りで含んでいるべきです。 エラー時、および合致するアドレスがない場合は 0 以外の終了コウドと一行のエラーメッセイジを返します。

複数回答の出力例

> `

>     Searching database ... 20 entries ... 3 matching:
>     me@cs.hmc.edu           Michael Elkins  mutt dude
>     blong@fiction.net       Brandon Long    mutt and more
>     roessler@guug.de        Thomas Roessler mutt pgp

> `

Mutt の問い合わせ機能にアクセスする仕組みは二つあります。 一つは問い合わせをインデックスメニューから query 関数 (既定値: Q) を使って行なう仕組みです。問い合わせ内容を聞かれるので入力すると、 問い合わせメニューが出て合致結果の一覧が表示されるのです。 問い合わせメニューからは、選んだアドレスにエイリアスを作成したり メイルしたりすることができます。 タグを付けて複数アドレスにメイルすることや、 新しく問い合わせを始める、つまり新規問い合わせを現在の結果内容に追加する こともできます。

問い合わせ機能にアクセスするもう一つの仕組みは、アドレス補完という、 エイリアス補完と同じような仕組みです。アドレス入力のプロンプトならどれででも complete-query 関数 (既定値: ^T) を使って、アドレスのうちの、 その時点までに入力済みの部分に基づいた問い合わせを実行できます。 エイリアス のように、どこまで入力済みかについて Mutt は 最後のスペイスかコンマまで戻って調べます。 その問い合わせに結果が一つだけであれば、Mutt はその場でアドレスを展開します。 結果が複数ならば Mutt は問い合わせメニューに移ります。問い合わせメニューでは、 プロンプトに追加するアドレスを一つでも複数でも選択することができます。

## 4.6 メイルボックスの形式

Mutt は四種類のメイルボックス　―　mbox, MMDF, MH, Maildir　―　の読み書きを サポートしています。メイルボックスの種類は自動判定されるので、 種類の違いを指示する必要はありません。 新規メイルボックス作成時には $mbox_type 変数で指定される既定値を使います。

mbox.　これは UNIX でもっとも広く使われている形式です。 メッセイジは一つのファイルにすべて格納されます。各メッセイジには、

> `

>     From me@cs.hmc.edu Fri, 11 Apr 1997 11:44:56 PST

> `

という形式の行が一行あり、メッセイジの始まりを表しています (これは しばしば "From_" 行として言及されます)。

MMDF.　これは mbox 形式の亜種です。それぞれのメイルが ^A^A^A^A (Ctrl-A 四つ) という行で囲まれています。

MH.mbox と MMDF からの革新的な変形であり、 メイルボックスはディレクトリで構成され、 各メッセイジが別々のファイルに格納されています。 ファイル名はメッセイジ番号を示します (しかし、この番号は Mutt が表示するメッセイジ番号とは関係ありません)。 削除されたメッセイジはファイル名が変更されて、 先頭にコンマ (,) が付くだけです。 注意: Mutt は、`.mh_sequences` か `.xmhcache` がないか探すことによってこの形式を検知します (普通のディレクトリと MH メイルボックスを区別するために必要です [訳注：西岡・人見訳 1.4-0 では、Mutt がこれらのファイルを更新しないことが併記されていた。それらのファイルは MH かどうかを調べるためにのみ使われるということだ])。

Maildir.　メイルボックス形式の最新版で、Qmail MTA (sendmail の競合品) で使われています。MH とよく似ていますが、違うのはメイルボックスの サブディレクトリを三つ (tmp, new, cur) 追加してある点です。 メッセイジのファイル名は、二つのプログラムが同じメイルボックスを NFS 越しに書き込んでいるときでさえも重ならないような方法で選ばれています。 これはつまり、ファイルのロックが必要ないということを意味します。

## 4.7 メイルボックスの省略形

特定のメイルボックスを指す組み込みショートカット (省略形) が 幾つか用意されています。 ショートカットは、ファイルやメイルボックスの場所を入力する場面なら どこででも使えます。

- !　…… $spoolfile (受信用) メイルボックスを指す
- >　…… $mbox メイルボックスを指す
- <　…… $record メイルボックスを指す
- ^　……　現在のメイルボックスを指す
- - と !!　……　前にいたメイルボックスを指す
- ~　……　ホウムディレクトリを指す
- = と +　…… $folder メイルボックスを指す
- @エイリアス名……　このエイリアスのアドレスで識別される 既定のセイヴフォルダを指す

## 4.8 メイリングリストを扱う

Mutt には、大量のメイルの取り扱いを容易にする設定オプションが二、三あります。 まず最初にしなければならないのは、どのアドレスを メイリングリストだとみなすか (仕組みとしてはメイリングリストでなくても 構いませんが、これがもっともよく使われる用途です)、および、 どのリストを講読しているかを Mutt に知らせることです。 これは muttrc で lists および subscribe コマンドを使って行ないます。

これで Mutt は何がメイリングリストかを知っているので、 できることが幾つか増えました。その一つ目は、 どのリストを経由してメッセイジを受信したか (つまり、講読中のリスト名) を インデックスメニューの画面に表示できることです。 これは同じメイルボックス内にある私用メイルとリストメイルを 区別するのに役立ちます。 $index_format 変数の中で使う "%L" というエスケイプは "To" フィールドに「リスト名」があれば "To <リスト名>" という文字列を返し、 "Cc" フィールドなら "Cc <リスト名>" を返します (どちらでもなければメイルを書いた人の名前を返します)。

メイリングリストのメッセイジには、 "To" と "Cc" のフィールドがどんどん 膨れ上がっていってしまうということが頻繁に見られます。 ほとんどの人は、返信しようとするメッセイジの差出人をわざわざ そうしたフィールドから削除したりせず、 結果として同じものが複数その人に送られてしまうことになります。 list-reply 関数は、既定では インデックスメニューとペイジャにおいて "L" キーに割り当てられていますが、 宛先すべてにではなく既知のメイリングリストのアドレスにのみ返信するので、 こうしたゴミを減らす助けになります (`Mail-Followup-To`で指定してある場合を除きます。以下参照)。

Muttは `Mail-Followup-To` へッダもサポートしています。 購読中のメイリングリストが宛先リストに一つでもあって、 $followup_to 変数が 設定されていれば、Mutt はそのメッセイジの送信時に、送り先すべてから 自分を除いた `Mail-Followup-To` へッダを生成してくれます。 このヘッダは、このメッセイジへのグループ返信 [group-reply] や リスト返信 [list-reply] (フォロウアップ [followup] とも言う) が、 そのメッセイジの元々の送り先にのみ送られるべきであって、 それと別に自分へ送る必要はないということ　―　自分の分は 購読しているメイリングリストを通して受け取るということ　―　を示すものです。

逆に自分が `Mail-Followup-To` へッダのあるメッセイジに group-reply したり list-reply したりする場合にも、設定変数の $honor_followup_to が設定されていれば Mutt がこのへッダを考慮してくれます。 この場合、list-reply を使うと `Mail-Followup-To` の返信先リストで 指定されていなくても返信がメイリングリストへ行くようにしてくれます。

へッダ編集が有効なときは自分で `Mail-Followup-To` へッダを作成できるということを覚えておいてください。 Mutt は、送信時にこのへッダが存在しない場合にだけ、 このへッダを自動生成するのです。

一部のメイリングリスト管理者が使っている別の手法は、メッセイジの 差出人ではなく、メイリングリストのアドレスを指す "Reply-To" フィールドを生成するというものです (訳注：日本ではこれが多いかも)。 これは、差出人へ私的に直接返信しようとするときに 問題を引き起こすかもしれません。なぜなら大半のメイルクライアントは、 自動的に "Reply-To" フィールドのアドレスへ返信するからです。 Mutt は、 $reply_to 変数を使って、 どちらのアドレスに返信するか決めさせてくれます。ask-yes か ask-no に設定されていると、"Reply-To" フィールドにあるアドレスを 使うのかどうかを聞いてきて、使わないと答えると "From" フィールドのアドレスに直接返信します。 この変数が yes に設定されている場合は、あれば必ず "Reply-To" フィールドが使われます。

"X-Label:" フィールドを使って、メイリングリストや リストで話題となっている事柄をさらに特定することができます (あるいは 単に、メッセイジへ個別に註釈を付けることも)。 $index_format 変数の "%y" および "%Y" エスケイプを使えば "X-Label:" フィールドをインデックスに展開できますし、 Mutt のパターン検索では "~y" 選択子を使って正規表現で "X-Label:" に検索をかけることができます。 "X-Label:" は標準的なへッダフィールドではありませんが、 procmail その他のメイルフィルタリングエイジェントで簡単に挿入できます。

最後の点として、Mutt にはメイルボックスを スレッドで 整列させる能力があります。 スレッドとは、同じ話題でつながっているメッセイジの集まりです。 これは通常、木のような (訳注：枝分かれしている) 構造へとまとめられ、 あるメッセイジとそれに対する返信すべてが画像的に表現されます。 スレッド化されたニューズクライアントを使ったことがあれば、 それと同じ概念だと思ってください。 これによって流量の大きなメイリングリストの扱いが容易になります。 なぜなら、興味がなければ簡単にスレッドごと削除することができ、 価値ある話題を素早く見つけられるからです。

## 4.9 スレッドを編集する

Mutt には、壊れたスレッドをその場で作り直す機能があります。 スレッドが壊れる理由は相手の設定ミスや癖などですが、そのように 話を追いにくくする迷惑行為からメイルボックスを救い出すことが できるのです。

IMAP でこの機能を使いたい場合には Mutt をコンパイルする際に --enable-imap-edit-threads フラグを付けて configure する 必要があります。

### スレッドをつなぐ

返信時に正しく "In-Reply-To:" や "References:" ヘッダを付けるのを忘れてしまうメイラが あります。すると Mutt が正しくスレッドを構成するために必要な情報を 得られず、話題が切れてしまう結果になります。

これを修整するには、まず返事にタグを付け、次に親メッセイジまで カーソルを移動して、link-threads 関数 (既定では & に割り当て られている) を使います。するとその返信メッセイジが親メッセイジに つながるというわけです。

複数の子メッセイジを一度につなぐこともできます。すべてにタグを 付けて、tag-prefix 関数 (;) か auto_tag オプションを使うのです。

### スレッドをはずす

メイリングリストで新しい話題を始めるとき、適当なメッセイジに 「返信」を押して、題名だけまったく無関係なものに変えるという 悪い癖を持つ人がいます。

これは break-thread 関数 (既定で # に割り当て) を使って 修整することができます。この関数で、そのメッセイジ以降のスレッドを まったく別のスレッドにしてしまうのです。

## 4.10 配送状況通知 (Delivery Status Notification = DSN) サポート

RFC1894 は、電子メイルメッセイジの状態に関する情報を伝達するための、 一連の MIME コンテントタイプを定義しています。 これは「受領証」と考えることができます。 現在 Berkeley sendmail 8.8.x には、 どの種類の状況メッセイジを返させれば良いかを メイルクライアントが要求できるような、 幾つかのコマンドラインオプションがあります。

これをサポートするための変数が二つあります。 $dsn_notify は、 結果の違いによって証書を要求したりしなかったりするために使います (失敗メッセイジ、配信済みメッセイジ、等)。 $dsn_return は、 証書に付けて返す元メッセイジをどれだけ要求するか (ヘッダだけか メッセイジ全体か) です。 DSN に関するさらに詳細な点については sendmailの man ペイジを参照してください。

## 4.11 POP3 サポート (オプション)

Mutt は、POP3 サポートありで (configure スクリプト実行時に --enable-pop フラグを付けて) コンパイルしてあれば、 リモウトの POP3 サーバ上にあるメイルボックスを扱ったり、 ロウカル閲覧用にメイルを取りに行ったりすることができます。

`pop://POPサーバ/` というフォルダを選択することによって、 リモウト POP3 メイルボックスにアクセスできます。

代替ポートの選択も、サーバと一緒に、つまり `pop://POPサーバ:ポート/` と指定することによって可能です。

フォルダごとに違うユーザ名を指定する、つまり `pop://ユーザ名@POPサーバ[:ポート]/` と 指定することもできます。

POP3 経由だと、新着メイル情報の取得にロウカルより負担がかかります。 このため、Mutt がリモウトでメイルチェックする頻度を $pop_checkinterval 変数で 制御できます。既定値は 60 秒ごとです。

Mutt が SSL サポートありで (configureスクリプト実行時に --with-ssl フラグを付けて) コンパイルしてあれば、 POP3 サーバとの通信は暗号化できます。 これには当然、そのサーバが SSL 暗号化通信をサポートしている必要があります。 POP3/SSL でフォルダにアクセスするには pops: を使います。 つまり `pops://[ユーザ名@]POPサーバ[:ポート]/` です。

POP3 のメイルにアクセスする別の方法は fetch-mail 関数 (既定値: G) です。 POP3 ホスト ( $pop_host) に接続し、 新着メイルをすべて取ってきて、ロウカルのスプール ( $spoolfile) に置いてくれるのです。 Mutt はそれ以降、そのメイルがまるでずっとロウカルにあったかのように 動作します。

メモ:ロウカルのメイルボックスに全メッセイジを取って来る だけで良ければ、専門の、例えば fetchmail のようなプログラムの使用を検討すべきです。 (訳注：これは Mutt 開発者の「本体をできるだけ小さくして、 よそに任せられるところは任せたい」という姿勢を反映しているようだ。 訳者自身は fetch-mail を使っていて何の問題もない。 開発者の意図としては `macro index G !fetchmail\n` のように設定すれば事足りるのだから無駄な機能だということであろう。)

## 4.12 IMAP サポート (オプション)

IMAPサポートありで (configure スクリプト実行時に --enable-imap フラグを付けて) コンパイルされていれば、 Mutt はリモウト IMAP サーバ上にあるフォルダを扱うことができます。

IMAP サーバの名前を `imapserver` とすると、 `imap://imapserver/INBOX` というフォルダを選択すれば リモウトの受信箱 (inbox) にアクセスできます。 この `INBOX` は、IMAP サーバ上でスプールメイルボックスを表す 特別な名前です。 IMAP サーバの別のメイルフォルダーにアクセスしたい場合は、 そのフォルダのパスが `path/to/folder` なら `imap://imapserver/path/to/folder` とします。

サーバと一緒に、つまり `imap://imapserver:ポート/INBOX` と指定することによって代替ポートも指定できます。

フォルダごとに違うユーザ名を指定することもできます。つまり `imap://ユーザ名@imapserver[:ポート]/INBOX` です。

Mutt が SSL サポートありで (configureスクリプト実行時に --enable-ssl フラグをつけて) コンパイルしてあれば、 IMAP サーバへの接続を暗号化できます。これには当然、サーバが SSL 暗号化接続をサポートしていることも求められます。 フォルダに IMAP/SSL を使ってアクセスするには、フォルダパスに `imaps://[ユーザ名@]imapserver[:ポート]/path/to/folder` と指定します。

Pine 互換の書き方もサポートしています。つまり `{[ユーザ名@]imapserver[:ポート][/ssl]}path/to/folder` です。

すべてのサーバが階層分離記号 (hierarchy separator) に / を使っているわけではないことを覚えていてください。 Mutt はどの分離記号がサーバで使われているかを正しく認識し、 それに応じてパスを変換してくれるはずです。

IMAP サーバ上のフォルダを閲覧しているときに、 自分が購読しているフォルダだけを見るか、それともあらゆるフォルダを見るかを、 toggle-subscribed コマンドで切り換えられます。 $imap_list_subscribed 変数についても 見てください。

IMAP サーバ上の新着メイルを確認すると、動作が遅くなって気になることがあります。 それで、 $mail_check および $timeout 変数は慎重に調整したいと思うことでしょう。 私個人として使っているのは

> `

>     set mail_check=90
>     set timeout=15

> `

ですが、遅いモデム回線にしては、結果は比較的良好です。

v12.250 以前の UW サーバでメイルの格納に mbox を使っている場合は 注意してください。別のクライアントが同じフォルダを選ぶと 接続が切断されてしまうと報告されています。

### フォルダブラウザ

ヴァージョン 1.2 から Mutt は IMAP サーバ上のメイルボックスの 閲覧 (browsing) をサポートしています。 これはロウカルファイルブラウザとほとんど同じですが、 以下のような違いがあります。

- ファイルの属性の代わりに "IMAP" という文字列を表示します。 これの後ろに "+" 記号がつく場合がありますが、 これはその中にメッセイジとサブフォルダの両方が含まれていることを意味します。 Cyrus 系サーバの場合にはしばしばフォルダの中に メッセイジとサブフォルダが入っています。
- メッセイジとサブフォルダの両方が含まれている場合、`select-entry` (既定では `enter` に割り当てられている) のキーを押すと そのサブフォルダの中に下りていってしまいます。 もしそのフォルダ自体のメッセイジを見たい場合には (既定では `スペイス` に割り当てられている) `view-file` を使わなければなりません。
- メイルボックスを作ったり、消したり、移動したりするには、 `create-mailbox`, `delete-mailbox`, `rename-mailbox` コマンド (既定では `C`, `d`, `r`) を使います。 また、メイルボックスの購読 `subscribe` と、 購読解除 `unsubscribe` もできます (通常は s と u に割り当てられています)。

### 認証

Mutt は IMAP サーバに関して四つの認証方法をサポートしています。 SASL, GSSAPI, CRAM-MD5, LOGIN です (かわいそうな exchange ユーザのために NTLM 認証を追加する、Grant Edwards によるパッチがありますが、 まだメイントゥリーには統合されていません)。また疑似プロトコル ANONYMOUS のサポートもあります。これは公開 IMAP サーバにアカウントなしでログイン するためのものです。ANONYMOUS を使うには、単にユーザ名を入れないでおくか、 または "anonymous" にします。

SASL は特殊な、包括的認証方法です。 自分のホストとサーバ両方で利用可能かつ最も堅牢な方法を、いくつかのプロトコル (GSSAPI, CRAM-MD5, ANONYMOUS, DIGEST-MD5 を含む) の中から、選びます。 これらのうちのいくつかの方法 (DIGEST-MD5 や、多分 GSSAPI も) を使うと、 セッション全体が暗号化され、そこかしこにいるネットワーク覗きの目から 見えなくなります。利用可能なら、これが最善の選択肢です。 SASL を使うには、システムに Cyrus SASL ライブラリがインストールされていて、 かつ、--with-sasl 付きで mutt をコンパイルする必要があります。

Mutt は、コンパイル時に組み込まれ、かつサーバ側の利用可能な方法を すべて試していきます。順番は SASL, ANONYMOUS, GSSAPI, CRAM-MD5, LOGIN です。

認証を制御する変数がいくつかあります。

- $imap_user ―　IMAP サーバへ認証を要求するユーザ名です。すべての認証方法に使われます。 これはメイルボックスのパスに明示的に含まれるユーザ名 (つまり `{ユーザ@ホスト}` の形のメイルボックスを使うこと) によって上書きされます。
- $imap_pass ―　パスワードです。 パスワードを必要とするすべての認証方法に使います。
- $imap_authenticators ―　試行順序にコロンで区切った、 IMAP 認証方法リストです。設定されていると、この変数が mutt の既定値 (あらゆる方法を上記の順に試す) を上書きします。

## 4.13 複数の IMAP/POP アカウントを使う (オプション)

いくつもの IMAP や POP サーバにアカウントを持っていると、 認証の設定は、面倒くさくて間違いやすいものですよね。 そんなあなたに account-hook コマンドが役に立ちます。 このフックは folder-hook コマンドと同じような働きをするものですが、 開くときだけではなく、リモウトのメイルボックスにアクセスするたびに 呼び出されます (フォルダブラウザ内も含みます)。

例:

> `

>     account-hook . 'unset imap_user; unset imap_pass; unset tunnel'
>     account-hook imap://host1/ 'set imap_user=me1 imap_pass=foo'
>     account-hook imap://host2/ 'set tunnel="ssh host2 /usr/libexec/imapd"'

> `

## 4.14 URL に対して WWW ブラウザを起動する (外部コマンド)

メイルに URL (unified resource locator = WWW 空間における住所。 例えば http://www.mutt.org/) が含まれているとき、 そうした URL をすべて含むメニューが出てきて、一つ選ぶと WWW ブラウザが 起動すると効率が良いですよね。 この機能は外部プログラムの urlview と 以下の設定コマンドによって提供されています。 urlview は ftp://ftp.mutt.org/mutt/contrib/で手に入ります。

> `

>     macro index \cb |urlview\n
>     macro pager \cb |urlview\n

> `

## 5. Mutt の MIME サポート

Mutt をテキストモウド MIME MUA として最上のものとするため、 これまで多大な努力が払われてきました。眼識ある MIME ユーザの要求する機能と 標準への準拠のために、可能な限りのあらゆる努力が払われてきました。 Mutt の MIME 設定に際しては、二つの外部ファイルがあります。 一つは `mime.types` ファイルで、これにはファイル拡張子と IANA MIME タイプとの対応が書いてあります。もう一つは `mailcap` ファイルで、それぞれの MIME タイプを扱うために 使う外部コマンドが指定されています。

## 5.1 Mutt で MIME を使う

Mutt は三つの場面において、すなわちペイジャ (メイルを閲覧するとき)、 ファイル添付メニュー、コンポウズメニューで MIME を扱います。

### ペイジャで MIME メッセイジを閲覧する

インデックスでメイルを選択してペイジャで閲覧するとき、 Mutt はメイルをテキスト表現へと復号化します。Mutt には、 `text/plain, text/enriched, message/rfc822, message/news` といった、数々の MIME タイプのサポート機能が内蔵されています。 輸出制限ヴァージョンの Mutt では、それに加えて PGP/MIME や application/pgp といった PGP MIME タイプを理解することもできます。 (訳注：1.5.6i のように「i」が付いていれば PGP 機能が付いているはず。)

Mutt は添付ファイルがあることを二、三行の説明で表します。 こんな形式です。

> `

>     [-- Attachment #1: Description --]
>     [-- Type: text/plain, Encoding: 7bit, Size: 10000 --]

> `

`Description` の部分は添付ファイルに関する説明やファイル名で、 `Encoding` は `7bit/8bit/quoted-printable/base64/binary` のどれかです。

Mutt が扱うことのできない MIME タイプであれば 次のようなメッセイジを表示します。

> `

>     [-- image/gif is unsupported (use 'v' to view this part) --]

> `

### 添付ファイルメニュー

既定で "v" に割り当てられている `view-attachments` は、メッセイジの添付ファイルメニューを表示するものです。 添付ファイルメニューにはメッセイジの添付ファイル一覧が表示され、 このメニューから添付ファイルを保存、印刷、パイプ、削除、 閲覧することができます。"tag-prefix" を使えば、 複数の添付ファイルを一度に処理することも可能です。 また、このメニューからメッセイジに返信することもできます。 その場合は、カーソルのある (もしくはタグ付けされている) 添付ファイルのみ 返信に引用されます。添付ファイルは、テキストとして閲覧したり、 mailcap のヴューワ定義を使って閲覧することもできます。

また `message/rfc822` タイプのファイルには、 メッセイジ関連の通常の関数 (例えば resend-message, reply, forward など) も使えます。

さらに詳しい情報は、添付ファイルメニューでのヘルプをご覧下さい。

### コンポウズメニュー

コンポウズメニューはメッセイジを送る前に現れるメニューのことです。 このメニューでは宛先のリストを編集できます。題名を編集できます。 その他にもメッセイジの様々な側面を編集することができます。 このメニューには、メッセイジの添付ファイル (本文も含む) の一覧が表示されます。 一つの添付ファイル、もしくはタグ付けされた複数の添付ファイルを、 印刷したり、フィルタにかけたり、パイプに通したり、編集したり、 作成したり、もう一度確認のために閲覧したり、名前を変更したりすることが できます。また、添付ファイルに関する情報を変更することもできます。 特に注目すべきなのは、content type, 符号化方式、内容説明を 変更できるという点です。

添付ファイルは次のように表示されます。

    -   1 [text/plain, 7bit, 1K]             /tmp/mutt-euler-8082-0 <no description>
        2 [applica/x-gunzip, base64, 422K]   ~/src/mutt-0.85.tar.gz <no description>

左端の "-" は、そのファイルがメッセイジの 送信 (または延期や中止) の後に削除されるということを示しています。 この切替は `toggle-unlink` コマンド (既定値: u) でおこなえます。 次の欄 は MIME content-type を示しており、 `edit-type` コマンド (既定値: ^T) で変更できます。 その次の欄はファイルの符号化方式を示しています。 符号化 (つまり変換) をすることによって、バイナリのメッセイジを 7bit 通信で配送することができるようになります。変更は `edit-encoding` コマンド (既定値: ^E) です。 次の欄はファイルサイズです。キロバイトかメガバイト単位に丸めてあります。 次の欄はファイル名で、変更には `rename-file` コマンド (既定値: R) を使います。最後の欄は添付ファイルの内容説明です。 `edit-description` コマンド (既定値: d) で変更できます。

## 5.2 `mime.types` による MIME タイプ設定

メイルにファイルを添付すると、Mutt は個人用の mime.types ファイルを `${HOME}/.mime.types` に探しに行き、該当するものがなければ、次にシステムの mime.types ファイルを `/usr/local/share/mutt/mime.types` か `/etc/mime.types` に探しに行きます。

mime.types ファイルを構成する各行には、 MIME タイプとスペイス区切りの拡張子のリストが書かれています。

> `

>     application/postscript          ps eps
>     application/pgp                 pgp
>     audio/x-aiff                    aif aifc aiff

> `

サンプルの `mime.types` が Mutt の配布物に付いています。 使いたい MIME タイプはその中にほとんど含まれているはずです。

添付されたファイルの拡張子から MIME タイプを判断できなかったとき、 Mutt はファイルの中身を見に行きます。ファイルにバイナリ情報がなければ プレインテキストだとみなして `text/plain` にします。 バイナリ情報を含んでいれば `application/octet-stream` にします。 Mutt が添付ファイルに付けた MIME タイプは、添付ファイルメニュー から `edit-type` コマンド (既定値: ^T) を使って変更できます。 さて、この MIME タイプは、メジャータイプの後に "/" とサブタイプの付いたものです。メジャータイプは application, text, image, video, audio, model の 6 種類が、インターネットでの 各種議論の末に承認されています。mime.types ファイルに適当な項目があるならば、 Mutt はこれらすべてを認識することができます。 また、その他のメジャータイプも認識でき、例えば chemical タイプという、 分子モデリング業界で広く使われているタイプなども使うことができます。 これは様々な形式の分子デイタを種々の分子ヴューワに渡すためのものです。 ただし、未承認の MIME タイプを使うのは、そういう添付ファイルが来ることを 相手がわかっている場合だけにすべきです。

## 5.3 `mailcap` による MIME ヴューワの設定

Mutt は、MIME 設定に関する RFC 1524 をサポートしています。 特に RFC 1524 の Appendix A で規定されている Unix 用フォーマットをサポートしています。 このファイルフォーマットは一般的に mailcap フォーマットと呼ばれます。 多くの MIME 対応プログラムがこの mailcap フォーマットを利用しているので、 すべてのプログラムでのすべての MIME タイプの扱いを 一か所で指定することができます。 このフォーマットを利用しているプログラムには、 Netscape, XMosaic, lynx, metamail などがあります。

Mutt 単体では扱えない様々な MIME タイプを扱うために、 Mutt は外部の設定ファイルを解析して、 扱うことのできる外部プログラムを探します。 設定ファイルを検索する文字列はコロン区切りリストで、 既定値はこうなっています。

> `

>     ${HOME}/.mailcap:/usr/local/share/mutt/mailcap:/etc/mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap

> `

`$HOME` はホウムディレクトリです。

metamail が普通 mailcap ファイルを `/usr/local/etc/mailcap` に インストールします。これに基本的な項目がある程度含まれています。

### mailcap ファイルの基本

mailcap ファイルの各行はコメント、空行、定義のいずれかです。

コメント行は # 文字とそれに続く任意の文字で構成されます。

空行は空の行です。

定義行は、content type 一つと閲覧コマンド一つ、そして任意の数の 付加的な欄で構成されています。 定義行の各欄はセミコロン記号 ";" で分けられています。

content type は MIME 標準の「タイプ/サブタイプ」方式で指定します。 例えば、`text/plain, text/html, image/gif`等です。 それに加えて、mailcap フォーマットには二種類のワイルドカードもあります。 一つは特殊なサブタイプ '*' を使う方法で、もう一つは暗にワイルドタイプ を示すものとして、メジャータイプしか書かないという方法です。 例えば、`image/*` と `video` は、それぞれ image タイプと video タイプの全体に相当します。

閲覧コマンドは、特定のタイプを閲覧するための Unix コマンドです。 二種類のコマンドがサポートされています。既定では、その MIME メッセイジの内容を標準入力でコマンドに渡します。 この動作を変更するには、閲覧コマンドの引数に %s を使います。 こうすると Mutt は MIME メッセイジの内容を一時ファイルに保存し、 %s を一時ファイルの名前に置き換えて閲覧コマンドを呼び出します。 どちらの場合も Mutt は端末を閲覧プログラムに明け渡し、 終了するまで待ちます。終了時、一時ファイルは (あれば) 削除されます。

それで、最も単純な形として、text/plain のメッセイジを外部ペイジャ more に標準入力で渡すことができます。

> `

>     text/plain; more

> `

もしくは、メッセイジをファイルとして渡すこともできます。

> `

>     text/plain; more %s

> `

lynx を使って対話的に text/html のメッセイジを閲覧したいと思うかもしれません。

> `

>     text/html; lynx %s

> `

その場合、lynx は標準入力からのファイル閲覧をサポートしていないので %s 構文を使わなければなりません。 注意: 古いヴァージョンの lynx には、一部、「text/html にまで mailcap ファイルをチェックしてしまう」というバグを含むものがあります。 その場合、ヴューワとして lynx を呼ぶように書いてあっても そのまま実行してしまいます。すると、いつまでも 自分が自分を呼び出し続けることになってしまいます。

一方、lynx を対話的に使いたいのではなく、単に text/html を text/plain に変換したいということもあるでしょう。そのときはこうします。

> `

>     text/html; lynx -dump %s | more

> `

おそらく、text/html ファイルの閲覧には lynx を使いたいものの、 ほかの text タイプにはすべてペイジャを使いたいということもあるでしょう。 その場合はこういう書き方ができます。

> `

>     text/html; lynx %s
>     text/*; more

> `

これは mailcap ファイルのもっとも単純な形式です。

### mailcap の安全な使い方

一般的に言って、MIME パラメータに埋め込まれたメタ文字を解釈して シェルに渡すことには、セキュリティ上の問題を引き起こす危険性があります。 Mutt は %s 構文の展開の際に正しくパラメータをくくろうとしますし、 危険な文字を別のものに置き換えようとします。 mailcap_sanitize 変数を見てください。

Mutt が mailcap からプログラムを呼び出す手順はおそらく安全ですが、 他のアプリケイションも mailcap を読みますし、 中にはそれほど注意を払わないものもあるかも知れません。 そこで、次のようなルールに注意を払うべきです。

シェルクウォウトに %展開を入れない。シングルクウォウト (') やダブルクウォウト (") で囲ってはいけません。 (訳注：展開後にスペイスが入っても一つの引数として認識されるように クウォウトしたいと思うかもしれませんが、その必要はありません。) その辺りのことは Mutt がきちんとやってくれますし、 mailcap を使う他のプログラムも同じはずです。 バッククウォウトを使った展開の中にも入れないでください。 eval 文には特別な注意が必要です。できればまったく使わないでください。 おかしな挙動をクウォウトで直そうとしても、新しい別の水漏れができるだけです。 クウォウトを使っている限り、正しい方法など最初から存在しないのです。

どうしても %展開の値がクウォウトやバッククウォウトの 中に入っていなければならない場合には、まずその値をシェル変数に代入して、 その変数を使うようにしてください。次の例のようにです (バッククウォウト展開の中で `$charset` を使っていますが、 これは安全です。そこからさらに展開されるわけではないからです)。

> `

>     text/test-mailcap-bug; cat %s; copiousoutput; test=charset=%{charset} \
>             && test "`echo $charset | tr '[A-Z]' '[a-z]'`" != iso-8859-1

> `

### 一歩進んだ mailcap の使い方

### 付加的な欄

必須である content-type と閲覧コマンドの欄のほかに、 セミコロン ';' で区切った欄を追加して、 各種フラグを付けたりオプションを設定したりすることができます。 Mutt は以下の付加的な欄をサポートしています。

copiousoutput

  このフラグは、そのコマンドがテキストを標準出力へ (もしかすると 大量に) 渡すということを Mutt に教えます。このとき Mutt は ペイジャ (内部ペイジャ、もしくは pager 変数で決めた外部ペイジャ) を起動して閲覧コマンドの出力を受け取ります。このフラグがなければ、 そのコマンドは対話的に操作できるものとみなされます。 これを使って、「基本的な使い方」の `lynx -dump` の例における more へのパイプを書き換えることができます。

  > `

  >     text/html; lynx -dump %s ; copiousoutput

  > `

  こうすれば lynx が text/html の出力を text/plain 変換し、 Mutt が標準のペイジャを使ってその結果を表示することになります。
needsterminal

  Mutt は auto_view で 添付ファイルを閲覧するときに、このフラグに合わせて $wait_key 変数を扱います。 終了時にキーを押すよう求めるかどうかは、 閲覧に対話的な外部プログラムを使っており、かつ 該当する mailcap 項目に needsterminal フラグがあるときにのみ、 $wait_key とプログラムの終了値から決定することになります。 そのほかの場合はすべて、キーを催促せずに終了します。

compose=<command>

  このフラグは、特定の MIME タイプの添付ファイルを新規作成するときに使う コマンドを指定します。コンポウズメニューにおいてサポートされています。

composetyped=<command>

  このフラグも、その MIME タイプの添付ファイルを新規作成する コマンドを指定するものです。compose コマンドとの違いは、そのデイタ内に 標準的な MIME ヘッダが含まれていることが期待されているという点です。 これを使って、パラメータ、ファイル名、内容説明などを指定できます。 Mutt はこれをコンポウズメニューでサポートしています。

print=<command>

  特定の MIME タイプの印刷に使うコマンドを指定します。 Mutt では、ファイル添付メニューとコンポウズメニューでサポートされています。

edit=<command>

  このフラグは、特定の MIME タイプの編集に使うコマンドを指定します。 Mutt はこのコマンドをコンポウズメニューでサポートしており、 新しい添付ファイルを作成するときにも使います。 Mutt は既定では editor 変数に定義されたエディタを テキストの添付ファイルに使用します。

nametemplate=<template>

  閲覧コマンド欄に %s で示されるファイルのファイル名を指定します。 ある種のプログラムは、ファイル名に特定の拡張子がないと、 正しく閲覧してくれなかったりします。例えば lynx は、ファイル名が `.html` で終わっている場合にのみ `text/html` であると 解釈します。それで、lynx を `text/html` ヴューワに指定するには 次のように mailcap に書くことになるでしょう。

  > `

  >     text/html; lynx %s; nametemplate=%s.html

  > `

test=<command>

  その項目を使うべきなのかどうか確認するためのコマンドを指定します。 そのコマンドは、次の節にあるコマンド展開ルールに沿って定義します。 コマンドが 0 を返した場合にはテスト合格ですから、Mutt はその項目を使います。 0 以外の値を返した場合にはテスト失敗で、Mutt はさらに他の正しい項目を 探し続けます。注意: まず content-type が合致していた場合に のみテストが実行されます。さて、例えば

  > `

  >     text/html; netscape -remote 'openURL(%s)' ; test=RunningX
  >     text/html; lynx %s

  > `

  上の例で Mutt は RunningX を実行します。このプログラムは X ウィンドウマネジャが動いていれば 0 を返し、そうでなければ 0 以外を返すというものです。RunningX が 0 を返せば、Mutt は netscape を呼び出して text/html のファイルを表示させます。 もし 0 を返さなければ、次の項目に移って lynx に表示させます。

### 検索順序

ある項目について mailcap ファイルの中から検索する際、Mutt は その目的に最も合う項目を見付けようとします。 例えば `image/gif` を印刷しようとしているとき、 次のような項目が mailcap ファイルにあれば、 print コマンドのあるものを探すので、

> `

>     image/*;        xv %s
>     image/gif;      ; print= anytopnm %s | pnmtops | lpr; \
>                     nametemplate=%s.gif

> `

`image/*` の項を飛び越して、print コマンドのある `image/gif`の項目を使用します。

さて、これを auto_view による自動閲覧 と組み合わせて、添付ファイル閲覧のコマンドを二つ指定することもできます。 一つは自動的に閲覧するためのコマンド、 もう一つは添付ファイルメニューから閲覧する対話的なコマンドです。 そのうえ、test 機能を使えば、どのヴューワを使うかを 自分の環境に合わせて対話的に決定できます。

> `

>     text/html;      netscape -remote 'openURL(%s)' ; test=RunningX
>     text/html;      lynx %s; nametemplate=%s.html
>     text/html;      lynx -dump %s; nametemplate=%s.html; copiousoutput

> `

Mutt は、 auto_view の自動閲覧 には 三番目の項目を選択します。copiousoutput タグがついているからです。 対話的な閲覧には、まずプログラム RunningX を走らせて、一番目の項目を 使うかどうか調べます。プログラムが 0 以外を返せば、二番目の項目を使って 対話的閲覧をおこないます。

### コマンド展開

mailcap ファイルに定義されている各種のコマンドは system() 関数を通して `/bin/sh` シェルに渡されます。 コマンドは、`/bin/sh -c` に渡される前に解析されて、 Mutt からの情報をもとに各種の特殊パラメータが展開されます。 Mutt が展開するキーワードは以下の通りです。

%s

  「mailcap の基本」の節で見たように、この変数はファイル名に展開されます。 ファイル名は、それを呼び出している側のプログラム (訳注：ここでは Mutt) によって指定されます。 このファイルには、閲覧/印刷/編集するメッセイジ内容が含まれています。 もしくは、ファイルを作成するプログラムがそこに結果を保存します。 補足として言っておきますが、このキーワードを使うと、 Mutt はメッセイジの内容を標準入力からは渡さなくなります。

%t

  Mutt は %t をテキスト表現へ展開します。 メッセイジの content type を、mailcap 定義における 最初のパラメータと同じ形式で表現したものです。つまり `text/html` や `image/gif` という形式になります。

%{<パラメータ>}

  Mutt はこれを、メイルの Content-Type: 行における特定のパラメータの 値に展開します。例えば、メイルに次のような行があるとします。

  > `

  >     Content-Type: text/plain; charset=iso-8859-1

  > `

  すると Mutt は %{charset} を iso-8859-1 に展開します。 metamail の既定 mailcap ファイルでは、この機能を使って 文字セットを調べ、xterm を正しい文字セットで起動してメイルを閲覧できる ようになっています。
\%

  これは % に置き換えられます。

Mutt は RFC 1524 で定義されている %F と %n キーワードを 今のところサポートしていません。これらのパラメータの主にマルティパート メッセイジのためのものですが、マルティパートは Mutt 内部で扱われるからです。

### mailcap ファイルの例

下の mailcap ファイルはとても単純かつ標準的なものです。

    # 常に X を実行していることにします :)
    video/*;        xanim %s > /dev/null
    image/*;        xv %s > /dev/null

    # 常に Netscape を実行していることにします (今よりメモリがあればそうするでしょうから)
    text/html;      netscape -remote 'openURL(%s)'

下の mailcap ファイルでは、たくさんの例を示しています。

    # 動画には、すべて xanim を使います
    # xanim は起動時にヘッダを出力しますが、見なくて済むように
    # /dev/null へ送ってしまいます
    video/*;        xanim %s > /dev/null

    # HTML は、実行中の netscape に remote オプションで送ります
    text/html;      netscape -remote 'openURL(%s)'; test=RunningNetscape

    # netscape を実行していなくて X を実行しているときは
    # そのファイルに対して netscape を起動します
    text/html;      netscape %s; test=RunningX

    # それ以外のときは lynx を使ってテキストで閲覧します
    text/html;      lynx %s

    # こちらは text/html を text/plain に変換するものです
    text/html;      lynx -dump %s; copiousoutput

    # enscript を使ってテキストを二段で印刷します
    text/*;         more %s; print=enscript -2Gr %s

    # netscape は、jpeg を自分で表示するためにフラグを付けます
    image/jpeg;xv %s; x-mozilla-flags=internal

    # X 実行中の画像閲覧には xv を使います
    # なお、ここでは \ を使って行をのばし、画像のエディタも設定しています
    image/*;xv %s; test=RunningX; \
            edit=xpaint %s

    # netpbm ツールを使って画像をテキストに変換します
    image/*;  (anytopnm %s | pnmscale -xysize 80 46 | ppmtopgm | pgmtopbm | pbmtoascii -1x2 ) 2>&1 ; copiousoutput

    # excel の表計算ファイルは NT マシンに送ります
    application/ms-excel; open.pl %s

## 5.4 MIME 自動閲覧

mailcap ファイルに指定されている MIME のヴューワで添付ファイルを 閲覧するよう Mutt に明示的に言う以外に、 ペイジャの中で MIME 添付ファイルを自動的に閲覧する機能もあります。

機能させるには、mailcap ファイルで `copiousoutput` オプションを使って ヴューワを指定しなくてはなりません。そのヴューワが 対話的コマンドではないということを指示するためです。 普通は、ペイジャで閲覧できるようなテキスト表現へと 添付ファイルを変換するためにもこの項目を使います。

それから `auto_view` という muttrc のコマンドを使って、 自動的に閲覧したい content-type を羅列します。

例えば次のように `auto_view` を指定しているとします。

> `

>     auto_view text/html application/x-gunzip application/postscript image/gif application/x-tar-gz

> `

以下のような mailcap 項目を使えば、 こうした添付ファイルを自動的に閲覧できます。

> `

>     text/html;      lynx -dump %s; copiousoutput; nametemplate=%s.html
>     image/*;        anytopnm %s | pnmscale -xsize 80 -ysize 50 | ppmtopgm | pgmtopbm | pbmtoascii ; copiousoutput
>     application/x-gunzip;   gzcat; copiousoutput
>     application/x-tar-gz;   gunzip -c %s | tar -tf - ; copiousoutput
>     application/postscript; ps2ascii %s; copiousoutput

> `

"unauto_view" を使えば、以前に指定した項目を 自動閲覧リストから削除できます。 message-hook と一緒に使うなら、サイズ等に基づいた自動閲覧もできます。 "unauto_view *" は、指定した項目をすべて削除します。

## 5.5 MIME Multipart/Alternative

Mutt には、multipart/alternative のうち、どのタイプの添付ファイルを 表示するか決定するための発見的手法があります。まず最初に alternative_order リストを調べて、選べるタイプのなかで 一番望ましいとされているものがあればそれに決めます。 alternative_order リストには複数の MIME タイプが順に並べられます。 これには明示的および暗示的なワイルドカードのサポートも付いています。 例えばこうです。

> `

>     alternative_order text/enriched text/plain text application/postscript image/*

> `

次に Mutt は、いずれかのタイプが auto_view で定義されていないかどうかを調べ、それを使います。それでもだめなら text タイプを探します。最終手段としては、扱い方のわかるタイプが一つでも ないかどうかと探します。

MIME タイプを `alternative_order` リストから削除するには、 `unalternative_order` コマンドを使います。

## 5.6 MIME 調査

Mutt の mime_lookup リストは、mailcap の項目に従って扱うべきでは ない MIME タイプを指定するものです。このオプションは、 application/octet-stream のようなバイナリのタイプを取り扱うように 設計されています。 添付ファイルの MIME タイプが mime_lookup に指定されているときは、 そのファイル名の拡張子を mime.types ファイルの拡張子のリストと見比べて、 拡張子に対応する MIME タイプを使って、mailcap にあるルールや 他の指定された設定オプション (例えば auto_view) に従った処理をします。 一般的な使い方はこうです、

> `

>     mime_lookup application/octet-stream application/X-Lotus-Manuscript

> `

なお、unmime_lookup コマンドを使えば、 すでにシステムの muttrc 等で設定されている特定の MIME タイプに対して この機能を適用しないようにすることもできます。

## 6. 早見表

## 6.1 コマンドラインオプション

引数なしで `mutt` だけ実行すると、Mutt はスプールメイルボックスを 読みに行きます。しかし、コマンドラインから指定してやることで、 他のメイルボックスを読んだりメイルを送ったりすることも可能です。

> `

>     -A      エイリアスを展開
>     -a      メッセイジにファイルを添付
>     -b      ブラインドカーボンコピー (BCC) アドレスを指定
>     -c      カーボンコピー (Cc) アドレスを指定
>     -D      すべての設定変数を表示
>     -e      設定コマンドを指定して、初期化ファイルを読んだ後に実行
>     -f      読み込むメイルボックスを指定
>     -F      初期化コマンドを読むファイルとして別のものを指定
>     -h      コマンドラインオプションについてのヘルプを表示
>     -H      下書きファイルを指定して、そこからヘッダと本文を読み出す
>     -i      作成メッセイジに含めるファイルを指定
>     -m      既定のメイルボックスの種類を指定
>     -n      システムの Muttrc を読まない
>     -p      延期していたメッセイジを呼び出す
>     -Q      設定変数を問い合わせる
>     -R      メイルボックスを読み出し専用で開く
>     -s      題を指定 (空白を含むときは引用符で囲むこと)
>     -v      ヴァージョン番号とコンパイル時の設定を表示
>     -x      mailx(1) のコンポウズモウドを真似る
>     -y      mailboxes コマンドで指定されたファイルのメニューを表示
>     -z      メイルボックスにメッセイジが存在しないときはすぐ終了
>     -Z      新着メッセイジのある最初のフォルダを開くが、なければすぐ終了

> `

メイルボックス内のメッセイジを読むには、こうします。

`mutt` [ -nz ] [ -F muttrc ] [ -m メイルボックスの種類 ] [ -f メイルボックス ]

新規にメッセイジを作成するには、こうします。

`mutt` [ -n ] [ -F muttrc ] [ -a 添付ファイル ] [ -c CCアドレス ] [ -i 引用ファイル ] [ -s 題名 ] アドレス [ アドレス ... ]

Mutt は、準備しておいたメッセイジを送信する "batch" モウドも サポートしています。 単に、送信したいファイルから入力へリダイレクトしてください。例えば、

`mutt -s "data set for run #2" professor@bigschool.edu < ~/run2.dat`

このコマンドは、メッセイジを "professor@bigschool.edu" に "data set for run #2" という題で送信します。 そのメッセイジの本文にはファイル "~/run2.dat" の内容が入ります。

## 6.2 設定コマンド

以下が、Mutt の理解するコマンドです。

- `account-hook` パターン コマンド
- `alias` キー アドレス [ , アドレス, ... ]
- `unalias` [ * | キー ... ]
- `alternates` 正規表現 [ 正規表現 ... ]
- `unalternates` [ * | 正規表現 ... ]
- `alternative_order` MIME [ MIME ... ]
- `unalternative_order` MIME [ MIME ... ]
- `auto_view` MIME [ MIME ... ]
- `unauto_view` MIME [ MIME ... ]
- `bind` 使う場面 キー 関数
- `charset-hook` 別名 文字セット
- `color` 対象 前景 背景 [ 正規表現 ]
- `uncolor` index パターン [ パターン ... ]
- `exec` 関数 [ 関数 ... ]
- `fcc-hook` パターン メイルボックス
- `fcc-save-hook` パターン メイルボックス
- `folder-hook` パターン コマンド
- `hdr_order` ヘッダ [ ヘッダ ... ]
- `unhdr_order` ヘッダ [ ヘッダ ... ]
- `iconv-hook` 文字セット ロウカル文字セット
- `ignore` パターン [ パターン ... ]
- `unignore` パターン [ パターン ... ]
- `lists` 正規表現 [ 正規表現 ... ]
- `unlists` 正規表現 [ 正規表現 ... ]
- `macro` メニュー キー 操作内容 [ 説明 ]
- `mailboxes` ファイル名 [ ファイル名 ... ]
- `mbox-hook` パターン メイルボックス
- `message-hook` パターン コマンド
- `mime_lookup` MIME [ MIME ... ]
- `unmime_lookup` MIME [ MIME ... ]
- `mono` 属性 [ 正規表現 ]
- `unmono` index パターン [ パターン ... ]
- `my_hdr` 文字列
- `unmy_hdr` フィールド [ フィールド ... ]
- `crypt-hook` パターン 鍵ID
- `push` 文字列
- `reset` 変数 [変数 ... ]
- `save-hook` 正規表現 ファイル名
- `score` パターン 値
- `unscore` パターン [ パターン ... ]
- `send-hook` 正規表現 コマンド
- `send2-hook` 正規表現 コマンド
- `reply-hook` [!]パターン コマンド
- `set` [no|inv]変数[=値] [ 変数 ... ]
- `unset` 変数 [変数 ... ]
- `source` ファイル名
- `spam` パターン 書式
- `nospam` パターン
- `subscribe` 正規表現 [ 正規表現 ... ]
- `unsubscribe` 正規表現 [ 正規表現 ... ]
- `toggle` 変数 [変数 ... ]
- `unhook` フック

## 6.3 設定変数

### abort_nosubject

Type: quadoption
Default: ask-yes

yes に設定されていると、メッセイジ作成時の題名入力に対して 題が与えられなかったときに、作成が中止される。 no に設定されていると、題がなくても中止されない。

### abort_unmodified

Type: quadoption
Default: yes

yes に設定されていると、メッセイジ本文の編集後に ファイルへの変更がなければ作成を自動終了する (このチェックは そのファイルの最初の編集後にのみ発生する)。 no に設定されていると、どんなときも作成が中止されない。

### alias_file

Type: path
Default: "~/.muttrc"

create-alias 関数で作成された エイリアスを保存する既定ファイル。

注意: Mutt は自動でこのファイルを source するわけではない。 明示的に source コマンドを使用して 実行しなくてはならない。(訳注：このファイルには alias コマンドが 羅列してあるだけだから「実行」するのである)

### alias_format

Type: string
Default: "%4n %2f %t %-10a %r"

エイリアスメニューに表示されるデイタの書式を指定する。 次の printf(3) 式のシークウェンスが利用できる。

%a

  エイリアス名

%f

  フラグ - 現時点では、削除予定のエイリアスに "d" が付くだけ

%n

  インデックス番号

%r

  展開後のアドレス

%t

  使用するためにタグ付けされていることを表す文字

### allow_8bit

Type: boolean
Default: yes

メイル送信時に Quoted-Printable か Base64 を使って 8 ビットデイタを 7 ビットに変換するかどうかを制御する。

### allow_ansi

Type: boolean
Default: no

メッセイジ中の ANSI 色コウド (と、リッチテキストメッセイジの色タグ) を解釈するかどうかを制御する。こうしたコウドを含むメッセイジは稀だが、 このオプションが設定されていれば、相応に着色される。 注意すべきなのは、自分の色選択を上書きしかねないという点や、 セキュリティ上の問題さえ引き起こしかねないという点である。 というのは、メッセイジに添付ファイルの色で "[-- PGP output follows ..." という行を含めてあるかもしれないからだ。

### arrow_cursor

Type: boolean
Default: no

設定されているときには、行全体の反転ではなく矢印 ("->") を使って、メニューにおける現在位置を示す。これを使えば、 遅いネットワークやモデム接続で反応を早くすることができる。 なぜなら、メニューで前後の項目へ動く際に 画面上で再描画しなければならない部分が少ないからだ。

### ascii_chars

Type: boolean
Default: no

設定されていると、スレッドや添付ファイルの枝分かれを表示する際に、 既定の ACS 文字ではなくプレイン ASCII 文字を使う。

### askbcc

Type: boolean
Default: no

設定されていると、送信メッセイジ編集前にブラインドカーボンコピー (Bcc) の宛先を入力するよう Mutt が促してくる。

### askcc

Type: boolean
Default: no

設定されていると、Mutt は送信メッセイジの編集前にカーボンコピー (Cc) の宛先を尋ねてくる。

### attach_format

Type: string
Default: "%u%D%I %t%4n %T%.40d%> [%.7m/%.10M, %.6e%?C?, %C?, %s] "

この変数は添付ファイルメニューの書式を記述する。 下記の printf 式シークウェンスが理解できる。

%C

  文字セット

%c

  文字セット変換の必要性 (n=無変換, c=変換)

%D

  削除予定フラグ

%d

  内容説明

%e

  MIME content-transfer-encoding (通信時の符号化方法)

%f

  ファイル名

%I

  disposition (I=inline, A=attachment)

%m

  メジャー MIME タイプ

%M

  MIME サブタイプ

%n

  添付ファイル番号

%s

  サイズ

%t

  タグフラグ

%T

  視覚的な枝分かれ文字

%u

  アンリンク (=送信後削除) フラグ

%>X

  以降の文字列を右寄せし、余白を "X" で詰める

%|X

  行の末尾まで、文字 "X" で詰める

### attach_sep

Type: string
Default: "\n"

複数のタグ付き添付ファイルを処理 (保存、印刷、パイプ等々) する際に、各添付ファイルの間に付ける区切り。

### attach_split

Type: boolean
Default: yes

この変数が設定されていないと、複数のタグ付き添付ファイルを処理 (保存、印刷、パイプ等々) するときに Mutt が添付ファイルを連結して 一つのファイルのように扱うことになる。その際 $attach_sep が各ファイルの後に追加される。なお、この変数が設定されているときには 添付ファイルを一つずつ別々に処理する。

### attribution

Type: string
Default: "On %d, %n wrote:"

これは、返信で引用されるメッセイジの前に付く文字列である。 定義されている printf() 風シークウェンスの完全な一覧は $index_format の節を見よ。

### autoedit

Type: boolean
Default: no

これと $edit_headers が設定されていると、Mutt は最初の送信メニューを飛ばして、 即座にメッセイジ本文を編集し始めさせてくれる。 送信メニューには、後でメッセイジ本文を編集し終えてから行くことができる。

$fast_reply も参照のこと。

### auto_tag

Type: boolean
Default: no

設定されているときに インデックス メニューから メッセイジに影響を与える関数を実行すると、その関数は タグ付けされたメッセイジすべて (もしあれば) に適用される。 (訳注：もしタグがなければ、カーソル位置のメッセイジに適用されるので注意。 「タグを使う」の説明を参照。) 設定されていないときは、まず tag-prefix 関数 (既定値: ";") を使って、次の関数をタグ付きメッセイジに適用するようにしなくてはならない。

### beep

Type: boolean
Default: yes

この変数が設定されているときにはエラー発生時に Mutt が音を鳴らす。

### beep_new

Type: boolean
Default: no

この変数が設定されているとき、Mutt は新着メイルを知らせるメッセイジを 表示するたびに音を鳴らす。これは $beep 変数の設定とは無関係である。

### bounce

Type: quadoption
Default: ask-yes

メッセイジ中継で確認のための質問をするかどうかを制御する。 yes に設定してあると、本当に中継するかどうかを質問されない。 この変数を no にすることは一般的に無益であり、推奨できない。 なぜならメッセイジを中継できなくなってしまうからだ。

### bounce_delivered

Type: boolean
Default: yes

この変数が設定されているときにはメッセイジ中継の際に Mutt が Delivered-To ヘッダを付けてくれる。 Postfix ユーザはこの変数を解除したいと思うだろう。

### braille_friendly

Type: boolean
Default: no

arrow_cursor 変数が解除されていても、この変数が設定されて いれば、カーソルがメニューの行頭に置かれるようになる。こうすると 目の不自由な人が点字ディスプレイを使ってメニューを理解するのが 容易になる。このオプションが既定で無効になっているのは、カーソル を消すことのできない画面端末が少なくないからだ。

### charset

Type: string
Default: ""

テキストデイタを端末で表示したり入力したりするのに使う文字セット。

### check_new

Type: boolean
Default: yes

注意: このオプションが有効なのは Maildir と MH 形式メイルボックスだけである。

yes のときは、開いている最中のメイルボックスに着信する 新着メイルを調べる。特に MH メイルボックスについて言えることだが、 この調査はかなり時間のかかることがある。というのも、ディレクトリ全体を 走査して、各ファイルを既に見たものかどうか確認する必要があるからだ。 もし check_new が no なら、 開いているメイルボックスには新着メイルの確認を行わない。

### collapse_unread

Type: boolean
Default: yes

no のときは、未読メッセイジが含まれるスレッドを折り畳まない。

### uncollapse_jump

Type: boolean
Default: no

yes のときは、カーソル下の折り畳まれていたスレッドが 広げられる際、未読メッセイジがあればそこにカーソルを移す。

### compose_format

Type: string
Default: "-- Mutt: Compose [Approx. msg size: %l Atts: %a]%>-"

コンポウズメニューで表示されるステイタス行の書式を制御する。 この文字列は $status_format とほぼ同じだが、独自の printf() 風シークウェンスを持っている。

%a

  添付ファイルの総数

%h

  ロウカルのホスト名

%l

  メッセイジのおおよそのサイズ (バイト単位)

%v

  Mutt ヴァージョン文字列

$compose_format の設定法に関してさらに情報を得るには、 $status_format オプションの説明文を見よ。

### config_charset

Type: string
Default: ""

定義されていると、設定ファイルのコマンドをこの符号化方式から (訳注： $charset へ) 復号する。

### confirmappend

Type: boolean
Default: yes

設定されていると、 Mutt がメッセイジを既存メイルボックスに追加するときに確認を促す。

### confirmcreate

Type: boolean
Default: yes

設定されていると、存在しないメイルボックスにメッセイジを保存する際、 メイルボックスを作成する前に確認を促す。

### connect_timeout

Type: number
Default: 30

この秒数でネットワーク接続 (IMAP と POP) が確立できなければ Mutt は時間切れとして諦める。 負の数だと、接続が成功するまで永遠に待ち続ける。

### content_type

Type: string
Default: "text/plain"

新規作成メッセイジ本文における既定の Content-Type を設定する。

### copy

Type: quadoption
Default: yes

この変数は、送信メッセイジのコピーを 後で参照するために保存しておくかどうかを制御する。 $record, $save_name, $force_name, fcc-hook も参照。

### crypt_use_gpgme

Type: boolean
Default: no

GPGME を使った暗号バックエンドの使用を制御する。 これが設定されていて、かつ Mutt が gpgme サポートありで構築されていると、 S/MIME と PGP に旧式コウドではなく gpgme コウドが用いられる。 注意が一つ。このオプションは .muttrc で使う必要があり、 実行中に使ってもまったく効果がない。

### crypt_autopgp

Type: boolean
Default: yes

この変数は、Mutt がメッセイジに自動で PGP 暗号化/署名を有効にしても 良いかどうかを制御する。 $crypt_autoencrypt, $crypt_replyencrypt, $crypt_autosign, $crypt_replysign, $smime_is_default も見よ。

### crypt_autosmime

Type: boolean
Default: yes

この変数は、自動的な S/MIME 暗号化/署名を有効にするかどうかを制御する。 $crypt_autoencrypt, $crypt_replyencrypt, $crypt_autosign, $crypt_replysign, $smime_is_default も見よ。

### date_format

Type: string
Default: "!%a, %b %d, %Y at %I:%M:%S%p %Z"

この変数は $index_format 中の "%d" シークウェンスによって表示される日付の書式を制御する。 これを strftime コールに渡して日付を処理する。 正しい文法については strftime(3) の man ペイジを参照されたい。

文字列の最初の一字がびっくりマーク ("!") でない限り、 月の名前や曜日の名前は変数 $locale で指定されているロカールに従って展開される。もし最初がびっくりマークなら、 そのマーク自体は捨てられ、残りの文字列にある月や曜日名が C ロカール (つまり合衆国英語 en_US) で展開される。

### default_hook

Type: string
Default: "~f %s !~P | (~P ~C %s)"

send-hook, message-hook, save-hook, fcc-hook に 合致パターンではなく単なる正規表現だけ指定されたときに どう解釈するかを制御する。 これらのフックは宣言された時点で展開されるため、 フックの解釈は宣言の時点でこの変数がとっていた値に従うことになる。 既定値が合致するのは、メッセイジの差出人が正規表現に合致するか、 または差出人が自分 (From のアドレスが "alternates" に合致する) で To か Cc の宛先が正規表現に合致する場合である。

### delete

Type: quadoption
Default: ask-yes

メイルボックスを閉じたり同期したりするときに メッセイジを本当に削除するかどうかを制御する。 yes に設定されていると、削除予定の印を付けたメッセイジは 自動的に、確認を求めることなく消去される。 no に設定されていると、削除予定のメッセイジが メイルボックスにそのまま残ることになる。 (訳注：quadoption すなわち四択オプションであるから、 ask-yes や ask-no にして毎回確認するようにもできる。)

### delete_untag

Type: boolean
Default: yes

このオプションが yes だと、Mutt はメッセイジへ削除の印を付ける際に そのメッセイジのタグを外す。これはメッセイジを明示的に削除するときにも 適用されるし、セイヴして別のフォルダへ移動するときにも適用される。 (訳注：セイヴされたメッセイジは移動先のフォルダに即座に現れるが、 元のフォルダから即座に消え去るわけではない。 通常の削除と同様、削除マークが付くだけなのである。)

### digest_collapse

Type: boolean
Default: yes

受信添付ファイルメニューでは、このオプションが yes なら、 multipart/digest の中の各メッセイジについて副パートを表示しない。 副パートを見るには "v" を押す必要がある。

### display_filter

Type: path
Default: ""

設定されているときには、この変数で指定されたコマンドを使ってメッセイジを フィルタする。メッセイジは閲覧時に標準入力として $display_filter に渡され、そのフィルタされたメッセイジが標準出力から読み出される。

### dotlock_program

Type: path
Default: "/usr/local/bin/mutt_dotlock"

Mutt が使用する mutt_dotlock (8) バイナリのパス。

### dsn_notify

Type: string
Default: ""

注意: Sendmail 8.8.x 以降を使っていないなら有効にすべきではない。

この変数には、どんなときに通知が返ってくるよう要求するかを設定する。 文字列の中身はコンマ区切り (スペイスを入れないこと!) のリストで、 この中から選べる: never は通知を一切要求しない、 failure は伝達失敗の通知を要求する、 delay はメッセイジの遅延を通知させる、 success は伝達成功を通知させるという意味である。

例: set dsn_notify="failure,delay"

### dsn_return

Type: string
Default: ""

注意: Sendmail 8.8.x 以降を使っているのでない限り、 この変数を有効にすべきではない。

この変数は、メッセイジがどれだけ DSN メッセイジで返ってくるかを制御する。 hdrs にしてメッセイジヘッダのみ返ってくるようにするか、 full でメッセイジ全体が返ってくるようにするかのいずれかである。

例: set dsn_return=hdrs

### duplicate_threads

Type: boolean
Default: yes

この変数で制御するのは、Mutt がスレッドで整列しているときに、 同一の message-id を持つメッセイジをスレッドにするかどうかである。 もし設定されていると、そうしたメッセイジを重複だと考えていることを示す等号を スレッド図に表示する。

### edit_headers

Type: boolean
Default: no

このオプションは、送信メッセイジのヘッダを 本文と一緒に編集できるようにしてくれる。

### editor

Type: path
Default: ""

Mutt が使うエディタを指定する。 指定しないと、VISUAL あるいは EDITOR 環境変数の値になる。 どれも設定されていなければ "vi" という文字列になる。

### encode_from

Type: boolean
Default: no

yes のときは、"From " という文字列を行頭に含む メッセイジを Mutt が quoted-printable に符号化する。 これは、一部の MDA や MTA がメッセイジに行なおうとする不法改変を 避けるのに役立つ。

### envelope_from

Type: boolean
Default: no

yes になっているとき、Mutt はメッセイジの エンヴェロウプ送信者を "From:" ヘッダに基づいて設定しようとする。 この情報が sendmail コマンドに "-f" スウィッチを使って渡される ということに注意せよ。このため、そのスウィッチを自分で $sendmail の中に使っている場合や、 マシンの sendmail がこのコマンドラインスウィッチを サポートしていない場合には、このオプションを設定してはならない。

### escape

Type: string
Default: "~"

内蔵エディタの各種機能を使うためのエスケイプ文字。

### fast_reply

Type: boolean
Default: no

設定されていると、メッセイジへ返信する際、最初に宛先と題名を入力するのを省く。 転送する際にも題名の入力を省く。

メモ: $autoedit が設定されているときには、この変数は意味がない。

### fcc_attach

Type: boolean
Default: yes

この変数は、送信メッセイジの添付ファイルを 本文と共に保存しておくかどうかを制御する。

### fcc_clear

Type: boolean
Default: no

この変数が設定されているときは、実際のメッセイジが暗号化されたり署名されたり していても、FCC は暗号化も署名もされずに保管される。(PGP のみ)

### folder

Type: path
Default: "~/Mail"

メイルボックスの既定位置を指定する。 先頭に "+" や "=" が付いているパスは、 その部分がこの変数の値に展開される。ただし注意点がある。 この変数を既定値から変更するなら、"+" や "=" を何かの変数に使う前にその変更が起こるようにしなくてはならない。 なぜなら展開が生じるのは (訳注：変数の使用時ではなく) "set" コマンドの実行中だからである。

### folder_format

Type: string
Default: "%2C %t %N %F %2l %-8.8u %-8.8g %8s %d %f"

この変数を使って、ファイルブラウザの表示を自分好みの味わいへと カスタマイズすることができる。文字列の内容は $index_format に似ているが、以下に示す独自の printf() 風シークウェンスがある。

%C

  ファイル番号

%d

  フォルダが最後に変更された日付/時刻

%f

  ファイル名

%F

  許可属性

%g

  グループ名 (なければ gid 番号)

%l

  ハードリンクの数

%N

  新着メイルがあれば N で、なければ空白

%s

  バイト数

%t

  タグ付けられていれば * で、それ以外は空白

%u

  所有者名 (なければ uid 番号)

%>X

  残りの文字列を右寄せして、間を "X" で詰める

%|X

  行末まで "X" で詰める

### followup_to

Type: boolean
Default: yes

メイル送信時に Mail-Followup-To ヘッダフィールドを 生成するかどうかを制御する。yes だと、 既知のメイリングリストに返信する際には Mutt がこのフィールドを生成する。 既知というのは subscribe コマンドか lists コマンドで 指定されているということである。

このフィールドには目的が二つある。第一に、メイリングリストに 送ったメッセイジに対して、同じ返信を重複して受け取るのを避けることだ。 そして第二に、購読していない既知のリストに送ったメッセイジへの返信を 個別に受け取れるようにすることである。ヘッダの中には、 購読しているリストに送るときはリストのアドレスだけが含まれ、 未購読のリストにはリストのアドレスと自分のメイルアドレスの両方が含まれる。 このヘッダを付けないで購読中のリストに送信すると、 そのメッセイジに対するグループ返信が リストにも自分個人のアドレスにも送られるため、 結果として同じメイルが二通送られてくることになるのだ。

### force_name

Type: boolean
Default: no

この変数は $save_name とほとんど同じだが、宛先アドレスのユーザ名と同じメイルボックスに 送信メッセイジのコピーを保管しようとする際、そのメイルボックスが 存在していなくても (訳注：新規作成して) そこに保管するという点だけが異なる。

$record 変数も参照せよ。

### forward_decode

Type: boolean
Default: yes

複雑な MIME メッセイジを転送時に text/plain へ復号化するかどうかを制御する。 (訳注：yes のときは) メッセイジヘッダも RFC2047 復号化される。 この変数が使われるのは $mime_forward が no のときだけであり、yes のときには $mime_forward_decode が使われる。

### forward_edit

Type: quadoption
Default: yes

この quadoption (四択オプション) は、メッセイジ転送時にユーザが 自動でエディタに行かされるかどうかを制御する。 常に無変更で転送したいという人は "no" に設定すれば良い。

### forward_format

Type: string
Default: "[%a: %s]"

この変数はメッセイジを転送するときの題名の既定値を制御する。 $index_format 変数と同じ書式シークウェンスを使う。

### forward_quote

Type: boolean
Default: no

yes のとき、メッセイジ本文中に取り込まれた転送メッセイジは ( $mime_forward が no のときには) $indent_string を使って引用される。

### from

Type: e-mail address
Default: ""

設定されていると、この変数の中身が既定の From アドレスになる。 これは my_hdr (send-hook からでも使える) や $reverse_name を使って上書きすることができる。 なお、この変数は $use_from が設定されていないと無視される。

設定されていないときは環境変数 EMAIL の内容が使われる。

### gecos_mask

Type: regular expression
Default: "^[^,]*"

Mutt がエイリアスを展開する際にパスワード項目の GECOS フィールド (訳注：getent passwd の出力で五番目のフィールド) を読み取るための正規表現。 既定値の正規表現は "^[^,]*" に設定されており、 これは最初に "," に当たるまでの部分の文字列を返すことになる。 もし GECOS フィールドに "姓, 名" のような文字列が含まれているなら gecos_mask=".*" と設定すべきである。

次のような動作に有効である。メイルを stevef というユーザ ID の人に 送るとする。その人の本名は Steve Franklin である。Mutt が stevef を "Franklin" stevef@foo.bar というように展開してしまう。 この場合は、gecos_mask を名前全体に合致するような正規表現に設定して、 Mutt が "Franklin" から "Franklin, Steve" へと視野を広げられるようにすべきなのだ。

### hdrs

Type: boolean
Default: yes

設定されていないときには、通常だと追加される my_hdr コマンドのヘッダフィールドが 作成されない。この変数の効果を発揮するには、必ずその 新規メッセイジの作成や返信の前に解除しなくてはならない。 設定されているときにはユーザ定義ヘッダフィールドが すべての新メッセイジに追加される。

### header

Type: boolean
Default: no

設定されているときには、返信元メッセイジのヘッダを Mutt が編集バッファに取り込むようになる。 $weed の設定が適用される。

### help

Type: boolean
Default: yes

設定されていると、各メニューに備わる主な機能のキー割り当て を説明するヘルプが画面の一行目に表示される。

メモ: 操作キーが正しく表示されないことがある。これは関数が 一つのキー押下だけでなく一連の操作に割り当てられている場合だ。 さらに、Mutt 実行中に割り当てが変更されてもヘルプ行は更新されないことがある。 ただ、この変数は基本的に新しいユーザのためにあるので、 どちらもさほど大きな問題とはならないはずだ。

### hidden_host

Type: boolean
Default: no

設定されているときには、Mutt がアドレスにドメイン部分を付ける際、 $hostname 変数のホスト名部分を抜く。 この変数は Message-ID の生成に影響しないし、 最上位ドメインまで切除してしまうようなことにもならない。

### hide_limited

Type: boolean
Default: no

設定されていると、スレッド分岐図の中で、 limit (表示制限) によって隠れているメッセイジのある場所を Mutt が指示しなくなる。

### hide_missing

Type: boolean
Default: yes

設定されていると、スレッド分岐図に欠けているメッセイジの存在を示さなくなる。

### hide_thread_subject

Type: boolean
Default: yes

設定されているとき、スレッド中で親または直近の兄と同じ題を持つ メッセイジは、題を表示しない。

### hide_top_limited

Type: boolean
Default: no

設定されていると、limit (表示制限) で隠れているメッセイジがあることを スレッド頂点で示さなくなる。 $hide_missing が設定されていると、このオプションがどうなっても効果がないので、 覚えておくように。

### hide_top_missing

Type: boolean
Default: yes

設定されているとき、スレッド頂点では メッセイジが欠けているという表示をしなくなる。 ただ、 $hide_limited が設定されているときにはこのオプションの効果がないということに注意せよ。

### history

Type: number
Default: 10

この変数は文字列履歴バッファのサイズ (記憶する文字列の数 [訳注：字数ではない]) を制御する。このバッファは、変数が設定されるたびに消去される。

### honor_followup_to

Type: quadoption
Default: yes

この変数は、メッセイジへグループ返信する際に Mail-Followup-To ヘッダを尊重するかどうかを制御する。

### hostname

Type: string
Default: ""

ロウカルメイルアドレスの "@" の後に付けるホスト名を指定する。 これはコンパイル時に /etc/resolv.conf から取得した定義を上書きする。

### ignore_list_reply_to

Type: boolean
Default: no

これはメイリングリストからのメッセイジに返信する際の reply 関数の動作に影響する。設定されているとき、"Reply-To:" フィールドが "To:" フィールドと同じ値に設定されていると、 Mutt は "Reply-To:" フィールドがメイリングリストによって (返事を自動でメイリングリストに送らせるため) 設定されたものとみなして、 そのフィールドを無視する。このオプションが設定されているときに返事を メイリングリストに向かわせるには list-reply を使う。また、 group-reply は差出人とリストの両方に返信する。

### imap_authenticators

Type: string
Default: ""

これはコロン区切りによる認証方式の一覧で、Mutt はこれらの方式を使って IMAP サーバにログインしようとする。並びは Mutt が試行する順になっている。 認証方式には、'login' か IMAP の能力文字列 'AUTH=xxx' の右辺を使う (例えば 'digest-md5', 'gssapi', 'cram-md5')。このパラメータは大文字と 小文字を区別しない。なおパラメータが未設定 (既定) のときには、 Mutt は利用できる方式をすべて、最も安全な方式から最も安全でない方式の 順番に試行する。

例: set imap_authenticators="gssapi:cram-md5:login"

注記: Mutt が他の認証方式へ移るのは方式が利用できない場合のみ である。方式が利用できるが認証に失敗したというときには IMAP サーバに 接続しないことになる。

### imap_check_subscribed

Type: boolean
Default: no

設定されていると Mutt は、サーバに接続する際に、そのサーバで 購読しているフォルダを調査して、そのフォルダの新着メイルを確認する ようにする。 mailboxes コマンドも参照。

### imap_delim_chars

Type: string
Default: "/."

この中には、IMAP パスを表示する際にフォルダの区切りとして扱いたい 文字の一覧が入る。特にこれが役立つのは folder 変数 の内容を示すために "=" ショートカットを使うときである。 (訳注：つまり "/.=" のように設定するということか?)

### imap_headers

Type: string
Default: ""

Mutt が既定のヘッダ ("DATE FROM SUBJECT TO CC MESSAGE-ID REFERENCES CONTENT-TYPE CONTENT-DESCRIPTION IN-REPLY-TO REPLY-TO LINES LIST-POST X-LABEL") に加えてさらに IMAP サーバへ要求するヘッダフィールド。 スパム検出のためのヘッダを追加したいときに使う。 注意: これはスペイス区切りのリストである。

### imap_home_namespace

Type: string
Default: ""

通常、IMAP ブラウザにおいては、自分の個人用フォルダが INBOX の すぐそばにあってほしいものだ。そのようになっていない場合、 この変数を自分のフォルダへの IMAP パスに設定することができる。

### imap_keepalive

Type: number
Default: 900

この変数には Mutt が IMAP 接続の継続を主張するまで待つ最大秒数を指定する。 その主張をすることにより、Mutt が接続を使い終える前にサーバが 接続を閉じてしまうのを防ぐのである。既定値は、RFC 指定により サーバ側が接続を閉じるまでに待たねばならない時間の最小値 (30 分) 内に しっかりおさまっているが、実際はそこかしこで RFC が破られている。 接続を使用していないとみなされて IMAP サーバから切断されるようであれば、 この数値を減らすこと。

### imap_list_subscribed

Type: boolean
Default: no

この変数は、IMAP フォルダ閲覧で調べるのを購読フォルダのみにするか、 それともフォルダすべてにするかを制御する。これは IMAP ブラウザ内で toggle-subscribed 関数を使って切り替えることもできる。

### imap_login

Type: string
Default: ""

IMAP サーバへのログイン名。

この変数が設定されていなければ imap_user の値が使われる。

### imap_pass

Type: string
Default: ""

IMAP アカウントのパスワードを指定する。未設定だと、 Mutt は fetch-mail 関数の実行時にパスワードを求めることになる。 警告: このオプションは十分に安全なマシン上でのみ 使うべきである。なぜなら、muttrc ファイルを自分以外が読めないように したつもりでも、スーパユーザは読めるからだ。

### imap_passive

Type: boolean
Default: yes

設定されているときには、新着メイル確認のために Mutt が新しく IMAP 接続を開くことはない。Mutt は新着メイルを既存の IMAP 接続でのみ確認することになる。これが有用となるのは、Mutt 起動時にユーザ名とパスワードの入力を促されたくない場合や、 接続を開くのに時間がかかる場合などである。

### imap_peek

Type: boolean
Default: yes

設定されていると Mutt は、サーバからメッセイジを取得 しただけでメイルが既読として印付けられてしまうことのないように する。これは一般的に良いことであるが、IMAP フォルダを閉じるのが 幾らか遅くなることがある。このオプションはスピード狂の人たちを なだめるためにのみ存在しているのだ。

### imap_servernoise

Type: boolean
Default: yes

設定されているときには、IMAP サーバからの警告メッセイジ を Mutt が表示するようになる。こうしたメッセイジはほとんど 無害なことに関するものであったり、サーバ側の設定ミスのために ユーザからはどうしようもないものであったりすることが多いので、 抑止したいと思うこともあるだろう。

### imap_user

Type: string
Default: ""

IMAP サーバ上で扱うメイルの所有ユーザ名。

この変数の既定値はロウカルマシン上のユーザ名になる。

### implicit_autoview

Type: boolean
Default: no

これが "yes" に設定されていると、copiousoutput フラグの付いた mailcap 項目がないかどうかを、どんな種類の 添付ファイルに対して調査する。内部ヴューワが (訳注： auto_view で) 定義されていなくてもだ。 そのように調査して項目が見つかったときには、 そこで定義されているヴューワを使って内容をテキスト形式へ変換する。

### include

Type: quadoption
Default: ask-yes

返信しようとしている元のメッセイジ内容を 返信に含めるかどうかを制御する。

### include_onlyfirst

Type: boolean
Default: no

返信の際にメッセイジの最初の添付ファイルのみ引用するか、 それともすべて引用するかを制御する。

### indent_string

Type: string
Default: "> "

指定した文字列を、相手のメッセイジから引用した文の 行頭に付ける。この値は、変更しないことが強く推奨されている。 変更すると、熱狂的なネット市民を激昂させてしまう傾向があるからだ。

### index_format

Type: string
Default: "%4C %Z %{%b %d} %-15.15L (%?l?%4l&%4c?) %s"

この変数によって、メッセイジインデックス画面を好み通りに 調整することができる。

"形式文字列" は "C" の printf 関数で 出力形式を指示するために使う文字列と似ている (詳細は man を参照)。 Mutt では以下のシークウェンスが定義されている。

%a

  差出人のアドレス

%A

  (もしあれば) reply-to アドレス (なければ差出人アドレス)

%b

  メッセイジフォルダのファイル名 (mailBox の b と考えよ) (訳注：最後に "/" が付いているディレクトリだと何も表示されない。 ((strrchr(path,'/'))+1) のポインタから strfcpy しているためである。)

%B

  宛てられたリスト、なければフォルダ名 (%b)

%c

  メッセイジのバイト数 (英文では文字 [characters] の数)

%C

  メッセイジ番号

%d

  日付と時刻を、送信者の現地時間に変換して "date_format" の形式にしたもの

%D

  日付と時刻を、自分の地域の時間に変換して "date_format" の形式にしたもの

%e

  スレッド内におけるメッセイジ番号

%E

  スレッド内のメッセイジ総数

%f

  From: 行の全体 (アドレスも本名も含む)

%F

  差出人の名前、自分からのメッセイジなら宛先の名前 (訳注：後者には To という文字列が前置される)

%H

  このメッセイジのスパム属性

%i

  Message-ID

%l

  行数 (Maildir と MH では使えないし、IMAP でもたぶん不可 [訳注：0 になる])

%L

  To または CC ヘッダフィールドが "subscribe" コマンドで定義された正規表現に合致すると "To <list-name>" (訳注："Cc <list-name>" の場合もある) と表示する。 合致しなければ %F と同じ

%m

  メイルボックス内のメッセイジ総数

%M

  スレッドが折り畳まれているときの非表示メッセイジの数

%N

  得点

%n

  差出人の本名 (なければアドレス)

%O

  (オリジナルセイヴフォルダの O) むかし Mutt が FCC として使っていたような場所: リストアドレスの名前部分、なければ宛先アドレスの名前部分 (訳注： $save_address が設定されていれば @ 以降も含み、そうでなければ @ の前までのみ)

%s

  題名

%S

  メッセイジの状態 (N/D/d/!/r/*)

%t

  To: フィールド (宛先)

%T

  $to_chars 文字列中の適切な文字

%u

  送信者のユーザ (ログイン) 名

%v

  送信者 (自分が送信者なら宛先人) のファーストネイム (訳注：日本人だと姓が先なので姓)

%y

  あれば X-Label: フィールド

%Y

  X-Label フィールドがあり、かつ (1) スレッドトゥリーの一部ではない、(2) スレッドの頂点である、 (3) 前のメッセイジの X-Label と違う X-Label である、の いずれかであれば X-Label フィールド

%Z

  3 桁の状態フラグ

%{fmt}

  日付と時刻が送信者の現地時間に変換され、 "fmt" がライブラリ関数 "strftime" により展開される。最初にびっくりマークが付いていると $locale が無視される。 (訳注：%{!%b-%d(%a)} のように使う)

%(fmt)

  メッセイジが到着した日付と時刻のロウカル時間表示。 "fmt" はライブラリ関数 "strftime" により展開され、最初にびっくりマークが付いていると $locale が無視される。

%<fmt>

  ロウカルの現在時刻。 "fmt" はライブラリ関数 "strftime" により展開され、最初にびっくりマークが付いていると $locale が無視される。

%>X

  残りの文字列を右寄せして、間を "X" 部分の文字で詰める (訳注：日本語文字は未対応)

%|X

  行末まで "X" 部分の文字で詰める

参照: $to_chars

### ispell

Type: path
Default: "/usr/bin/ispell"

どう ispell (GNU スペルチェッカ) を起動するか。

### keep_flagged

Type: boolean
Default: no

設定されていると、フラグ付き既読メッセイジはスプールメイルボックスから 自分の $mbox メイルボックス (または mbox-hook コマンドの結果) に移さない。

### locale

Type: string
Default: "C"

strftime(3) が日付などを整形するために使うロカール。 使うことのできる値は、システムがロカール変数 LC_TIME として受け付ける文字列である。

### mail_check

Type: number
Default: 5

この値は、どれほどの頻度で (何秒に一度) Mutt が新着メイルを 確認するかを制御する。

### mailcap_path

Type: string
Default: ""

この変数は、Mutt が直接サポートしていない MIME パートを 表示しようとする際に、どのファイルに問い合わせるかを指定する。

### mailcap_sanitize

Type: boolean
Default: yes

設定されていると、Mutt は mailcap の %展開に現れる文字を制限して、 ちょうどよく定義された安全な文字に直す。これは安全な設定ではあるが、 これにより高度な MIME 項目が動かなくなることがないとは断言できない。

DON'T CHANGE THIS SETTING UNLESS YOU ARE REALLY SURE WHAT YOU ARE DOING!
この設定は、完全に理解することなく変更してはならない!

### header_cache

Type: path
Default: ""

ヘッダキャッシュ・デイタベイスの場所を指示する。ディレクトリを 指していれば、そこにフォルダごとのヘッダキャッシュが置かれる。 ファイルを指していれば、そのファイルが全体のヘッダキャッシュ となる。既定では未設定であり、ヘッダキャッシュ機能は使われない。

### maildir_header_cache_verify

Type: boolean
Default: yes

Maildir 未対応のプログラムが Maildir 内のファイルを変更して いないかどうかを、ヘッダキャッシュ使用時に確認する。 (訳注: 未対応とは、ファイルを変更してもファイル名を変更しない プログラムのことを指す。) するとフォルダを開くたびに、メッセイジ一つにつき一度の stat(2) を引き起こす。

### header_cache_pagesize

Type: string
Default: "16384"

ヘッダキャッシュ・デイタベイスのペイジサイズを変更する。 大きすぎたり小さすぎたりすると、ディスク、メモリ、CPU を無駄遣い することがある。既定値がまあまあ最適な値のはずだ。詳細については google で mutt header cache として検索すること。(最初に出るものを 見れば良い)

### maildir_trash

Type: boolean
Default: no

設定されていると、削除予定に印付けられたメッセイジがその後、 削除されるのではなく Maildir の T フラグ (trashed) を付けて保存される。 注意: これは Maildir 形式のメイルボックスにのみ適用される。 他のメイルボックス形式にはまったく効果がない。

### mark_old

Type: boolean
Default: yes

新着で未読のメッセイジを読まないまま メイルボックスを出たときに、Mutt がそれに古いという印を 付けるかどうか制御する。このオプションが設定されていると、次回 Mutt を始めたときに、インデックスメニューでメッセイジの隣りに "O" と表示される。それが古い (old) ということを示すのである。

### markers

Type: boolean
Default: yes

内部ペイジャで折り返された行の表示を制御する。設定されていると、 "+" 印が行頭に付いて、折り返し行を表す。 $smart_wrap 変数も見よ。

### mask

Type: regular expression
Default: "!^\.[^.]"

ファイルブラウザで使われる正規表現。 先頭に NOT 演算子 "!" を付けることができる。 ファイル名がこの条件に合致するもののみ表示されることになる。 合致条件は常に大文字と小文字を区別する。

### mbox

Type: path
Default: "~/mbox"

これに指定したフォルダへ、 $spoolfile フォルダの既読メイルを追加する。

### mbox_type

Type: folder magic
Default: mbox

新しいフォルダを作るときに使う既定のメイルボックス形式。 mbox, MMDF, MH, Maildir のいずれでも良い。

### metoo

Type: boolean
Default: no

設定されていないと、メッセイジへの返信時に宛先リストから自分のアドレス ( alternates コマンドを参照) を除去する。

### menu_context

Type: number
Default: 0

この変数は、メニューをスクロウルする際に残される行数を制御する。 ( $pager_context のようなもの。)

### menu_move_off

Type: boolean
Default: yes

解除されていると、メニュー最後の項目が画面の最下部より 上に表示されることがない。ただし画面の行数より項目の数が少ない 場合を除く。また設定されていると、最後の項目も上まで 動くことができる。

### menu_scroll

Type: boolean
Default: no

これが yes に設定されているときには、画面の端を 越えようとしたときにメニューが一行ずつスクロウルする。 no なら、画面全体が消去されて次のペイジまたは前のペイジが 表示される (こちらの方が、何度も再描画するのを避けられるので 遅い回線に有用である)。

### meta_key

Type: boolean
Default: no

設定されていると、高位ビット (8 ビット目) との組み合わせを持つ キー押下を、ユーザが ESC キーを押してから別のキーを押したものと 判断するよう Mutt に強制する。ESC の後に押したキーは、高位ビットを 取り除いた後に残る部分である。例えば、押されたキーが 0xf4 という ASCII 値を持っていると、これはユーザが ESC と "x" を 押したものとして扱われる。なぜなら "0xf4" から 高位ビットを除いた結果は "0x74" であり、これは ASCII 文字の "x" だからである。

### mh_purge

Type: boolean
Default: no

設定されていないときには、Mutt が mh の挙動を偽装する。 削除メッセイジを実際には削除せず、そのファイル名を 「,<旧ファイル名>」に変更するのである。 もし変数が設定されていれば、メッセイジファイルは単に消されてしまう。

### mh_seq_flagged

Type: string
Default: "flagged"

フラグ付きメッセイジに使う MH シークウェンス名。

### mh_seq_replied

Type: string
Default: "replied"

返信済みメッセイジに使う MH シークウェンス名。

### mh_seq_unseen

Type: string
Default: "unseen"

未見メッセイジに使う MH シークウェンス名。

### mime_forward

Type: quadoption
Default: no

設定されているときには、転送するメッセイジが個別の MIME パートとして 添付される。メッセイジ本文に含めるのではないということだ。これは MIME メッセイジの転送に便利である。こうすれば相手も、自分に届けられたのと 同じように正しくメッセイジを閲覧することができるのだ。 もしもメイルごとに MIME と非 MIME を選択したいのであれば、 この変数を ask-no か ask-yes に設定すること。

$forward_decode および $mime_forward_decode も参照。

### mime_forward_decode

Type: boolean
Default: no

$mime_forward が yes のときには、入り組んだ MIME メッセイジを転送時に text/plain へ復号するかどうかをこの変数が制御する。 no のときには $forward_decode が使われる。

### mime_forward_rest

Type: quadoption
Default: yes

MIME メッセイジの添付ファイルメニューからファイルを複数 (訳注：非 MIME で) 転送するとき、 適切な復号方法のないファイルが転送メッセイジに添付されるのは、 このオプションが設定された場合のみである。 (訳注：yes の場合と、ask-yes または ask-no で y と答えた場合のこと。なお、 このオプションは $mime_forward が解除されているときにのみ意味を持つ。非 MIME 転送をしようとしているときに、 MIME でしか転送できないファイルをあきらめる (no) か MIME で転送する (yes) かの設定なのだ。転送ファイルが一つだけのときには、あきらめるはずがないと みなされる。)

### mix_entry_format

Type: string
Default: "%4n %c %-16s %a"

この変数で Mixmaster チェイン選択画面におけるリメイラ行の書式を記述する。 以下に挙げる printf風シークウェンスが使える。

%n

  メニュー内での番号

%c

  リメイラの能力

%s

  リメイラの省略名

%a

  リメイラのメイルアドレス

### mixmaster

Type: path
Default: "mixmaster"

この変数には自分のシステムの Mixmaster バイナリへのパスを入れる。 これに種々のパラメータを付けて、既知のリメイラ一覧を収集する。 また、最終的にメッセイジを Mixmaster チェイン経由で送信する際にも使う。

### move

Type: quadoption
Default: ask-no

スプールメイルボックスの既読メッセイジを $mbox メイルボックスや mbox-hook コマンドの結果へ 移動するかどうかを制御する。

### message_format

Type: string
Default: "%s"

「添付ファイル」メニューで message/rfc822 タイプのファイルの部分に 表示される文字列。定義されている printf()風シークウェンスの 完全な一覧表については $index_format の項を参照のこと。

### narrow_tree

Type: boolean
Default: no

この変数が設定されていると、スレッドトゥリーを狭くして、 深いスレッドが画面に収まるようにする。

### pager

Type: path
Default: "builtin"

この変数にはメッセイジ閲覧に使いたいペイジャを指定する。 builtin は内蔵ペイジャを使うという意味になるが、 それ以外は外部ペイジャのパス名を指定すべきである。

外部ペイジャを使うことには不便な点もある: まず、キーを多く押さなくては ならない。ペイジャから直接 Mutt の関数を呼び出すことはできないからだ。 さらに、画面の大きさを変更すると、ヘルプメニューで画面の幅より長い行が ひどいことになってしまう。

### pager_context

Type: number
Default: 0

この変数は、内部ペイジャで次のペイジや前のペイジを表示させる際に 文脈として残す行数を制御する。Mutt は既定では、現時点の画面で 一番下にある行の次からを次ペイジとして表示する (文脈は 0 行ということ)。

### pager_format

Type: string
Default: "-%Z- %C/%m: %-20.20n %s"

この変数は一行メッセイジである「ステイタス」の形式を制御する。 これは内部ペイジャでも外部ペイジャでも各メッセイジの前に表示される (訳注：ただし、外部ペイジャの場合には表示内容の前に付加されるが、 内部ペイジャの場合にはインデックスモウドにおけるステイタス行と 同じ位置に常に表示される)。 正しいシークウェンスは $index_format の項で 一覧にされている。

### pager_index_lines

Type: number
Default: 0

ペイジャにいるときに表示する小インデックスの行数を決定する。 ペイジャで表示中のメッセイジは、フォルダの上端や下端に近い場合を除き、 この小インデックス画面の中で上からおよそ三分の一の位置になる。 これによって、メッセイジを読むときに前後いくつかのメッセイジが 文脈として与えられる。これが便利なのは、例えば、そのスレッドに あといくつ未読メッセイジが残っているのかを見極めるという場合である。 行数のうち一行はインデックスのステイタス行に使われるので、 pager_index_lines が 6 であっても、 実際のインデックスは 5 行しか表示されないことになる。 0 という値にするとインデックスが表示されない。 フォルダ内のメッセイジ数が pager_index_lines よりも少ないとき、小インデックスは必要な行数だけを使うようにする。

### pager_stop

Type: boolean
Default: no

設定されているときには、メッセイジの終わりまで来て next-page 関数を実行しても、内部ペイジャが次のメッセイジへ移動しない。

### crypt_autosign

Type: boolean
Default: no

この変数を設定すると Mutt が送信メッセイジを常に暗号学的に署名しようとする。 署名が不要なときや暗号化も要るときには、pgp-menu を使って 上書きすることができる。 $smime_is_default が設定されているのであれば、OpenSSL を使って S/MIME メッセイジを作成する。 この場合は smime-menu を使って設定を上書きすることができる。 (Crypto only)

### crypt_autoencrypt

Type: boolean
Default: no

この変数を設定すると、Mutt が、常に PGP 暗号化して メッセイジを送信しようとするようになる。 これはたぶん、send-hook コマンドとの組み合わせでのみ有用だろう。 暗号化が不要だったり署名も必要だったりするときには、pgp-menu を使って上書きすることができる。 $smime_is_default が設定されていると OpenSSL が使われて S/MIME メッセイジが作成される。 その際、設定の上書きは smime-menu を使うことにより可能である。 (Crypto only)

### pgp_ignore_subkeys

Type: boolean
Default: yes

この変数を設定すると Mutt が OpenPGP 副鍵を無視するようになる。 主鍵が (訳注：画面上でのみ) 副鍵の能力を継承するのだ。 鍵選択遊びを楽しみたいのであれば、この変数を解除すること。 (訳注：通常、主鍵は署名に使い、副鍵は暗号化に使う。 主鍵の有効期間を長くして副鍵の期間を短くすることで安全性を向上させるよう 推奨されている。通常、ひとつの主鍵に対して有効な副鍵はひとつだけなので、 この変数を設定しても不便なことはないはずだ。) (PGP only)

### crypt_replyencrypt

Type: boolean
Default: yes

設定されていると、暗号化されたメッセイジへの返信には 自動的に PGP か OpenSSL で暗号化する。 (Crypto only)

### crypt_replysign

Type: boolean
Default: no

設定されていると、署名されたメッセイジへの返信には 自動的に PGP か OpenSSL で署名する。

注意: 署名され、かつ暗号化もされているメッセイジには、 この変数が作用しない! (Crypto only)

### crypt_replysignencrypted

Type: boolean
Default: no

設定されていると、暗号化されたメッセイジへの返信には 自動的に PGP か OpenSSL で署名する。この変数は $crypt_replyencrypt との組み合わせにおいて意味を持つ。その組み合わせによって、 自動的に暗号化されるメッセイジに署名することができるからだ。 この変数は $crypt_replysign で注記されている問題の回避策となる。その問題とは、 暗号化されているメッセイジに署名もされているかどうかを調べることが Mutt にはできない、というものである。 (訳注：それで、replysign を設定するなら、ふつうは replysignencrypted も設定したいと思うだろう。 ただし、暗号化かつ署名付きメッセイジに暗号化と署名を施しながら、 署名なし暗号化メッセイジへの返信に暗号化のみ実行するためには フックを使わなければならないであろう。 ~g および ~G を参照のこと。) (Crypto only)

### crypt_timestamp

Type: boolean
Default: yes

設定されていると、Mutt は PGP および S/MIME の出力を囲む行に 時刻表示を含める。これにより出力行の偽造がさらに困難になる。 もし、そうした行に色を使って印付けており、 その色を信頼するのであれば、この設定を解除しても構わない。 (訳注： $allow_ansi 参照) (Crypto only)

### pgp_use_gpg_agent

Type: boolean
Default: no

設定されていると、Mutt は、 既に起動してあるであろう gpg-agent プロセスを使おうとする。 (訳注：gpg-agent とはパスフレイズを記憶してくれるエイジェントで、 newpg および gnupg-1.9 以上に含まれている。 ssh-agent のように、環境変数で通信経路を指定する。 Mutt は、GPG_TTY および GPG_AGENT_INFO 環境変数が設定されていれば gpg-agent が起動しているものとみなし、パスフレイズを尋ねない。 それら環境変数が設定されていなければ通常どおりパスフレイズを尋ねる。 gpg-agent を利用するのであれば、 ~/.gnupg/gpg.conf に use-agent と書いておくか、 $pgp_*_command 群に --use-agent オプションを 含めておくべきだろう。) (PGP only)

### crypt_verify_sig

Type: quadoption
Default: yes

"yes" なら、常に PGP および S/MIME 署名を検証しようとする。 "ask" (訳注：実際には ask-yes か ask-no) なら、署名を 検証するかどうか尋ねる。 "no" なら、暗号学的署名を一切検証しようとしない。 (Crypto only)

### smime_is_default

Type: boolean
Default: no

自動での署名/暗号化に関する既定の動作は、すべて PGP を使うというものだ。 それを上書きして OpenSSL を使うには、この変数を設定しなくてはならない。 ただし、この変数は返信には効果がない。というのも、Mutt はもともとの メッセイジの署名/暗号化に使われているのと同じ方式を 自動的に選択するからである。 (この変数は $crypt_autosmime を解除することによって上書きされうるので注意。) (S/MIME only)

### smime_ask_cert_label

Type: boolean
Default: yes

このフラグは、デイタベイスに追加しようとする証明書のラベル名を 入力するよう求めるかどうかを制御する。既定では設定されている。 (S/MIME only)

### smime_decrypt_use_default_key

Type: boolean
Default: yes

設定されている (既定) なら、Mutt は復号化に既定鍵を使う。 設定されていないとき、証明書と鍵のペアが複数管理されていれば、 Mutt はメイルアドレス を使って鍵を決定する。それでも見付からなければ鍵を入力するよう求める。 (S/MIME only)

### pgp_entry_format

Type: string
Default: "%4n %t%f %4l/0x%k %-4a %2c %u"

この変数を使って PGP 鍵選択メニューを自分好みに調整することができる。 この文字列は $index_format に似ているが、独自の printf()風シークウェンスがある。 (訳注：%K, %A, %L, %F, %C も使える。 副鍵にも主鍵の情報を表示する点が異なるが、それ以外は小文字と同じ意味だ。)

%n

  番号 (number)

%k

  鍵 ID (key id)

%u

  ユーザ ID (user id)

%a

  アルゴリズム (algorithm)

%l

  鍵の長さ (length)

%f

  フラグ (flags) (訳注：期限切れや破棄など)

%c

  能力 (capabilities) (訳注：署名と暗号化)

%t

  信用度 (trust) / 鍵とユーザ ID の組み合わせの有効性 (訳注：本来、すべての鍵所有者に対して自分で決定した trust から各鍵の validity すなわち有効性を計算するのであり、「信用度」と「有効性」は違うものである。しかし GnuPG では validity という語を使わず、所有者への信用度は owner-trust, 鍵の有効性は calculated trust と呼ぶようだ。ここで表示されるのは後者である。)

%[<s>]

  鍵の日付 (<s> は strftime(3) 表記)

(PGP only)

### pgp_good_sign

Type: regular expression
Default: ""

この変数に文章 (訳注：正しくは正規表現) を割り当てると、その文章が $pgp_verify_command の出力に含まれているときにのみ PGP 署名が検証できたとみなされる。 不正な署名にもコマンドの返り値が 0 になってしまうなら、この変数を使うこと。 (PGP only)

### pgp_check_exit

Type: boolean
Default: yes

設定されていると、Mutt が署名や暗号化の際に PGP サブプロセスの返り値を 確認するようになる。非ゼロの返り値はサブプロセスの失敗を意味する。 (PGP only)

### pgp_long_ids

Type: boolean
Default: no

設定されていると 64 ビットの PGP 鍵 ID を使う。 解除時はふつうの 32 ビット鍵 ID を使う。 (PGP only)

### pgp_retainable_sigs

Type: boolean
Default: no

設定されていると、署名と暗号化をしてあるメッセイジの仲間として、 multipart/encrypted パートの中に multipart/signed パートが入っていたりする メッセイジも含める。

これは暗号化された署名メイリングリストのようなアプリケイションに便利だ。 すなわち、外層 (multipart/encrypted) が簡単に取り除けるが、 内側の multipart/signed パートは守られているというものである。 (PGP only)

### pgp_autoinline

Type: boolean
Default: no

このオプションは、旧式のインライン (伝統的) PGP 暗号および署名を 生成するかどうかを制御する。ただし特定の状況下でのみ有効だ。 さらに、インラインが必要ないときには pgp-menu を使って上書きすることができる。

Mutt は複数の MIME パートを含むメッセイジには自動的に PGP/MIME を使用する、ということを覚えておくように。また、インライン (伝統的形式) がうまくいかなかったときに PGP/MIME で送信するかどうかを尋ねるように 設定することができる。 参照: $pgp_mime_auto

なお、旧式 PGP メッセイジ形式は強く否定されている という点にも注意すべきである。 (PGP only)

### pgp_replyinline

Type: boolean
Default: no

この変数を設定すると、インライン (伝統的形式) で暗号化/署名されたメッセイジへ 返信する際は、常にインラインのメッセイジを作成しようとするようになる。 しかしインラインが必要ないときには pgp-menu で上書きすることができる。 このオプションは、元のメッセイジがインラインかどうかを自動で 検知するわけではない。事前に確認しフラグが立てられたメッセイジに関する Mutt 内部デイタを信用するだけである。

複数の MIME パートを含むメッセイジには自動で PGP/MIME を使用するので注意せよ。 また、インライン (伝統的形式) がうまくいかなかったときに PGP/MIME にするかどうかを送信前に尋ねるよう設定することができる。 参照: $pgp_mime_auto

なお、旧式 PGP メッセイジ形式は避けるよう強く 勧められているという点にも注意すべきである。 (PGP only)

### pgp_show_unusable

Type: boolean
Default: yes

設定されていると、使用不可能な鍵を PGP 鍵選択メニューに表示する。 これには、破棄された鍵、期限切れの鍵、またユーザによって「使用不可」 とされた鍵が含まれる。 (PGP only)

### pgp_sign_as

Type: string
Default: ""

複数の鍵ペアがあるとき、どの秘密鍵を使うかを このオプションで指定することができる。 指定には鍵 ID 形式を使うよう推奨されている (例 "0x00112233")。 (PGP only)

### pgp_strict_enc

Type: boolean
Default: yes

設定されていると PGP/MIME 署名メッセイジを自動的に quoted-printable で符号化する。 この変数を解除すると PGP 署名が検証できなくなるかもしれないので注意せよ。 この変数の意味をよく理解している場合にのみ変更するように。 (訳注：日本語環境においては QP を理解しない PGP プラグインを利用する MUA もあるため、この変数を設定していると、相手がメッセイジを読むことすら できないかもしれない。訳者はこの問題で悩んだことがあるので、 解除しておくことを勧める。) (PGP only)

### pgp_timeout

Type: number
Default: 300

キャッシュされたパスフレイズが使用されない場合に期限切れになるまでの秒数。 (PGP only)

### pgp_sort_keys

Type: sort order
Default: address

PGP 鍵メニューの項目をどう整列するか指定する。 以下が有効な値である。

address

  ユーザ ID でアルファベット順に整列

keyid

  鍵 ID でアルファベット順に整列

date

  鍵の作成日付で整列

trust

  鍵の信用度で整列

逆順にしたければ、上記の値の頭に "reverse-" を付加する。 (PGP only)

### pgp_mime_auto

Type: quadoption
Default: ask-yes

インライン (伝統的形式) の署名/暗号化に (いかなる理由にせよ) 失敗したときに 自動的に PGP/MIME で送信するか尋ねるかを、このオプションで制御する。

旧式 PGP メッセイジ形式の使用はまったく推奨されないことに注意。 (PGP only)

### pgp_auto_decode

Type: boolean
Default: no

設定しておくと、Mutt が自動的に伝統的な PGP メッセイジを復号化しようとする。 その復号化は、メッセイジ内容を出力するような操作の際に起こる。例えば 手動で check-traditional-pgp 関数によるチェックをしていない伝統的 PGP メッセイジは、表示するときに Mutt が自動でチェックしてくれるようになる。

### pgp_decode_command

Type: string
Default: ""

この形式化文字列で、application/pgp 添付ファイルを復号化するためのコマンドを指定する。

PGP コマンドの形式には独自の printf風シークウェンスがある。

%p

  パスフレイズが必要なときには PGPPASSFD=0 と展開され、必要ないときには空文字列になる。 メモ: これは %? 構造にも使うことができる。

%f

  メッセイジの入っているファイルの名前に展開される。

%s

  multipart/signed の検証時に、署名パートの入っているファイル名に展開される。

%a

  $pgp_sign_as の値。

%r

  鍵 ID (複数になることもある)

世の中に出廻っている各種ヴァージョンの PGP に合わせて設定する方法の例は、 pgp*.rc および gpg.rc というファイルが、文書と同じあたりの samples/ サブディレクトリ内にインストールされているので、参照すること。 (PGP only)

### pgp_getkeys_command

Type: string
Default: ""

Mutt が公開鍵情報を必要とするたびに起動するコマンド。 %r が、唯一ここで使われる printf風シークウェンスである。 (PGP only)

### pgp_verify_command

Type: string
Default: ""

このコマンドが PGP 署名の検証に使われる。 (PGP only)

### pgp_decrypt_command

Type: string
Default: ""

このコマンドが PGP 暗号化メッセイジの復号に使われる。 (PGP only)

### pgp_clearsign_command

Type: string
Default: ""

旧式の「クリア署名」による PGP メッセイジを作成するために使われる。 ただし、この形式を使うことはまったく推奨されない。 (PGP only)

### pgp_sign_command

Type: string
Default: ""

このコマンドを使って分離式の PGP 署名を作り、multipart/signed の PGP/MIME パートに使う。 (PGP only)

### pgp_encrypt_sign_command

Type: string
Default: ""

このコマンドを使って、本文に署名と暗号化を両方おこなう。 (PGP only)

### pgp_encrypt_only_command

Type: string
Default: ""

このコマンドを使って本文を暗号化する。署名はしない。 (PGP only)

### pgp_import_command

Type: string
Default: ""

このコマンドを使って、鍵をメッセイジから公開鍵束へ取り込む。 (PGP only)

### pgp_export_command

Type: string
Default: ""

このコマンドを使って、ユーザの鍵束から公開鍵を取り出す。 (PGP only)

### pgp_verify_key_command

Type: string
Default: ""

鍵選択メニューで鍵の情報を検証するために、このコマンドを用いる。 (PGP only)

### pgp_list_secring_command

Type: string
Default: ""

このコマンドで秘密鍵束の内容を一覧出力する。 出力形式は gpg --list-keys --with-colons と同様でなくてはならない。 (訳注：詳細は gnupg の文書ファイル DETAILS に書かれている。)

この形式は、Mutt に付属する pgpring ユーティリティでも生成される。 (PGP only)

### pgp_list_pubring_command

Type: string
Default: ""

このコマンドで公開鍵束の内容を一覧にする。 出力形式は gpg --list-keys --with-colons と同様でなくてはならない。

この形式は、Mutt 付属の pgpring ユーティリティでも生成される。 (PGP only)

### forward_decrypt

Type: boolean
Default: yes

転送時における暗号化メッセイジの扱いを制御する。 設定されていると、暗号化という外層が除去される。 この変数は、 $mime_forward が設定され、 $mime_forward_decode が解除されているときにのみ用いられる。 (PGP only)

### smime_timeout

Type: number
Default: 300

キャッシュされたパスフレイズが使用されない場合に期限切れになるまでの秒数。 (S/MIME only)

### smime_encrypt_with

Type: string
Default: ""

暗号化に用いるアルゴリズムを設定する。 有効な選択肢は "des", "des3", "rc2-40", "rc2-64", "rc2-128" である。 設定されていないと "des3" (トリプルDES) が用いられる。 (S/MIME only)

### smime_keys

Type: path
Default: ""

OpenSSL には PGP における鍵束のようなものがないため、Mutt は 鍵や証明書の格納および取得を自分で扱わなければならない。 この仕組みは現在のところ非常に簡易的なもので、鍵と証明書を二つの異なる ディレクトリに格納し、ともに OpenSSL で取得したハッシュ値を ファイル名にしている。各ディレクトリには index ファイルがあって、 メイルアドレスと鍵 ID の組み合わせが入っており、自分の手で 編集することができる。この変数は、秘密鍵の場所を指し示すものである。 (S/MIME only)

### smime_ca_location

Type: path
Default: ""

OpenSSL に使うための、信用できる証明書が入ったディレクトリかファイルの 名前を入れる。 (S/MIME only)

### smime_certificates

Type: path
Default: ""

OpenSSL には PGP における鍵束のようなものがないため、Mutt は 鍵や証明書の格納および取得を自分で扱わなければならない。 この仕組みは現在のところ非常に簡易的なもので、鍵と証明書を二つの異なる ディレクトリに格納し、ともに OpenSSL で取得したハッシュ値を ファイル名にしている。各ディレクトリには index ファイルがあって、 メイルアドレスと鍵 ID の組み合わせが入っており、自分の手で 編集することができる。この変数は、証明書の場所を指し示すものである。 (S/MIME only)

### smime_decrypt_command

Type: string
Default: ""

この形式化文字列で指定したコマンドを使って application/x-pkcs7-mime ファイルを復号化する。

OpenSSL コマンドの指定形式には、PGP に似た独自の printf風シークウェンスがある。

%f

  メッセイジの入っているファイルの名前に展開される。

%s

  multipart/signed の検証時に、署名パートの入っているファイル名に展開される。

%k

  $smime_default_key で指定された鍵ペア。

%c

  証明書 ID (複数になることもある)

%a

  暗号化に用いるアルゴリズム。

%C

  CA 位置: $smime_ca_location がディレクトリを指すかファイルを指すかにより、"-CApath $smime_ca_location" か "-CAfile $smime_ca_location" に展開される。

この形式の設定方法の例については、smime.rc というファイルを参照せよ。 文書のそばの samples/ サブディレクトリにインストールされている。 (S/MIME only)

### smime_verify_command

Type: string
Default: ""

このコマンドを使って multipart/signed タイプの S/MIME 署名を検証する。 (S/MIME only)

### smime_verify_opaque_command

Type: string
Default: ""

このコマンドを使って application/x-pkcs7-mime タイプの S/MIME 署名を検証する。 (S/MIME only)

### smime_sign_command

Type: string
Default: ""

このコマンドは multipart/signed タイプの S/MIME 署名を作成するために用いられる。 このタイプはあらゆるメイルクライアントから読める。 (S/MIME only)

### smime_sign_opaque_command

Type: string
Default: ""

このコマンドは application/x-pkcs7-signature タイプの S/MIME 署名を作成するために用いられる。 このタイプは S/MIME 拡張に対応したメイルクライアントからのみ扱える。 (S/MIME only)

### smime_encrypt_command

Type: string
Default: ""

このコマンドは暗号化 S/MIME メッセイジを作成するために用いられる。 (S/MIME only)

### smime_pk7out_command

Type: string
Default: ""

このコマンドを用いて S/MIME 署名の PKCS7 構造を抽出する。 その目的は、そこからさらに X509 公開証明書を抽出することにある。 (S/MIME only)

### smime_get_cert_command

Type: string
Default: ""

PKCS7 構造から X509 証明書を抽出するために用いるコマンド。 (S/MIME only)

### smime_get_signer_cert_command

Type: string
Default: ""

このコマンドで署名者の X509 証明書だけを S/MIME 署名から抽出する。 そうして証明書の所有者とメイルの From フィールドを比較できるようにするのだ。 (S/MIME only)

### smime_import_cert_command

Type: string
Default: ""

証明書を smime_keys で取り込むために使うコマンド。 (S/MIME only)

### smime_get_cert_email_command

Type: string
Default: ""

このコマンドを使って、 用途の検証 (証明書がその送信者のアドレス用に発行されたのかどうかの確認のため) と X509 証明書の格納のために用いられるメイルアドレスを抽出する。 (S/MIME only)

### smime_default_key

Type: string
Default: ""

署名に使う既定の鍵ペア。鍵 ID (OpenSSL が生成するハッシュ値) に設定されていないと正常に動作しない。 (S/MIME only)

### ssl_client_cert

Type: path
Default: ""

クライアント証明書とその秘密鍵を含んだファイル。

### ssl_force_tls

Type: boolean
Default: no

この変数が設定されていると、すべてのリモートサーバへの接続が 暗号化されていなくてはならないことになる。さらに、サーバが能力を 公言しない場合でも TLS 接続を試みる。というのは、そのようなサーバ への接続はいずれにせよ中止しなくてはならないからだ。これは $ssl_starttls オプションより優先される。

### ssl_starttls

Type: quadoption
Default: yes

設定されている (既定) とき、STARTTLS 能力を公言するサーバでは Mutt が STARTTLS を使おうとする。解除されていると、サーバの能力に 関わらず STARTTLS を使おうとしない。

### certificate_file

Type: path
Default: "~/.mutt_certificates"

この変数で指定したファイルに、信用する証明書を保存する。 未知の証明書に遭遇すると、受け入れるかどうか尋ねられる。 受け入れると証明書がこのファイルに保存され、以後の接続では 自動的に受け入れられる。

自分の手で CA 証明書をこのファイルに追加することもできる。 すると、その CA に署名されたサーバ証明書もすべて自動的に受け入れられる。

例: set certificate_file=~/.mutt/certificates

### ssl_usesystemcerts

Type: boolean
Default: yes

yes に設定されていると、 信用できる CA からサーバ証明書が署名されているかどうかを確認する際に、 システム全体用の証明書格納所にあるCA 証明書を使う。

### entropy_file

Type: path
Default: ""

SSL ライブラリ関数の初期化に用いる乱数デイタの入ったファイル。

### ssl_use_sslv2

Type: boolean
Default: yes

SSL 認証処理に SSLv2 を使おうとするかどうか指定する。

### ssl_use_sslv3

Type: boolean
Default: yes

SSL 認証処理に SSLv3 を使おうとするかどうか指定する。

### ssl_use_tlsv1

Type: boolean
Default: yes

SSL 認証処理に TLSv1 を使おうとするかどうか指定する。

### ssl_min_dh_prime_bits

Type: number
Default: 0

Diffie-Hellman 鍵交換に使う素数の最小条件をビット数で指定する。 0 を指定すると GNUTLS ライブラリの既定値を使用する。

### ssl_ca_certificates_file

Type: path
Default: ""

信用する CA 証明書を入れたファイルの場所を指定する。 この中にある CA 証明書で署名されたサーバ証明書は自動的に 受け入れられることになる。

例: set ssl_ca_certificates_file=/etc/ssl/certs/ca-certificates.crt

### pipe_split

Type: boolean
Default: no

pipe-message コマンドおよび "tag-prefix" 演算子との 関連で用いられる。この変数が解除されていると、複数のタグ付けされた メッセイジをパイプする際に Mutt はすべて連結させて単一ファイル としてパイプする。設定されていると、Mutt はメッセイジごとに一つずつパイプする。 どちらの場合も、その時点での整列方法の順にメッセイジがパイプされ、 $pipe_sep が各メッセイジの 後に付加される。

### pipe_decode

Type: boolean
Default: no

pipe-message コマンドと関連して使われる。 解除されていると Mutt は何も前処理をせずにメッセイジをパイプする。 設定されていると、まずヘッダを間引きしたり PGP/MIME 復号化したりしようとする。

### pipe_sep

Type: string
Default: "\n"

タグ付けされた複数のメッセイジを外部 Unix コマンドへパイプする際、 メッセイジとメッセイジの間を区切るために付加される文字列。

### pop_authenticators

Type: string
Default: ""

コロン区切りで列挙された認証方法。POP サーバにログインするために、 その順で試行する。認証方法は "user", "apop" およびいずれかの SASL 機構、例えば "digest-md5" や "gssapi", "cram-md5" である。 このパラメータは大文字と小文字を区別しない。 もし設定されていなければ (既定)、Mutt はあらゆる利用可能な方法を、 最も安全なものから始めて、最も安全でないものまで試行する。

例: set pop_authenticators="digest-md5:apop:user"

### pop_auth_try_all

Type: boolean
Default: yes

設定されていると、Mutt は利用可能な方法をすべて試行する。 解除されていると、前の方法が利用できなかったときにのみ他の認証方法に移る。 認証方法は利用できるけれども認証が失敗したという場合には、 POP サーバへの接続をやめるのだ。

### pop_checkinterval

Type: number
Default: 60

この変数は、何秒ごとに POP で新着メイルを探すかを調整する。

### pop_delete

Type: quadoption
Default: ask-no

設定されていると、fetch-mail 関数を使って POP サーバから ダウンロードすることに成功したメッセイジを削除する。 解除されていると、メッセイジはダウンロードするものの、 POP サーバにも残しておく。

### pop_host

Type: string
Default: ""

fetch-mail 関数の POP サーバ名。 次のように、代替ポート、ユーザ名、パスワードも指定することができる。

[pop[s]://][ユーザ名[:パスワード]@]サーバ[:ポート]

### pop_last

Type: boolean
Default: no

この変数が設定されていると、fetch-mail 関数の使用時に POP コマンド "LAST" を使って POP サーバから未読メッセイジのみを 取得しようとする。

### pop_reconnect

Type: quadoption
Default: ask-yes

POP サーバとの接続が切れたときに再接続を試みるかどうかを制御する。

### pop_user

Type: string
Default: ""

POP サーバへのログイン名。

既定ではロウカルマシンでのユーザ名になる。

### pop_pass

Type: string
Default: ""

POP アカウントのパスワードを指定する。設定されていないと、 POP メイルボックスを開くときにパスワードの入力を求める。 警告: このオプションは、確実に安全なマシンでのみ使うべきである。 自分しか読めないファイルであっても、スーパユーザは読むことができるからだ。

### post_indent_string

Type: string
Default: ""

$attribution 変数と似ており、 Mutt はこの文字列を、返信するメッセイジの引用のあとに追加する。

### postpone

Type: quadoption
Default: ask-yes

メッセイジをその場で送らないことにした際に $postponed メイルボックスへ 保存するかどうかを制御する。

### postponed

Type: path
Default: "~/postponed"

編集中のメッセイジは、いつまででも送信を 延期 (postpone) しておくことができる。 延期することにした際、Mutt はこの変数で指定されたメイルボックスに保存する。 これに関しては $postpone も参照のこと。

### preconnect

Type: string
Default: ""

設定されていると、サーバとの接続を確立できなかったときに このシェルコマンドが実行される。これは ssh(1) などで安全な接続経路を 作るために使える。もしコマンドが非ゼロの結果を返すなら、Mutt は そこでサーバを開くことをあきらめる。例:

preconnect="ssh -f -q -L 1234:example.net:143 example.net sleep 20 < /dev/null > /dev/null"

example.net のメイルボックス 'foo' は、これで '{localhost:1234}foo' として扱うことができる。

注意: この例がうまくいくためには、このリモウトマシンに パスワードなしでログインできなくてはならない。

### print

Type: quadoption
Default: ask-no

本当にメッセイジを印刷するかどうかを制御する。既定では ask-no に設定されているが、これは よく間違って "p" を押してしまう (私のような) 人がいるからだ。

### print_command

Type: path
Default: "lpr"

これに指定したコマンドへパイプしてメッセイジを印刷する。

### print_decode

Type: boolean
Default: yes

print-message コマンドと関連して用いられる。このオプションが設定されていると メッセイジを復号化してから外部コマンド $print_command に渡す。解除されていると、何の処理もせずにメッセイジを印刷する。 後者は、メイルメッセイジを印刷にふさわしく整形することのできる 高度なプリンタフィルタを使っている場合に有用であろう。

### print_split

Type: boolean
Default: no

print-message コマンドとの関連で用いる。設定されていると、 $print_command で指定されたコマンドが、印刷メッセイジごとに毎回実行される。 解除されていると、 $print_command は一度だけ実行され、メッセイジがすべて連結される。 その際、フォームフィード (訳注：0x0c や \f として知られるもの) がメッセイジの区切りとして使われる。

enscript(1) プログラムのメイル印刷モウドを使っている人は このオプションを設定したいと思うはずだ。

### prompt_after

Type: boolean
Default: yes

外部 ペイジャを使っている場合、 この変数を設定しておくと、ペイジャ終了時にインデックスメニューへ戻らず、 コマンド入力を求めるようになる。 解除されていると、すぐインデックスメニューに戻る。

### query_command

Type: path
Default: ""

この変数で指定したコマンドを使ってアドレスの外部問い合わせをおこなう。 この文字列には %s を含むべきで、その部分がユーザの入力する 問い合わせ文字列に置換される。より詳細な情報は アドレスの外部問い合わせを参照。

### quit

Type: quadoption
Default: yes

この変数は、"quit" と "exit" が実際に Mutt を終了させるかどうかを制御する。終了させようとしたとき、 yes に設定されていると終了させ、no に設定されていると無効で、 ask-yes か ask-no に設定されていると確認を求められる。

### quote_regexp

Type: regular expression
Default: "^([ \t]*[|>:}#])+"

内部ペイジャで、メッセイジ本文の引用部分を見極めるために使う正規表現。

注意: 内部ペイジャで quotedx のような 着色パターンを使うためには、引用行の冒頭の引用文字に正確に 合致する正規表現を設定する必要がある。 (訳注：すなわち、引用記号全体に合致し、かつ、引用記号のみに合致する 表現でなくてはならない。 "> > >" のような多層になった引用であっても、 この正規表現ひとつで合致する必要があるのだ。)

### read_inc

Type: number
Default: 10

0 より大きな値に設定されていると、メイルボックス読み出し中に Mutt が現在どのメッセイジまで来たのかを表示するようになる。 その表示は read_inc 通のメッセイジが読み出されるたびに おこなわれる (例えば 25 だと、25 番目のメッセイジを読んだときに表示し、 さらにまた 50 番目のときにも表示する)。この変数の意味は、時間のかかる 大きなメイルボックスを読み出す際に、進行状況を示すということだ。 0 に設定されているときは、メイルボックスの読み出し前に一度 メッセイジが表示されるだけになる。

$write_inc 変数も参照のこと。

### read_only

Type: boolean
Default: no

設定されていると、フォルダがすべて読み出し専用モウドで開かれる。

### realname

Type: string
Default: ""

メッセイジ送信時に使う「本名」すなわち「個人名」を指定する。

既定では /etc/passwd の GECOS フィールドになる。 なお、ユーザが $from に本名を設定していると、 この変数が使われないので注意。

### recall

Type: quadoption
Default: ask-yes

新規メッセイジを作成する際に、延期メッセイジから続けるかどうかを制御する。 $postponed も参照。

この変数を "yes" に設定することが一般的に有用であるとは 言えないので、そのような設定は推奨されていない。 (訳注："yes" だと、ひとつでも延期されているメッセイジがあると、 いつまでも新規メッセイジが作成できなくなる。返信はできる。)

### record

Type: path
Default: ""

送信メッセイジをどのファイルに追加して保存すべきかを指定する。 (これはメッセイジのコピーを保存する基本的な方法であるが、 ほかにも、 my_hdr コマンドで 自分のメイルアドレスの Bcc: フィールドを作成するという方法もある。)

$record の値は、 $force_name および $save_name 変数、 また fcc-hook コマンドにより上書きされる。 (訳注：さらに、この変数は Fcc ヘッダの既定値に過ぎないので、 Fcc を変更すれば上書きされる。Fcc と $record の両方に保存されるわけではないので注意。)

### reply_regexp

Type: regular expression
Default: "^(re([\[0-9\]+])*|aw):[ \t]*"

返信メッセイジを認識するための正規表現。 スレッドを作ったり返信したりするときに使う。 既定値は英語の "Re:" とドイツ語の "Aw:" に対応している。(訳注：ただし、Re[3]: や Re3: には合致するが Aw[3]: や Aw3: には合致しない。)

### reply_self

Type: boolean
Default: no

自分の送ったメッセイジに返信するとき、これが解除されていれば、 自分に返信したいのではなく、そのメッセイジの宛先に返信したいのだとみなされる。

### reply_to

Type: quadoption
Default: ask-yes

設定されている (訳注：または yes と答える) と、返信しようとする際に メッセイジの Reply-To: ヘッダフィールドで挙げられているアドレスを 返信先として用いる。 解除されている (訳注：または no と答える) と、From: ヘッダフィールドの アドレスを代わりに用いる。このオプションは、Reply-To: ヘッダフィールドを リストのアドレスに設定してくるメイリングリストを読んでいて、 メッセイジの送信者へ個人的にメッセイジを送りたい場合に便利である。

### resolve

Type: boolean
Default: yes

設定されているときには、メッセイジを変更するコマンドが実行されると カーソルが自動で進み、(あれば) 次の未削除メッセイジへ動く。

### reverse_alias

Type: boolean
Default: no

この変数は、メッセイジの送信者に合致するエイリアスがあるときに、 エイリアスの「個人名」部分をインデックスメニューで表示するかどうかを制御する。 例として、次のエイリアスがあるとする。

> `

>     alias juser abd30425@somewhere.net (Joe User)

> `

そして、このようなヘッダを含むメイルを受け取ったとする。

> `

>     From: abd30425@somewhere.net

> `

すると、(訳注：$reverse_alias が yes のときには) インデックスメニューに "abd30425@somewhere.net" ではなく "Joe User" と表示されるであろう。 これは、その人物のメイルアドレスが人間向きでない (CompuServe のアドレスのような) ときに便利である。

### reverse_name

Type: boolean
Default: no

メイルをあるマシンで受信し、別のマシンへ移して、そこから返信する ということが時々あるかもしれない。この変数が設定されていると、 返信したいメッセイジを受け取ったアドレスが alternates に 合致しているときには、そのアドレスを使って既定の From: 行が作成される。この変数が設定されていなかったり、アドレスが alternates に合致しなかったりした場合には、 From: 行には返信時のマシンのアドレスが使われる。

### reverse_realname

Type: boolean
Default: yes

この変数は reverse_name 機能の 動作を微調整する。これが設定されていると、Mutt は受信メッセイジのアドレスを そのまま丸ごと使う。あれば本名部分まで含めて使うのだ。もし解除されていると、 そうした本名部分は realname 変数の設定で 上書きするようになる。

### rfc2047_parameters

Type: boolean
Default: no

この変数が設定されていると、RFC-2047 で符号化された MIME パラメータを復号化する。Mutt が添付ファイルを =?iso-8859-1?Q?file=5F=E4=5F991116=2Ezip?= のようなファイル名で保存するよう提案してくるときには、 この変数を設定したいと思うであろう。

この変数を実行中に設定したときには、フォルダを変更するまで 望み通りの効果はあらわれない。

注意すべき点がある。このような RFC 2047 符号化方式の使い方は、 その規格によって明示的に禁止されていること、 しかしながら実際にはよく見かけるということだ。 加えて、このパラメータを設定しても Mutt がこのような符号化ファイル名を 生成するという効果はないという点にも注意せよ。 そうではなく、Mutt は常に RFC 2231 で指示されている符号化方式を用いる。

### save_address

Type: boolean
Default: no

設定されていると、メイルを保存する既定フォルダに送信者のアドレス全体を使う。 $save_name や $force_name が設定されていると、 Fcc フォルダの選択も変わる。(訳注：$save_name が yes なら、 アドレスと同じフォルダ名が Fcc に使われるようになる。$force_name が yes なら、そのようなフォルダが存在しなくても作成して Fcc するようになる。)

### save_empty

Type: boolean
Default: yes

解除されていると、メッセイジの保存されていないメイルボックスが、 閉じるときに削除される (例外は $spoolfile である。これはどんな場合にも削除されない)。 設定されていると、どのメイルボックスも削除されない。

注意: これが適用されるのは mbox と MMDF のフォルダのみであり、 Mutt が MH や Maildir のディレクトリを削除することはない。

### save_name

Type: boolean
Default: no

この変数は、どのように送信メッセイジのコピーを保存するかを制御する。 設定されているときには、宛先アドレスで指定されるメイルボックスが あるかどうかを確認する (これは $folder ディレクトリ内で、アドレスのユーザ名部分に該当するメイルボックスを 検索することによる)。そのメイルボックスが存在していれば、送信メッセイジは そこに保存される。存在しなければ $record メイルボックスに保存される。

$force_name 変数も参照。

### score

Type: boolean
Default: yes

この変数が no のときには得点付けが停止される。 これを使えばフォルダによって得点付けを無効にすることができるので、 $score_threshold_delete やその仲間たちを使っているときに便利かもしれない。

### score_threshold_delete

Type: number
Default: -1

得点がこの値以下のメッセイジは、自動的に削除予定の印が付けられる。 Mutt のスコアは常にゼロ以上なので、既定の設定では いかなるメッセイジも削除予定にされることはない。

### score_threshold_flag

Type: number
Default: 9999

割り当てられた得点がこの変数の値以上になるメッセイジには自動的に 「重要」フラグが付けられる。

### score_threshold_read

Type: number
Default: -1

メッセイジに、この変数と同じかそれより小さい得点が付いたとき、Mutt が既読として印付ける。Mutt では得点が常にゼロかゼロ以上なので、 既定の設定でメッセイジを既読にしてしまうことはありえない。

### send_charset

Type: string
Default: "us-ascii:iso-8859-1:utf-8"

送信メッセイジの文字セットを列挙する。 Mutt は、その文字セットへ正しく文章を変換できた最初のものを使う。 (訳注： $charset から $send_charset へ変換する。) もし $charset が iso-8859-1 でなく、しかも宛先の人が UTF-8 を理解できないのであれば、 適切な、広く用いられている標準的な文字セット (iso-8859-2, koi8-r, iso-2022-jp など) を "iso-8859-1" の代わり、 あるいはその後に含めることが推奨されている。 (訳注：MS の似非 iso-2022-jp を送信しなくてはならないとしても、 content type には iso-2022-jp と書かねばならないので、 この変数には iso-2022-jp と指定すべきである。 その場合には iconv-hook で調整する。)

### sendmail

Type: path
Default: "/usr/sbin/sendmail -oem -oi"

Mutt で送信するメイルの配送に用いられるプログラムと引数を指定する。 Mutt は、続く引数をこのプログラムが宛先アドレスとして解釈するものと 想定している。

### sendmail_wait

Type: number
Default: 0

$sendmail プロセスが終わるのを あきらめて配送をバックグラウンドへ追いやるまで待つ秒数。

Mutt はこの変数の値を以下のように解釈する。

>0

  sendmail の終了を待つ秒数

0

  sendmail の終了をいつまでも待ち続ける

<0

  常に sendmail をバックグラウンドで実行し、待たない

注意すべき点がある。もしも 0 以外の値を指定すると、sendmail 子プロセスの出力が一時ファイルへ置かれることになるのだ。 何かエラーがあった場合には、その出力がどこにあるかを知らされることになる。

### shell

Type: path
Default: ""

内部でサブシェルを実行する際に使うコマンド。既定では、/etc/passwd を見て ユーザのログインシェルを用いる。

### sig_dashes

Type: boolean
Default: yes

設定されていると、"-- " という行が 署名 ($signature) の前に挿入される。 署名が名前だけでない限りこの変数を解除しないことを、強く推奨する。 その理由は、多くのソフトウェアが "-- \n" を使って 署名を検出するからである。例えば Mutt は内蔵ペイジャで署名を別の色に 目立たせる能力を持っている。

### sig_on_top

Type: boolean
Default: no

設定されていると署名が引用文や転送文の前に付けられる。 この変数を設定することの意味をよく理解し、 ネチケットの番人たちの憤りを買う準備ができているのでない限り、 この変数は設定しないよう強く推奨されている。

### signature

Type: path
Default: "~/.signature"

署名のファイル名を指定する。この署名はあらゆる送信メッセイジに付加される。 ファイル名がパイプ ("|") で終わっていると、ファイル名が シェルコマンドとみなされ、その標準出力から読み出される。

### simple_search

Type: string
Default: "~f %s | ~s %s"

単純検索を実際の検索パターンへ展開する方法を指定する。 単純検索とは ~ 演算子を含まない検索のことだ。 検索パターンに関してさらに情報を得るには 「パターン」の節を参照せよ。

例えば、検索や表示制限の入力時にただ joe とだけ入力すると、 Mutt は自動でこの変数の値へ展開し、既定値ではこうなる。

~f joe | ~s joe

### smart_wrap

Type: boolean
Default: yes

内部ペイジャで画面幅より長い行を表示する方法を制御する。 設定されていると、長い行は語の区切りで折り返される (訳注：英語では スペイスで語が区切られるので実装可能なのである)。 解除されていると、単純に画面の端で折り返される。 $markers 変数も参照のこと。

### smileys

Type: regular expression
Default: "(>From )|(:[-^]?[][)(><}{|/DP])"

ペイジャがこの変数を使って、 $quote_regexp の よくある誤検出を補正する。おもに、行頭に顔文字 (smileys) がある場合である。

### sleep_time

Type: number
Default: 1

フォルダからフォルダへ移動する際にメッセイジを元のフォルダから消去した あと、通知メッセイジを表示するための停止時間。秒数で指定する。 既定では一秒間だけ止まって表示する。それで、このオプションをゼロにすると 停止しなくなる。(訳注：すぐに再描画されるので読むことができなくなる。)

### sort

Type: sort order
Default: date

インデックスメニューでメッセイジを整列する方法を指定する。 正しい値は以下の通り。

> `

>        date すなわち date-sent
>        date-received
>        from
>        mailbox-order (整列なし)
>        score
>        size
>        spam
>        subject
>        threads
>        to

> `

これに加えて、reverse- を頭に付けることで逆順に整列させることができる (例: set sort=reverse-date-sent)。

### sort_alias

Type: sort order
Default: alias

エイリアスメニューの項目を整列する方法を指定する。 以下が適正な値である。

> `

>        address (メイルアドレスでアルファベット順に整列)
>        alias (エイリアス名でアルファベット順に整列)
>        unsorted (.muttrc で指定された順番のまま)

> `

### sort_aux

Type: sort order
Default: date

スレッドで整列しているとき、スレッドどうしをどのように比較・整列するかを、 この変数で制御する。 また、スレッド内の分岐した枝どうしを整列する方法も制御する。 この変数には、 $sort で使える値をどれでも 使うことができるが、threads は無効である (この場合、Mutt は単に date-sent を使う)。また、reverse- に加えて last- 接頭辞も指定することができる。 ただし、last- は reverse- の後に来なくてはならない。 この last- 接頭辞は、兄弟どうしのメッセイジをそれぞれの一番下の子孫で 比較させるもので、その「一番下」を決定するために sort_aux の 残りの部分を使う。例えば set sort_aux=last-date-received の意味は、あるスレッドに新着メッセイジが届くと、そのスレッドが 最後に表示されるということである (set sort=reverse-threads してあれば 最初になる)。注意: $sort が逆順指定だと、 $sort_aux も また逆順になってしまう (これは正しい動作ではないが、既存の設定を だめにしてしまわないよう、放置されている)。 (訳注：sort=reverse-threads で sort_aux=date だと、 スレッド内の各メッセイジが reverse-date のような順番に整列される ということ。)

### sort_browser

Type: sort order
Default: alpha

ファイルブラウザで項目をどのように整列するかを指定する。 既定ではアルファベット順に整列される。正しい値は次のとおり。

> `

>        alpha (アルファベット順)
>        date
>        size
>        unsorted

> `

これに reverse- 接頭辞を付けて逆順に整列させることもできる (例: set sort_browser=reverse-date)。

### sort_re

Type: boolean
Default: yes

この変数が有効なのは、スレッドで整列していて $strict_threads が解除されているときだけである。 そのような場合には Mutt の使う発見的手法が変わり、メッセイジを 題名でスレッドにするようになる。sort_re が設定されていると、 あるメッセイジを題名で別のメッセイジの子どもと判断してスレッドに入れるのは、 その題名が $reply_regexp の設定と合致する文字列で始まっているものだけである。 sort_re が解除されていると、それ以外のものも、 $reply_regexp でない部分が 同じである限りスレッドに入れてしまう。

### spam_separator

Type: string
Default: ","

`$spam_separator` は複数のスパムヘッダが spam コマンドに合致した際の挙動を制御する。 解除されていると、あとから合致したヘッダが 以前の合致によるスパムラベルの値を上書きしてゆく。 設定されていると (訳注：空の "" も含めて)、 あとから合致したものが以前の値に追記されてゆく。 その際の区切り文字として `$spam_separator` が使われる。

### spoolfile

Type: path
Default: ""

スプールメイルボックスが既定と違う場所にあって Mutt が見付けられないなら、 その場所をこの変数で指定することができる。設定されていないと、Mutt は自動的に環境変数 $MAIL の値にする。

### status_chars

Type: string
Default: "-*%A"

$status_format の "%r" で使われる文字を制御する。 メイルボックスに変更がないときは最初の文字が用いられる。 二番目はメイルボックスが変更されて同期が必要なときに使われる。 三番目の文字が使われるのは、メイルボックスが読み出し専用モウドの場合、 すなわち、そのメイルボックスを抜ける際に書き込まれない場合である (変更を書き込むかどうかは toggle-write 関数で切替できる。 これは既定では "%" に割り当てられている)。 四番目はフォルダがメッセイジ添付モウドで開かれていることを示すために 用いられる (このモウドでは、新規メッセイジ作成や返信、転送などの 動作が禁止されている)。

### status_format

Type: string
Default: "-%r-Mutt: %f [Msgs:%?M?%M/?%m%?n? New:%n?%?o? Old:%o?%?d? Del:%d?%?F? Flag:%F?%?t? Tag:%t?%?p? Post:%p?%?b? Inc:%b?%?l? %l?]---(%s/%S)-%>-(%P)---"

インデックスメニューで表示されるステイタス行の書式を制御する。 この文字列は $index_format と似ているが、独自の printf()風シークウェンスを持っている。

%b

  新着メイルのある メイルボックスの数 *

%d

  削除メッセイジの数 *

%f

  メイルボックスのフルパス名

%F

  フラグ付きメッセイジの数 *

%h

  ロウカルのホスト名

%l

  メイルボックスのバイト数 *

%L

  表示されるメッセイジのバイト数 (すなわち、表示制限で隠されていないものの合計サイズ) *

%m

  メイルボックス内のメッセイジ数 *

%M

  表示されるメッセイジの数 (すなわち、表示制限で隠されていないものの数) *

%n

  メイルボックス内の新着メッセイジ数 *

%o

  古い未読メッセイジの数 *

%p

  延期メッセイジの数 *

%P

  現在位置の、インデックス中におけるパーセンテイジ

%r

  変更/書込/メッセイジ添付 を $status_chars に基づいて示す

%s

  整列のモウド ( $sort)

%S

  補助整列モウド ( $sort_aux)

%t

  タグ付きメッセイジの数 *

%u

  未読メッセイジの数 *

%v

  Mutt ヴァージョン文字列

%V

  表示制限パターン (有効なものがあれば) *

%>X

  残りの文字列を右寄せして間を "X" で詰める

%|X

  行の最後まで "X" で詰める

* = 非ゼロのときのみ表示するようにできる

上記シークウェンスの中には、値が非ゼロのときのみ選択的に 文字列を表示するという使い方のできるものがある。例えば、 フラグ付きメッセイジの数は、そのようなメッセイジが存在するときにのみ 見たいと思うだろう。ゼロには特に意味があるわけではないのだから。 そのように上記シークウェンスに基づいて選択的に文字列を表示するには、 次のような構造が使われる。

%?<シークウェンス文字>?<選択的文字列>?

ここで、シークウェンス文字の部分には上記の表にある文字が入る。 選択的文字列の部分は、そのシークウェンス文字が 非ゼロのときに表示したい文字列である。選択的文字列には 他のシークウェンスも普通の文章も含めることができるが、 選択的文字列を再帰的に使用することはできない。

メイルボックス中にある新着メッセイジの数を選択的に 表示する方法を説明する例を次に挙げる: %?n?%n new messages.?

加えて、二つの文字列を選択することもできる。第一の文字列は値がゼロのとき、 第二の文字列は値が非ゼロのときである。これには次の構造を用いる: %?<シークウェンス文字>?<ゼロ文字列>&<非ゼロ文字列>?

さらに、どの printf風シークウェンスに対しても、結果を強制的に 小文字にすることができる。これはシークウェンス文字の前にアンダスコア (_) 記号を付ければ良い。例えば、ロウカルのホスト名を 小文字で表示したいなら %_h とする。

シークウェンス文字の前にコロン (:) 文字を付けると、Mutt は展開結果中のドット (.) をアンダスコアに置換する。 これは、フォルダ名にドットを使えない IMAP フォルダで役立つかもしれない。 (訳注：$status_format というよりは、 save-hook などで使うことを想定しているのであろう。)

### status_on_top

Type: boolean
Default: no

この変数を設定すると「ステイタスバー」が画面の下のほうではなく 一番上の行に表示されるようになる。

### strict_threads

Type: boolean
Default: no

設定されていると、スレッドで 整列する際の スレッド構築に "In-Reply-To" と "References" フィールドだけを用いる。既定では、同じ題のメッセイジが「擬似スレッド」 として一括りにされる。これが常に望ましいとは言えない。例えば 私的なメイルのメイルボックスで、「こんにちは」というような題の 無関係なメッセイジがすべて一括りにされてしまうような場合もある。

### suspend

Type: boolean
Default: yes

no のときは、ユーザが端末の susp キーを押しても Mutt が停止しない。そのキーは通常 "control-Z" である。 これが便利なのは Mutt を xterm -e mutt のようなコマンドで xterm 内に実行している場合である。(訳注：このような場合に C-z を押してしまったら、別の端末から killall -CONT mutt などとして CONT シグナルを送る必要がある。)

### text_flowed

Type: boolean
Default: no

設定されていると Mutt は text/plain; format=flowed 添付ファイルを生成する。 この形式は通常の形式よりも一部のメイリングソフトウェアから扱いやすいが、 一般的には通常の文書と同じように見える。ただし、実際にこの形式の特徴を 活用するには、エディタの対応が必要になる。

このオプションが設定されていると $indent_string が無視されるので注意すること。

### thread_received

Type: boolean
Default: no

設定されていると、メッセイジを題名でスレッドにする際に 送信日付ではなく受信日付を使用する。

### thorough_search

Type: boolean
Default: no

~b と ~h の検索に影響する。 これらの意味は 「パターン」の節に記述されている。 この変数が設定されていると、検索するメッセイジのヘッダや添付ファイルが 復号化されてから検索される。解除されているとフォルダにあるままで検索される。 (訳注：日本語の場合は、この変数を設定しないと使いものにならない。)

### tilde

Type: boolean
Default: no

設定されていると、内部ペイジャは画面の下端まで空行をティルド (~) で詰める。

### timeout

Type: number
Default: 600

Mutt は、キーが押されるのをこの変数の秒数だけメインメニュー (訳注：インデックスメニュー) で待ち続け、それを過ぎると、キーを 押さなくても新着メイルを確認する。ゼロか負の値の場合には いつまでも確認せずに待ち続ける。

### tmpdir

Type: path
Default: ""

この変数で、メッセイジの表示や作成に必要な一時ファイルを Mutt が置く場所を指定することができる。設定されていないときには 環境変数 TMPDIR が用いられる。TMPDIR も設定されていないなら "/tmp" が用いられる。

### to_chars

Type: string
Default: " +TCFL"

自分に来たメイルを示すために使われる文字を制御する。 一番目の文字は、メイルが自分のアドレスに宛てられて「いない」 ときに使われる (既定: スペイス)。 二番目は自分がそのメッセイジ唯一の宛先である場合に用いられる (既定: +)。 三番目は、自分のアドレスが TO ヘッダフィールドにあるものの、 自分以外にも宛てられているというメッセイジに使われる (既定: T)。 四番目の文字が使われるのは、自分のアドレスが CC ヘッダフィールドに 指定されていて他の人にも宛てられている場合である (既定: C)。 五番目の文字はメイルの送信者が自分であるという場合に用いられる (既定: F)。 六番目の文字は、メイルが購読メイリングリストに送られていることを 示すために使われる (既定: L)。

### tunnel

Type: string
Default: ""

この変数を設定すると Mutt がソケットではなくコマンドへのパイプを開く。 これを使って、IMAP/POP3 サーバへの認証済み接続を作ることができる。 例:

tunnel="ssh -q mailhost.net /usr/local/libexec/imapd"

注意: この例がうまくいくには、リモウトマシンにパスワードの入力なしで ログインすることができなくてはならない。 (訳注：ssh-agent などを使う。)

### use_8bitmime

Type: boolean
Default: no

警告: 自分の使っているヴァージョンの sendmail が -B8BITMIME フラグに対応している (sendmail 8.8.x など) のでない限り、 この変数を設定してはいけない。さもないとメイルを送れなくなってしまう。

yes に設定されているとき、8ビットのメッセイジ送信時に Mutt は $sendmail を -B8BITMIME フラグ付きで起動して ESMTP 通信を有効にする。

### use_domain

Type: boolean
Default: yes

設定されていると Mutt はすべてのロウカルアドレス (@host 部分のないもの) を $hostname の値で補完する。 解除すると、どのアドレスもそのままにする。

### use_from

Type: boolean
Default: yes

yes のときはメッセイジ送信時に "From:" ヘッダフィールドを Mutt が生成する。no だと、 ユーザが明示的に my_hdr コマンドで 設定しないと生成されない。

### use_idn

Type: boolean
Default: yes

設定されていると、Mutt が国際化ドメイン名 (IDN) を復号して表示する。 注意: 解除されていても IDN アドレスを使うことはできる。 この変数は復号にしか影響しない。

### use_ipv6

Type: boolean
Default: yes

設定されているとき、Mutt は接続しようとするホストの IPv6 アドレスを調べる。このオプションが解除されていると、 IPv4 アドレスだけに絞って動作する。通常は既定値で問題なく動くはずだ。

### user_agent

Type: boolean
Default: yes

設定されていると、Mutt は "User-Agent" ヘッダを 送信メッセイジに付加する。これはどのヴァージョンの Mutt を使って 作成されたのかを示すものである。

### visual

Type: path
Default: ""

内蔵エディタの ~v コマンドで起動する ヴィジュアルエディタを指定する。

### wait_key

Type: boolean
Default: yes

Mutt が shell-escape, pipe-message, pipe-entry, print-message, print-entry コマンドのあとに キー押下を求めるかどうかを制御する。

また、 auto_view で添付ファイルを 閲覧する際にも、対応する mailcap 項目に needsterminal フラグがあって外部プログラムが対話的に動作する場合は、この変数が用いられる。

設定されていると、常にキー入力を求める。解除されていると、 外部コマンドが非ゼロを返した場合にのみキーを待つ。

### weed

Type: boolean
Default: yes

設定されていると、メッセイジの表示、転送、印刷、返信の際にヘッダを間引きする。

### wrap_search

Type: boolean
Default: yes

検索がメイルボックスの最後まで行っても続けるかどうかを制御する。

設定されているときには最初 (または最後) のメッセイジに飛んで検索を続ける。 解除されているときにはそこで終わる。

### wrapmargin

Type: number
Default: 0

Mutt のペイジャが語単位で行を折り返す際に 端末の右側に残す余白の大きさを制御する。

### write_inc

Type: number
Default: 10

メイルボックスを書き込む際、write_inc 通ごとに 進行状況を示すメッセイジが表示される。 0 に設定されると、書き込み前に一度表示されるだけになる。

$read_inc 変数も参照。

### write_bcc

Type: boolean
Default: yes

メッセイジを送信に備える際、Mutt が Bcc ヘッダを書いておくかどうかを 制御する。Exim ユーザはこれを解除したいと思うであろう。 (訳注：exim は Bcc を消してくれない。)

## 6.4 関数

以下は利用可能な関数の一覧です。 それぞれが利用可能なマップに挙げられています。 既定のキー設定が取り上げられており、関数が何をするかについても 説明されています。これらのキー割り当ては bind コマンドで変更することができます。

### generic

generic メニューは実在のメニューではなく、 pager と editor を除くあらゆるメニューで利用できる 共通の関数 (カーソル移動など) を指定するものです。 このメニューへの変更は、それらすべてのメニューの既定割り当てに 影響を与えます。

    bottom-page                L   move to the bottom of the page
    current-bottom     not bound   move current entry to bottom of page
    current-middle     not bound   move current entry to middle of page
    current-top        not bound   move current entry to top of page
    enter-command              :   enter a muttrc command
    exit                       q   exit this menu
    first-entry                =   move to the first entry
    half-down                  ]   scroll down 1/2 page
    half-up                    [   scroll up 1/2 page
    help                       ?   this screen
    jump                  number   jump to an index number
    last-entry                 *   move to the last entry
    middle-page                M   move to the middle of the page
    next-entry                 j   move to the next entry
    next-line                  >   scroll down one line
    next-page                  z   move to the next page
    previous-entry             k   move to the previous entry
    previous-line              <   scroll up one line
    previous-page              Z   move to the previous page
    refresh                   ^L   clear and redraw the screen
    search                     /   search for a regular expression
    search-next                n   search for next match
    search-opposite    not bound   search for next match in opposite direction
    search-reverse         ESC /   search backwards for a regular expression
    select-entry             RET   select the current entry
    shell-escape               !   run a program in a subshell
    tag-entry                  t   toggle the tag on the current entry
    tag-prefix                 ;   apply next command to tagged entries
    tag-prefix-cond    not bound   apply next function ONLY to tagged messages
    top-page                   H   move to the top of the page
    what-key           not bound   display the keycode for a key press

### index

    bounce-message             b   remail a message to another user
    change-folder              c   open a different folder
    change-folder-readonly ESC c   open a different folder in read only mode
    check-traditional-pgp  ESC P   check for classic pgp
    clear-flag                 W   clear a status flag from a message
    copy-message               C   copy a message to a file/mailbox
    create-alias               a   create an alias from a message sender
    decode-copy            ESC C   decode a message and copy it to a file/mailbox
    decode-save            ESC s   decode a message and save it to a file/mailbox
    delete-message             d   delete the current entry
    delete-pattern             D   delete messages matching a pattern
    delete-subthread       ESC d   delete all messages in subthread
    delete-thread             ^D   delete all messages in thread
    display-address            @   display full address of sender
    display-toggle-weed        h   display message and toggle header weeding
    display-message          RET   display a message
    edit                       e   edit the current message
    edit-type                 ^E   edit the current message's Content-Type
    exit                       x   exit without saving changes
    extract-keys              ^K   extract PGP public keys
    fetch-mail                 G   retrieve mail from POP server
    flag-message               F   toggle a message's 'important' flag
    forget-passphrase         ^F   wipe PGP passphrase from memory
    forward-message            f   forward a message with comments
    group-reply                g   reply to all recipients
    limit                      l   show only messages matching a pattern
    list-reply                 L   reply to specified mailing list
    mail                       m   compose a new mail message
    mail-key               ESC k   mail a PGP public key
    next-new                 TAB   jump to the next new message
    next-subthread         ESC n   jump to the next subthread
    next-thread               ^N   jump to the next thread
    next-undeleted             j   move to the next undeleted message
    next-unread        not bound   jump to the next unread message
    parent-message             P   jump to parent message in thread
    pipe-message               |   pipe message/attachment to a shell command
    previous-new         ESC TAB   jump to the previous new message
    previous-page              Z   move to the previous page
    previous-subthread     ESC p   jump to previous subthread
    previous-thread           ^P   jump to previous thread
    previous-undeleted         k   move to the last undelete message
    previous-unread    not bound   jump to the previous unread message
    print-message              p   print the current entry
    query                      Q   query external program for addresses
    quit                       q   save changes to mailbox and quit
    read-subthread         ESC r   mark the current subthread as read
    read-thread               ^R   mark the current thread as read
    recall-message             R   recall a postponed message
    reply                      r   reply to a message
    resend-message         ESC e   resend message and preserve MIME structure
    save-message               s   save message/attachment to a file
    set-flag                   w   set a status flag on a message
    show-version               V   show the Mutt version number and date
    show-limit             ESC l   show currently active limit pattern, if any
    sort-mailbox               o   sort messages
    sort-reverse               O   sort messages in reverse order
    sync-mailbox               $   save changes to mailbox
    tag-pattern                T   tag messages matching a pattern
    tag-thread             ESC t   tag/untag all messages in the current thread
    toggle-new                 N   toggle a message's 'new' flag
    toggle-write               %   toggle whether the mailbox will be rewritten
    undelete-message           u   undelete the current entry
    undelete-pattern           U   undelete messages matching a pattern
    undelete-subthread     ESC u   undelete all messages in subthread
    undelete-thread           ^U   undelete all messages in thread
    untag-pattern             ^T   untag messages matching a pattern
    view-attachments           v   show MIME attachments

### pager

    bottom             not bound   jump to the bottom of the message
    bounce-message             b   remail a message to another user
    change-folder              c   open a different folder
    change-folder-readonly ESC c   open a different folder in read only mode
    check-traditional-pgp  ESC P   check for classic pgp
    copy-message               C   copy a message to a file/mailbox
    create-alias               a   create an alias from a message sender
    decode-copy            ESC C   decode a message and copy it to a file/mailbox
    decode-save            ESC s   decode a message and save it to a file/mailbox
    delete-message             d   delete the current entry
    delete-subthread       ESC d   delete all messages in subthread
    delete-thread             ^D   delete all messages in thread
    display-address            @   display full address of sender
    display-toggle-weed        h   display message and toggle header weeding
    edit                       e   edit the current message
    edit-type                 ^E   edit the current message's Content-Type
    enter-command              :   enter a muttrc command
    exit                       i   return to the main-menu
    extract-keys              ^K   extract PGP public keys
    flag-message               F   toggle a message's 'important' flag
    forget-passphrase         ^F   wipe PGP passphrase from memory
    forward-message            f   forward a message with comments
    group-reply                g   reply to all recipients
    half-up            not bound   move up one-half page
    half-down          not bound   move down one-half page
    help                       ?   this screen
    list-reply                 L   reply to specified mailing list
    mail                       m   compose a new mail message
    mail-key               ESC k   mail a PGP public key
    mark-as-new                N   toggle a message's 'new' flag
    next-line                RET   scroll down one line
    next-entry                 J   move to the next entry
    next-new                 TAB   jump to the next new message
    next-page                      move to the next page
    next-subthread         ESC n   jump to the next subthread
    next-thread               ^N   jump to the next thread
    next-undeleted             j   move to the next undeleted message
    next-unread        not bound   jump to the next unread message
    parent-message             P   jump to parent message in thread
    pipe-message               |   pipe message/attachment to a shell command
    previous-line      BackSpace   scroll up one line
    previous-entry             K   move to the previous entry
    previous-new       not bound   jump to the previous new message
    previous-page              -   move to the previous page
    previous-subthread     ESC p   jump to previous subthread
    previous-thread           ^P   jump to previous thread
    previous-undeleted         k   move to the last undelete message
    previous-unread    not bound   jump to the previous unread message
    print-message              p   print the current entry
    quit                       Q   save changes to mailbox and quit
    read-subthread         ESC r   mark the current subthread as read
    read-thread               ^R   mark the current thread as read
    recall-message             R   recall a postponed message
    redraw-screen             ^L   clear and redraw the screen
    reply                      r   reply to a message
    save-message               s   save message/attachment to a file
    search                     /   search for a regular expression
    search-next                n   search for next match
    search-opposite    not bound   search for next match in opposite direction
    search-reverse         ESC /   search backwards for a regular expression
    search-toggle              \   toggle search pattern coloring
    shell-escape               !   invoke a command in a subshell
    show-version               V   show the Mutt version number and date
    skip-quoted                S   skip beyond quoted text
    sync-mailbox               $   save changes to mailbox
    tag-message                t   tag a message
    toggle-quoted              T   toggle display of quoted text
    top                        ^   jump to the top of the message
    undelete-message           u   undelete the current entry
    undelete-subthread     ESC u   undelete all messages in subthread
    undelete-thread           ^U   undelete all messages in thread
    view-attachments           v   show MIME attachments

### alias

    search                     /   search for a regular expression
    search-next                n   search for next match
    search-reverse         ESC /   search backwards for a regular expression

### query

    create-alias               a   create an alias from a message sender
    mail                       m   compose a new mail message
    query                      Q   query external program for addresses
    query-append               A   append new query results to current results
    search                     /   search for a regular expression
    search-next                n   search for next match
    search-opposite    not bound   search for next match in opposite direction
    search-reverse         ESC /   search backwards for a regular expression

### attach

    bounce-message             b   remail a message to another user
    collapse-parts             v   toggle display of subparts
    delete-entry               d   delete the current entry
    display-toggle-weed        h   display message and toggle header weeding
    edit-type                 ^E   edit the current entry's Content-Type
    extract-keys              ^K   extract PGP public keys
    forward-message            f   forward a message with comments
    group-reply                g   reply to all recipients
    list-reply                 L   reply to specified mailing list
    pipe-entry                 |   pipe message/attachment to a shell command
    print-entry                p   print the current entry
    reply                      r   reply to a message
    resend-message         ESC e   resend message and preserve MIME structure
    save-entry                 s   save message/attachment to a file
    undelete-entry             u   undelete the current entry
    view-attach              RET   view attachment using mailcap entry if necessary
    view-mailcap               m   force viewing of attachment using mailcap
    view-text                  T   view attachment as text

### compose

    attach-file                a   attach a file(s) to this message
    attach-message             A   attach message(s) to this message
    attach-key             ESC k   attach a PGP public key
    copy-file                  C   save message/attachment to a file
    detach-file                D   delete the current entry
    display-toggle-weed        h   display message and toggle header weeding
    edit-bcc                   b   edit the BCC list
    edit-cc                    c   edit the CC list
    edit-description           d   edit attachment description
    edit-encoding             ^E   edit attachment transfer-encoding
    edit-fcc                   f   enter a file to save a copy of this message in
    edit-from              ESC f   edit the from: field
    edit-file               ^X e   edit the file to be attached
    edit-headers               E   edit the message with headers
    edit                       e   edit the message
    edit-mime                  m   edit attachment using mailcap entry
    edit-reply-to              r   edit the Reply-To field
    edit-subject               s   edit the subject of this message
    edit-to                    t   edit the TO list
    edit-type                 ^T   edit attachment type
    filter-entry               F   filter attachment through a shell command
    forget-passphrase         ^F   wipe PGP passphrase from memory
    ispell                     i   run ispell on the message
    new-mime                   n   compose new attachment using mailcap entry
    pgp-menu                   p   show PGP options
    pipe-entry                 |   pipe message/attachment to a shell command
    postpone-message           P   save this message to send later
    print-entry                l   print the current entry
    rename-file                R   rename/move an attached file
    send-message               y   send the message
    toggle-unlink              u   toggle whether to delete file after sending it
    view-attach              RET   view attachment using mailcap entry if necessary
    write-fcc                  w   write the message to a folder

### postpone

    delete-entry               d   delete the current entry
    undelete-entry             u   undelete the current entry

### browser

    change-dir                 c   change directories
    check-new                TAB   check mailboxes for new mail
    enter-mask                 m   enter a file mask
    search                     /   search for a regular expression
    search-next                n   search for next match
    search-reverse         ESC /   search backwards for a regular expression
    select-new                 N   select a new file in this directory
    sort                       o   sort messages
    sort-reverse               O   sort messages in reverse order
    toggle-mailboxes         TAB   toggle whether to browse mailboxes or all files
    view-file              SPACE   view file
    subscribe                  s   subscribe to current mailbox (IMAP Only)
    unsubscribe                u   unsubscribe to current mailbox (IMAP Only)
    toggle-subscribed          T   toggle view all/subscribed mailboxes (IMAP Only)

### pgp

    view-name                  %   view the key's user id
    verify-key                 c   verify a PGP public key

### editor

    backspace          BackSpace   delete the char in front of the cursor
    backward-char             ^B   move the cursor one character to the left
    backward-word          ESC b   move the cursor to the previous word
    bol                       ^A   jump to the beginning of the line
    buffy-cycle            Space   cycle among incoming mailboxes
    capitalize-word        ESC c   uppercase the first character in the word
    complete                 TAB   complete filename or alias
    complete-query            ^T   complete address with query
    delete-char               ^D   delete the char under the cursor
    downcase-word          ESC l   lowercase all characters in current word
    eol                       ^E   jump to the end of the line
    forward-char              ^F   move the cursor one character to the right
    forward-word           ESC f   move the cursor to the next word
    history-down       not bound   scroll down through the history list
    history-up         not bound   scroll up through the history list
    kill-eol                  ^K   delete chars from cursor to end of line
    kill-eow               ESC d   delete chars from cursor to end of word
    kill-line                 ^U   delete all chars on the line
    kill-word                 ^W   delete the word in front of the cursor
    quote-char                ^V   quote the next typed key
    transpose-chars    not bound   transpose character under cursor with previous
    upcase-word            ESC u   uppercase all characters in current word

## 7. 雑録

## 7.1 謝辞

Kari Hurtta <kari.hurtta@fmi.fi> は、かつて ELM-ME の日々に MIME 解釈コウドの原型を共同開発してくれました。

以下の人々が Mutt 開発に対して大きな力になってくれてきました。

Vikas Agnihotri <vikasa@writeme.com>,
Francois Berjon <Francois.Berjon@aar.alcatel-alsthom.fr>,
Aric Blumer <aric@fore.com>,
John Capo <jc@irbs.com>,
David Champion <dgc@uchicago.edu,
Brendan Cully <brendan@kublai.com>,
Liviu Daia <daia@stoilow.imar.ro>,
Thomas E. Dickey <dickey@herndon4.his.com>,
David DeSimone <fox@convex.hp.com>,
Nickolay N. Dudorov <nnd@wint.itfs.nsk.su>,
Ruslan Ermilov <ru@freebsd.org>,
Edmund Grimley Evans <edmundo@rano.org,
Michael Finken <finken@conware.de>,
Sven Guckes <guckes@math.fu-berlin.de>,
Lars Hecking <lhecking@nmrc.ie>,
Mark Holloman <holloman@nando.net>,
Andreas Holzmann <holzmann@fmi.uni-passau.de>,
Marco d'Itri <md@linux.it>,
Bjoern Jacke <bjacke@suse.com>,
Byrial Jensen <byrial@image.dk>,
David Jeske <jeske@igcom.net>,
Christophe Kalt <kalt@hugo.int-evry.fr>,
Tommi Komulainen <Tommi.Komulainen@iki.fi>,
Felix von Leitner (a.k.a ``Fefe'') <leitner@math.fu-berlin.de>,
Brandon Long <blong@fiction.net>,
Jimmy Makela <jmy@flashback.net>,
Lars Marowsky-Bree <lmb@pointer.in-minden.de>,
Thomas ``Mike'' Michlmayr <mike@cosy.sbg.ac.at>,
Andrew W. Nosenko <awn@bcs.zp.ua>,
David O'Brien <obrien@Nuxi.cs.ucdavis.edu>,
Clint Olsen <olsenc@ichips.intel.com>,
Park Myeong Seok <pms@romance.kaist.ac.kr>,
Thomas Parmelan <tom@ankh.fr.eu.org>,
Ollivier Robert <roberto@keltia.freenix.fr>,
Thomas Roessler <roessler@does-not-exist.org>,
Roland Rosenfeld <roland@spinnaker.de>,
TAKIZAWA Takashi <taki@luna.email.ne.jp>,
Allain Thivillon <Allain.Thivillon@alma.fr>,
Gero Treuner <gero@faveve.uni-stuttgart.de>,
Vsevolod Volkov <vvv@lucky.net>,
Ken Weinert <kenw@ihs.com>

## 7.2 この文書について

この文書は SGML で書かれ、 sgml-tools パッケイジを用いて他の形式へ整形されました。

## 7.3 日本語訳について

Note: The original manual does not have this section.
注意: この章は原文には存在しません。

日本語で読める完全な Mutt マニュアルは、西岡氏と人見氏による翻訳しか 手に入らない状態が続いています。そこで tamomo こと高橋全は、 sourceforge.jp の mutt-j プロジェクトという場を借りて、 一つの仮想ライヴァルを作り出そうと考えました。 目標は、この翻訳がシェアを握ることではありません (この翻訳は「訳注」が多すぎるし、カタカナが変で、読みづらいですからね)。 この翻訳が契機となって西岡・人見訳がより良いものとなり、 Mutt ユーザにとって、より快適な日本語環境が整備されることです。 また、この翻訳の特色として、原文 SGML との対応が見やすいという点があります。 `diff -du manual.sgml manual.ja.sgml` としてみると、 原文と日本語が並んで見えるため、誤訳なのか 原文が間違っているのかが一目瞭然です。 これによって原文の質が向上されることも視野に入れています。 翻訳中に、実際いくつか原文の誤りなどを見付けました。

ライセンスについては、原文に何も付け足しません。 参考にしたのは、原文とソース (1.5.6, 1.5.7, 1.5.8 および CVS 版)、および 西岡・人見訳 (1.4) のみです。

改善要求などは sourceforge.jp の mutt-j プロジェクトの バグ報告機能かフォーラムを使うと良いでしょう。 あるいは高橋全に直接メイルを送っても構いません。

`Translation to Japanese: (C) 2004, 2005 TAKAHASHI Tamotsu`