次のページ 前のページ 目次へ

4. 高度な使い方

4.1 正規表現

複雑なパターン patternsも含めて Mutt で文字列を検索するには POSIXで拡張された形の正規表現を指定しなければなりません。(拡張正規表現の文法は egrepとGNU awkでも多少採り入れられています)。この文法の簡単に説明しておきましょう。

検索パターンが一つでも大文字を含めば大文字小文字を区別して検索が行われます、それ以外は大文字小文字を区別しません。初期化コマンドの中で \ を正規表現に使いたい場合、\ は \\ という風にエスケープされなければなりませ ん。

正規表現は文字列のセットを記述するためのパターンです。正規表現は数学の式の組み立てと似ており、小さな式を組み合わせるのに色々な演算子を使いま す。

正規表現を囲んだり、分けたりするのに " と ' が使えます。これは正規表現が空白文字を含む場合に便利です。" と 'がどのように処理されるかについての詳しい説明は 初期化ファイルの構文にあります。またこれらはそのまま(特殊文字ではなく)リテラルとして正規表現に含めたい場合には前に\(バックスラッシュ)をつけてください。

基本となる単位は1つの文字にマッチする正規表現であり、アルファベットとアラビア数字の全てを含むほとんどの文字はその文字そのものがそれ自身にマッチする正規表現です。特殊な意味を持つメタキャラクターは前にバックスラッシュを付けることでエスケープします。

ピリオド(.)は任意の1文字にマッチします。カレット(^)とドル記号($)はそれぞれ行の最初と最後という概念的な文字(行の最初にある一文字を表すのではなく行の最初という概念的なものを表す正規表現です)にマッチするメタキャラク ターです。

[ と ] で囲まれた文字のリストはその中にある文字のどれかにマッチします。もしリストの最初にカレット(^)があればそのリストにない文字にマッチします。例えば [0123456789]はアラビア数字のうちのどれかにマッチします。ASCII文字を指定する場合最初の文字と最後の文字の間にハイフン(-)を置くことで範囲指定することができます。ほとんどのメタキャラクターはリストの中ではその意味を失います。]そのものをリストの中に置きたい場合はリストの最初に置きます。同様に ^ そのものをリストの中に置きたい場合はリストの最初以外の場所に置きます。そしてハイフン(-)を置きたい場合はリストの最後に置きます。

特定の文字クラスは前もって定義してあります。文字クラスは、[: 、そのクラスを表すキーワード、:] 、で構成されます。次に示すクラスは POSIX 標準で定められているものです。

[:alnum:]

アルファベットとアラビア数字

[:alpha:]

アルファベット

[:blank:]

スペースとタブ

[:cntrl:]

制御文字

[:digit:]

アラビア数字

[:graph:]

印字可能かつ見える文字(スペースは印字可能であるが見えない。一方 a は印字可能かつ見える文字)

[:lower:]

アルファベットの小文字

[:print:]

印字可能な文字(制御文字以外)

[:punct:]

句読点(アルファベット、アラビア数字、制御文字、スペース以外の文字)

[:space:]

空白文字(スペース、タブ、改ページ等)

[:upper:]

アルファベットの大文字

[:xdigit:]

16進数

文字クラスは角括弧で囲まれた文字リストの中でのみ有効です。文字クラス名にある角括弧は記号名の一部だということに注意して下さい。つまり、文字リストを定義する角括弧とは別に角括弧で囲まれなければなりません。例えば: [[:digit:]] は [0-9] と同義です。

文字リストの中ではさらに2つの特別なシークエンスがあり、これらで照合要素と呼ばれる複数の文字を表す一つの記号を使ったり、同じように文字を照合したりソートしたりするために等価ないくつかの文字を一つの記号で表したりすることで ASCII 以外の文字セットも利用できるようになっています。

照合記号

照合記号は [. と .] で括られた複数の文字を参照する要素です。例えば、ch が照合要素だとすると [[.ch.]] がこの照合要素にマッチする正規表現です。一方 [ch] は c か h のどちらかにマッチする正規表現です。

等価クラス

等価クラスとは各々のロケール固有のよく似ていて同一視できる文字のリストの名前です。名前は [= と =] で括ります。例えば、e という名前がアルファベットの eとアクセント付の eの全てを表すものとして使われているとします。この場合 [[=e=]] は e、アクセント付の eのどれかにマッチする正規表現です。

一つの文字にマッチする正規表現は下に示す繰り返し演算子を後に付けることができます。

?

直前の正規表現が一つもないか一つ

*

直前の正規表現の0回以上の繰り返し

+

直前の正規表現の1回以上の繰り返し

{n}

直前の正規表現のn回の繰り返し

{n,}

直前の正規表現のn回以上の繰り返し

{,m}

直前の正規表現の0回以上m回までの繰り返し

{n,m}

直前の正規表現のn回以上m回までの繰り返し

二つの正規表現をそのままつなぐこともできます。つないでできた一つの正規表現はつなげた二つの正規表現がそれぞれマッチする二つの文字列をあわせた一つの文字列にマッチします。

二つの正規表現は選択演算子 | でつなぐことができ、二つをつないでできる一つの正規表現は二つの正規表現の内のどちらかがマッチする文字列にマッチし ます。

繰り返し演算子と正規表現とのつながりは正規表現同士のつながりよりも優先します。選択演算子でつながれた正規表現の後に繰り返し演算子がくると、繰り返し演算子が選択演算子に対して優先しますので、どちらかの正規表現の繰り返しを表します。正規表現同士を括弧 () で括ってしまえば繰り返し演算子より優先させ ることができます

注意: Mutt を GNU rx パッケージと共にコンパイルしていれば次の演算子を正規 表現の中で使うこともできます。

\\y

単語の先頭か最後という概念的な文字ににマッチします

\\B

単語内という概念的な文字にマッチします

\\<

単語の先頭という概念的な文字にマッチします

\\>

単語の最後という概念的な文字にマッチします

\\w

単語を構成する任意の文字にマッチします(アルファベット、アラビア 数字、アンダースコア)

\\W

単語の成分以外の任意の文字にマッチします。

\\`

バッファの先頭という概念的な文字列にマッチします(文字列)

\\'

バッファの最後という概念的な文字列にマッチします

しかしながらこれらの演算子は POSIX では定められておらず、そのため様々なシステムのストックライブラリでは使えたり使えなかったりする、ということに注意して下さい。

4.2 パターン

多くの Muttコマンドではマッチさせるパターンを指定することができます (limit、タグパターン、削除パターン、etc)。複数のメールを選択するのにもいくつかの方法があります:

~A              全てのメール
~b EXPR         本文に EXPR を含むメール
~B EXPR         EXPR を含むメール
~c USER         CC に USER が宛てられているメール
~C EXPR         To: か Cc: に EXPR を含むメール
~D              削除マークが付けられたメール
~d [MIN]-[MAX]  送信された日付けがその範囲の中にあるメール
~E              エクスパイアされているメール
~e EXPR         Sender フィールドに EXPR を含むメール
~F              重要のマークがついているメール
~f USER         USERから出されたメール
~g              PGP 署名されているメール
~G              PGP 暗号化されているメール
~h EXPR         ヘッダーに EXPR を含むメール
~k              PGP鍵を含んだメール
~i ID           Message-ID フィールドで ID にマッチするメール
~L EXPR         EXPR から出されているか EXPR に届いているメール
~l              メーリングリストに指定されているアドレスにマッチするメール
~m [MIN]-[MAX]  MIN から MAX の範囲のメール
~n [MIN]-[MAX]  MIN から MAX の範囲のスコアのメール
~N              新着のメール
~O              古い未読メール
~p              あなたに宛てられたメール
~P              あなたが出したメール
~Q              返信済のメール
~R              既読のメール
~r [MIN]-[MAX]  受信日がその範囲にあるメール
~S              置き換えられたメール
~s SUBJECT      Subject フィールドに SUBJECT を持つメール
~T              タグ付けされたメール
~t USER         USER宛のメール
~U              未読のメール
~v              折り畳んだスレッドに含まれるメール
~x EXPR         References フィールドに EXPR を含むメール
~y EXPR         X-Labelフィールドに EXPRを持つメッセージ 
~z [MIN]-[MAX]  サイズが MIN から MAX の間のメール *)
~=             重複したメッセージ ($duplicate_threads を見てください)

EXPR、USER、ID、SUBJECTは正規表現 regular expressionsです。

*) <[MAX]、 >[MIN]i、 [MIN]-、-[MAX] という書き方もできます。

パターン修飾子

アドレスのリストに対してパターンマッチングを行う場合は(特に c、C、p、P、t)、リストの中に一つでもパターンにマッチするアドレスがあると、そのリスト全体が選ばれてしまうことに注意してください。もしそのリストのすべての要素がパターンにマッチするリストを選びたい場合はパターンの前に^を前置する必要があります。次の例はすべての受取人がドイツいるメールにマッチします。

^~C \.de$  

組み合わせて検索する

AND 検索は一つ以上の基準を記述することで行われます。例えば:

~t mutt ~f elkins  

は受信者のリストに muttという単語を含み、かつ From ヘッダーフィールドに elkins という単語を持つメールを選択します。

Mutt では次にあげる演算子も利用でき、もっと複雑な検索パターンを指定することができます:

組合わせ検索の例をいくつか見てみましょう。次のパターンは To もしくは Cc フィールドに mutt を含まず、かつ From が elkins であるメールを選び出します。

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

次の例は空白を正規表現に含める例です('か "をつかいます)。これはメールのサブジェクトに ``Junk +From +Me$''が含まれ、``Jim +Somebody''または ``Ed +SomeoneElse''から来たメッセージにマッチします。

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

日付で検索する

Mutt は絶対的な日付と相対的な日付という二つの日付のタイプをサポートしています。

絶対的な日付。 日付は DD/MM/YY という形式で指定しなければなりません(月と年は省略することができます、省略された場合は現在の月と年とみなされます)。正しい日付の範囲指定の例を挙げます:

Limit to messages matching: ~d 20/1/95-31/10  

もし選択しようとする日付の範囲の最初の日付を省略して -DD/MM/YYとだけ指定した場合その日付以前のメールが全て選択されます。最後の日付を省略して DD/MM/YY- とのみ指定した場合はその日付以降のメールが選択されます。ダッシュ(-)なしで一つの日付を指定した場合はその日付に送られたメールだけが選択されます。

エラーマージン エラーマージンを絶対的な日付に加えることができます。エラーマージンは(+または-の)符号、数字、単位からなっています。使える単位は次の通りです。

y       年  
m       月 
w       週 
d      日。この場合は特別に符号に「*」を使うことができます。これは正と負に同じだけのエラーマージンを与えます。

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

Limit to messages matching: ~d 15/1/2001*2w

相対的な日付。 このタイプの日付は現在の日付に対する相対的なものです。そして次のような指定の仕方ができます:

offset は次の単位が後に続く正の数です。

y      年
m      月
w      週
d      日

例: 一ヵ月以上は古くないメールを選択するには次のようにします。

Limit to messages matching: ~d <1m  

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

4.3 タグを使う

メールを一度に一通づつよりもまとめて操作をしたい場合があります。例えば、あるメーリングリスト宛てのメールを別のフォルダーに保存したり、与えた Subject を含む全てのメールを削除する場合などです。パターンにマッチしたメールにタグをつけるには tag-pattern機能を使います(デフォルトで shift-Tに割り当てられています)。もしくは tag-message機能(デフォルトで t に割り当てられています)を使うことで個々のメールを手動でタグをつけることもできます。パターンの文法については検索の章 patternsを参照して下さい。

いったん望むメールにタグをつけたら tag-prefix演算子(デフォルトでセミコロン(;)キー)を使います。tag-prefix 演算子が使われると、その次の操作でタグをつけたすべてのメールに対して(その操作が正しい操作であれば)その操作が行われます。 $auto_tag変数がセットされていると、tag-prefix演算子を使うこと無しに次の操作が自動的にタグつけされたメールに施されます。

4.4 フックを使う

フックの概念は EMACSエディターから借りてきたもので、これを使うことでなんらかの操作をする前に任意のコマンドを実行することができるようになります。例えば、読んでいるメールボックスや送るメールのあて先に応じてなんらかの設定を変えたいような場合です。Muttの世界ではフックは正規表現 regular expressionかパターン patternと設定オプション/コマンドで構成されます。使うことができるフックコマンドの詳細は次のセクションを見てください。

Note: もしフックが設定に変更を加えた場合には、その変更は今動かしている muttセッションの終りまで有効になります。これを避けて、設定をデフォルトに戻すためにはすべてフックの前にデフォルトフックを置く必要があります。次の例は send-hookと my_hdrを使った例です。

send-hook . 'unmy_hdr From:'  
send-hook ~Cb@b.b my_hdr from: c@c.c

フックコマンドでメールにマッチさせる

メールに応じて実行するフックコマンド(send-hook、save-hook、fcc-hook、message-hook)は他のフックコマンドと少し違った方法で評価されます。他のタイプのフックコマンドは正規表現 regular expressionで十分です。しかしメールを扱うときはもう少しきめの細かいマッチングが必要になります。というのも、さまざまな基準で、またさまざまな目的でマッチさせたい場合があるからです。

Muttではフックコマンドでメールをマッチさせるには検索パターン言語 search patternを使うことができます。これは、メールのへッダに関する情報にマッチする演算子に制限されること以外は、メールボックスを絞り込んだり検索したりするのと全く同じように動作します。

例えば、返信先のアドレスを特定の宛先に対してセットしたい場合は次のようにすることができます:

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 といった外部のディレクトリーデータベースへ、単純なインターフェイスを使ったラッパースクリプトを通して接続できます。 $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 では問い合わせ機能を利用するのに2つの仕組みが用意されています。一つはインデックスメニューから問い合わせ機能(初期値: Q)を使う方法です。これを使うとまず問い合わせのプロンプトを表示し、それからマッチした応答のリストを問い合わせメニューに表示します。問い合わせメニューでエイリアスを作成する宛先や今からメールを出す宛先を選択することができます。また複数にメッセージを送るためにタグつけすることも、新たに問い合わせを始めることも、今の応答に加えてさらに問い合わせをすることもできます。

もう一つの問い合わせ機能を利用する仕組みはアドレスの補完で、エイリアスの補完によく似ています。アドレスを入力するすべてのプロンプトで今タイプしようとしているアドレスに基づいて問い合わせを実行し、問い合わせ補完 (complete-query function / 初期値: ^T)を使うことができます。エイリアス の時と同じように Mutt は最後にスペースかコンマを打った場所まで戻ってタイプされたアドレスを検索します。問い合わせに対して一つだけの応答があった場合その場でそのアドレスが展開されます。複数の応答があった場合は問い合わせメニューを呼び出します。問い合わせメニューで一つもしくは複数のア ドレスを選択してプロンプトに追加することができます。

4.6 メールボックスの形式

Muttは mbox、MMDF、MH、Maildirの4つの異なるメールボックスの形式をサポートし、読み書きできます。メールボックスのタイプは自動的に判定されるので異なるメールボックスのタイプを指定するフラグを使う必要はありません。新しいメールボックスを作成するときは $mbox_type変数で指定されているタイプがデフォルトとして使われます。

mbox

これは UNIX でもっとも広く使われているメールボックスの形式です。すべてのメールは一つのファイルに格納されます。それぞれのメールは次の形式の行を含み、この行が区切りとなり新しいメールが始まります。

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

この行はよく From_ 行と呼ばれます。

MMDF

これは mbox 形式の変形で、それぞれのメールは ^A^A^A^A (4つの Ctrl-A)を含む行で囲まれます。

MH

mbox と MMDF を大幅に革新したものです。メールボックスはディレクトリーからなりそれぞれのメールは別々のファイルに格納されます。ファイル名はメール番号を示します(しかし、この番号は Muttが表示する番号とは一致しない場合もあります)。削除されたメールはファイル名の先頭にコンマ(,)がつけられます。注意: Mutt は .mh_sequences か .xmhcache というファイルがあるかどうかで MHメールボックスであると判断します(これらのファイルは普通のディレクトリと MHメールボックスを区別するのに必要です)。これらのファイルは muttによってアップデートはされません。

Maildir

最新のメールボックスの形式で、Qmail という MTA で使われています(Qmail は sendmail を置き換える MTA です)。MH とよく似ていますが、メールボックスのサブディレクトリーとして、tmp、new、curという3つのディレクトリが加えられます。ファイル名は、たとえ他のプログラムが NFS を通して書き込んでも唯一であるような方法でつけられます。つまりファイルをロックする必要がありません。

4.7 メールボックスへのショートカット

特定のメールボックスを参照するために定義済みのショートカットがたくさんあります。これらのショートカットはファイルやメールボックスのパスを入力するところならばどこでも使うことができます。

4.8 メーリングリストを扱う

Muttには大量のメールを扱うための設定オプションがいくつかあります。まず第一に Muttにどれがメーリングリストのアドレスであるか(技術的にはメーリングリストのアドレスである必要はありませんが、そういった用途で一番よく使われます)、どれが購読しているメーリングリストであるか教えてやります。これは lists and subscribeコマンドを muttrc に書いて設定 します。

そうして Mutt にどれがメーリングリストであるか教えてやるといくつかのことが可能になります。まず第一にそのリスト名をインデックスメニューで表示させることができるようになります。これは個人的なメールとメーリングリスト宛てのメールが同じメールボックスにあるときに区別するのに役立ちます。それから $index_format変数での %L というエスケープはメーリングリストがあった場合は To <list> という文字列を返します。そして CC フィールドにリスト名があった場合は Cc <list> という文字列を返します(そうでなければメー ルの著者の名前を返します)。

しばしばメーリングリストのメールは To と Cc フィールドが膨大になっている傾向があります。ほとんどの人はメーリングリストで返信するときにわざわざ元の著者のアドレスを削除しようとはしません。結果として二つもしくはそれ以上のコピーがその人に送られてしまうことになります。インデックスメニューとページャーでデフォルトでは L キーに割り当てられている list-reply 機能 はすべての受信者に返信するのではなくメーリングリストのアドレスにのみ返信することで混乱を減らすことを手助けしてくれます。(Mail-Followup-Toで指定した場合は例外です。以下を見てください)。

Muttは Mail-Followup-Toへッダもサポートしています。 $followup_to変数がセットしてあれば、メールを(メーリングリストへも含めて)何人もの人へ送る場合 Mail-Followup-Toへッダがメールに追加され、それにはすべてのそのメールの受取人が含まれますがあなたのメールアドレスは含まれません。これによってそのメールへの group-repliesまたは list-replies(つまり followupです)は元々のメールの受取人に送られるのですが、あなたに別に送られることはありません。あなたには、購読しているメーリングリストを通して送られます。

反対に Mail-Followup-Toへッダがついているメッセージに対して group-replyまたは list-replyをする場合には、 $honor_followup_to変数がセットされている場合にのみこのへッダを使います。この場合にはMail-Followup-Toの受取人のリストに含まれていなくても list-replyはメーリングリストへも返信します。

へッダの編集が可能になっている場合には、自分で Mail-Followup-Toへッダをつけることができます。Muttは送信時にこのへッダが無い場合のみ、このへッダを自動生成します。

もう一つの方法は Reply-To フィールドをメールの著者に設定するのではなく、メーリングリストのアドレスに設定することです。いくつかのメーリングリストの管理者はこの方法を採用しています。この方法はメールの著者に個人的に返信しようとするときに問題が生じます。というのはほとんどのメールクライアントは返信の動作を行うときには自動的に Reply-To フィールドに設定してあるアドレスを拾ってくるからです。Mutt では $reply_to変数を利用することでどのアドレスに返信するかどうかを決めるのを楽にすることができます。もしセットされていれば Reply-Toフィールドに指定されているアドレスに返信するか、 Fromフィールドのアドレスに返信するかを問い合わせてくれます。セットされていない場合は Reply-Toフィールドがあればそれが使われます。

X-Labelフィールドを使ってさらにメーリングリストや話題を特定することができます。 $index_format変数の %yと %Yは X-Label:フィールドをインデックスに展開するのに使えます。また Muttの正規表現を使ったパターンマッチは標準的なへッダフィールドにしか使えませんが、procmailなどのメールフィルタを使えば簡単に標準的なフィールドに挿入できます。

最後に、Muttはメールボックスをスレッド threadsでソート sortすることができます。一つのスレッドは同じ主題で関連するすべてのメールの一まとまりです。普通は一つのメールとそれに返信したすべてのメールが図形的に木のような構造で構成されます。もしスレッド機能を持ったニュースクライアントを使ったことがあるならばわかると思いますがそれと同じコンセプトです。これを利用すると、興味のない話題はスレッド毎に削除でき、また素早く話題の重要性を判断できるのでかなりの流量があるメーリングリストを簡単に扱えるようになります。

4.9 配送状態の通知(DSN)のサポート

RFC1894 では電子メールのメッセージの状態に関する情報の伝えるための MIME コンテントタイプが定められています。これらは「受取証が戻ってくる」と考えることができます。バークレー sendmail 8.8.x はメールクライアントがどのタイプの状態メッセージを返させるか要求できるようにいくつかのコマンドラインオプションを備えています。

これをサポートするために二つの変数が用意されています。 $dsn_notifyは通常と異なったことが起ったことを通知する受取証を要求するのに使われます(メールが失敗した旨の通知、メールが配送された旨の通知等々)。 $dsn_returnは受取証とともに戻ってくる元のメールの量を限定するように要求できます(ヘッダーもしくはすべてのメール)。DSN に関するさらに詳しい情報に関しては sendmailの man ページをご覧下さい。

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

Mutt が POP3 のサポート付きでコンパイルされていた場合(configure スクリプトを --enable-pop フラグをつけて走らせていた場合)、リモート POP3サーバーにあるメールボックスを操作し、またローカルで閲覧するためにこちらにメッセージを取得することができるようになります。

フォルダ pop://popserver/を選択するとリモート POP3メールボックスにアクセスできます。

通常とちがうポートを使っている場合にはサーバとともにポートも指定します。つまり pop://popserver:port/という形です。

各々のフォルダにちがうユーザ名でアクセスすることもできます。pop://username@popserver[:port]/としてください。

新しいメールが届いているかどうかを確かめるのは POP3経由ではローカルの場合よりも資源を使います。このため Muttはリモートでメールチェックする間隔を $pop_checkinterval変数でコントロールします。デフォルトは60秒です。

もし Muttが SSLサポートつきでコンパイルされていた場合(--with-sslフラグをつけて configureスクリプトを走らせます)、POP3サーバへの接続を暗号化できます。フォルダに POP3/SSLでアクセスするには popsという接頭辞をつけます。pops://[username@]popserver[:port]/ としてください。

これ以外の POP3メールにアクセスする方法は fetch-mail機能(デフォルトでは Gに割り当てられています)です。これは pop_hostで指定されているホストに接続して、すべての新着メールを取ってきてそれをローカルの spoolfileに格納します。この後 Mutt はメールがずっとローカルにあったかのように正確に振る舞うことができるようになります。

注意: もしすべてのメッセージをローカルメールボックスに持ってきたいだけなら、 fetchmailなどのそれに特化したプログラムを使うことを考えた方がいいでしょう。

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

Muttが IMAPサポート付きでコンパイルされていれば(configure スクリプトを --enable-imap フラグをつけて走らせていた場合)、リモート IMAP サーバー上にあるフォルダーを扱うことができるようになります。

imap://imapserver/INBOX フォルダーを選択することでリモートのインボックスにアクセスすることができます。ここで imapserver は IMAP サーバーの名前で INBOX は IMAP サーバーのスプールメールボックスの特別な名前です。もし IMAP サーバー上の他のメールフォルダーにアクセスしたい場合は、 imap://imapserver/path/to/folder と指定しなければなりません。ここで path/to/folder はアクセスしたいフォルダのバスです。

デフォルトではないポートを選ぶこともできます。imap://imapserver:port/INBOXのように指定してください。

また各々のフォルダを別のユーザー名でアクセスすることもできます。次のように指定してください。imap://username@imapserver[:port]/INBOX.

SSLのサポートつきで Muttをコンパイルした場合(configureスクリプトに --enable-sslフラグをつけた場合)IMAPサーバへの接続を暗号化できます。当然サーバ側も SSLで暗号化した接続をサポートしている必要があります。IMAP/SSLを使ってフォルダにアクセスする場合はフォルダパスに imaps://[username@]imapserver[:port]/path/to/folderと指定しなければなりません。

Pineの場合と同じ書き方も使うことができます。{[username@]imapserver[:port][/ssl]}path/to/folder というような書き方です。

すべてのサーバで / が階層を分けるのに使われているわけではないことに注意してください。Muttはサーバで使われているセパレータが何かを認識してそれに応じてフォルダパスを変換してくれるはずです。

一つの IMAPサーバ上のフォルダを見る場合、購読しているフォルダだけを見ることもすべてのフォルダを見ることも toggle-subscribedコマンドを使ってできます。 $imap_list_subscribed変数も参照してください。

新しいメールが来たかどうかを IMAPを通して確かめるのはかなりの遅れが生じます。そのために $mail_check変数と $timeout変数を注意深く設定する必要があるかもしれません。私は個人的には

set mail_check=90  
set timeout=15 

という設定を遅い電話線経由で使ってますが、まあまあよい結果を得ています。

UWサーバの v12.250より前のバージョンでメールを保存するのに mboxを使っている場合には他のクライアントが同じフォルダを選ぶと今そのフォルダを使っているクライアントの接続を切るようにサーバに通知されます。注意してください。

フォルダブラウザ

Muttはバージョン 1.2から IMAPサーバ上のメールボックスのブラウズをサポートしました.これはほとんどローカルの場合と同じですが、以下のような違いがあります。

認証

Muttは IMAPサーバの認証形式として SASL、GSSAPI、CRAM-MD5、 LOGINをサポートしています(Grant Edwardsがかわいそうな exchange ユーザのために NTLM認証を加えるパッチを書いてくれましたが、まだメインツリーには統合されていません )。また疑似プロトコル ANONYMOUSもサポートしています。これは自分のアカウントがない公開 IMAPサーバにログインするためのもので、ANONYMOUSを使うにはユーザ名を空白、または anonymousにしてください。

SASLは特別な認証形式で、これはあなたのホストとサーバで利用可能ないくつかのプロトコル(GSSAPI、CRAM-MD5、ANONYMOUS、 DIGEST-MD5を含みます)の中から一番安全な方法を選びます。これらのうちのいくつかの方法(DIGEST-MD5と多分 GSSAPI)では、セッション全体が暗号化され通信を覗かれても大丈夫になります。SASLが使えるならできるだけこれを使いましょう。これを使うには Cyrus SASLライブラリが必要で、muttをコンパイルするときに --with-saslフラグをつけてください。

Muttは SASL、 ANONYMOUS、 GSSAPI、 CRAM-MD5、 LOGINの順番でどの方法が利用可能なのかを調べます。

認証形式をコントロールするいくつかの変数があります。

4.12 複数の IMAP/POP アカウントを使う (OPTIONAL)

いくつもの IMAPや POPサーバにアカウントを持っていると、認証のための設定が面倒で間違いを起こしやすくなります。そんなときは、account-hookを使えばいいでしょう。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.13 WWW ブラウザーを起動して URL の場所に行く

メールに URL(unified resource locator = http://www.mutt.org/ のような WWW空間の住所)が含まれている場合は、それらすべての URL を含むメニューを表示させてそこから一つ選んで WWW ブラウザーを起動してそこに行くのが効率的ですよね。この機能は外部の urlviewプログラムによって提供されます。 urlviewプログラムは ftp://ftp.guug.de/pub/mutt/contrib/で手に入れることができます。またこれを使うための設定コマンドは:

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

です。


次のページ 前のページ 目次へ