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

7. Mutt の面白いマクロ

Mutt は高度に設定することができ、.muttrc 内部で設定変数を うまく設定すれば作業中のモードを非常に柔軟に変更することもできます。

ここでは、PGP/MIME 規格に従った署名メッセージを扱えない 受信者に送るために、PGP/MIME 規格を用いない署名メッセージを生成 するよう助けるマクロが出てきます。それから、エイリアスファイルを編集して Mutt を抜けることなく再読み込みするというマクロもあります (これは PGP/GnuPG とは無関係ですが、ただ Mutt のマクロの底力を 見せる一例として書いておきます)。

PGP/GnuPG 関連で使いたいキーの割り当てを Mutt に命令することも 可能です。設定ファイルの変更によって、オプションがすでに設定されているとき でさえも簡単に変えたり追加したりすることができるようにします。

7.1 PGP5 で、PGP/MIME を使わずメッセージ本文に署名する

PGP/MIME ができる前は、メッセージの署名はメッセージ本文に 含められていました。これは署名メッセージを送るときのとても一般的な形式で、 たくさんのメールユーザエージェントがこの形式を使っています。

このように署名したいのなら二つの選択肢があります。つまりメッセージ の MIME タイプを、そのまま残すか application/pgp にするか、 ということです。 (訳注: これについても最近の Mutt の実装について PGP-Notes.txt 等を 参照するようお勧めします。pgp_create_traditional という変数が実装されて いるはずです)

これら二つの署名形式を Mutt に実装するため、下記の行を ~/mutt.iroiro/mutt.macros ファイルに追加しましょう。 その前に、この付加的なファイルの場所を主設定ファイル .muttrc の 中で設定しなければなりません ( 付加的な設定ファイル を参照ください)。

macro   compose \Cp     "F/usr/bin/pgps\ny"
macro   compose S       "F/usr/bin/pgps\ny^T^Uapplication/pgp; format=text; x-action=sign\n"

こうすると、メッセージを送信する直前に <Ctrl>pS を 押せば、カーソルのあるメッセージパーツに署名を含めることができる ようになります。

7.2 GnuPG で、PGP/MIME を使わずにメッセージ本文を署名する

前述の場合と同様ですが、GnuPG の場合、マクロはこうなります。 (訳注: これについても最近の Mutt の実装について PGP-Notes.txt 等を 参照するようお勧めします。pgp_create_traditional という変数が実装されて いるはずです)

macro   compose \CP     "Fgpg --clearsign\ny"
macro   compose \CS     "Fgpg --clearsign\ny^T^Uapplication/pgp; format=text; x-action=sign\n"

7.3 エイリアスファイルを編集して再読み込みする

このマクロを ~/mutt.iroiro/macros.mutt の中に入れれば、 Mutt を抜けることなく、<Alt>a を押すだけで エイリアス ファイルを vi (行の内容を変えれば他のエディタも使えます) で編集する ことができます。 (訳注: create-alias という機能が通常「a」キーに割り当てられており、 新しいエイリアスを作るのに役立つはずです。manual.txt を参照してください)

macro   index   \ea     "!vi ~/Mail/.alias\n:source =.alias\n"

7.4 さらなるマクロの例

次に挙げた一覧表は Roland Rosenfeld からもらったもので、デフォルトの 署名/暗号化ソフトウェアを変更したり GnuPG で PGP/MIME なしの署名を するマクロです。 (訳注: 時代遅れであることが下で指摘されていますが、今ではさらに 不適切になっている部分もあるようです。使用には注意が必要です)

# ~/Mail/.muttrc.macros
# Mutt-i 用キーボード設定ファイル
# 複写、変更、翻訳を下記のオリジナルから行ないました。
#
################################################################
# The ultimative Key-Bindings for Mutt                         #
#                                                              #
# (c) 1997-1999 Roland Rosenfeld <roland@spinnaker.rhein.de>   #
#                                                              #
# $ Id: keybind,v 1.36 1999/02/20 19:36:28 roland Exp roland $ #
################################################################
# (Mutt 用キー割り当て完全版)
#
# 使用に際しては、~/.muttrc に次の行を加えてください。
# source ~/Mail/.muttrc.macros
#

# 一般的なキー割り当て
# (ページャを除く、Mutt のあらゆるメニュー)
# 以下の三つによって、暗号化のデフォルトに選択されたソフトウェアを変更できます。

# <ESC>1 で GnuPG を使用
macro   generic \e1     ":set pgp_default_version=gpg ?pgp_default_version\n"\
"GNU-PG に切り換え"

# <ESC>2 で PGP2 を使用
macro   generic \e2     ":set pgp_default_version=pgp2 ?pgp_default_version\n"\
"PGP 2.* に切り換え" 

# <ESC>5 で PGP5 を使用
macro   generic \e5     ":set pgp_default_version=pgp5 ?pgp_default_version\n"\
"PGP 5.* に切り換え"

#MEMO: 前のマクロの終わりのところまでバックスペースしていかないよう注意して
ください。行を書いたら、次の行を続けて同じ行に書いてはいけないのです。

# index, OpMain, MENU_MAIN
# (メインメニュー)
# 次のマクロはメインメニュー (Mutt を起動したときに出てくる画面) からのみ
# 実行されます。もしメッセージに公開鍵があれば (これはメッセージラインの
# K という文字で分かりますが) <CTRL>K キーで公開鍵を取り出せるようにします。

macro  pager   \Ck     ":set pipe_decode pgp_key_version=pgp2\n\e\ek:set pgp_key_version=pgp5\n\e\ek:set pgp_key_version=gpg\n\e\ek:set pgp_key_version=default nopipe_decode\n"\
"Extract PGP keys to PGP2, PGP 5, and GnuPG keyrings"


# pager, OpPager, MENU_PAGER
# (ページャメニュー)
# 前述のものと同じ鍵の組み合わせですし同じ動作をしますが、
# ここではページャメニューからの実行に関して設定します。

macro   pager   \e1     ":set pgp_default_version=gpg ?pgp_default_version\n"\
"GNUPG に切り換え"

macro   pager   \e2     ":set pgp_default_version=pgp2 ?pgp_default_version\n"\
"PGP 2.* に切り換え"

macro   pager   \e5     ":set pgp_default_version=pgp5 ?pgp_default_version\n"\
"PGP 5.* に切り換え"


# compose, OpCompose+OpGerneric, MENU_COMPOSE
# (コンポーズメニュー)
# 次の動作はコンポーズメニューから使われます。
# つまり、メッセージを書き終わって、送るためにそれをまず閉じてから、
# MTA に送るために「Y」キーを押すまでの間のことです。

# ここでは、「p」を押したときにメニューが出てくるようにします。
# このメニューでの選択は MENU_PGP に代入されます。これは
# メーンオプションです (暗号化と署名、ともに使います)。

bind    compose p       pgp-menu

# PGP/MIME を使えないプログラムが (特に M$ 社のものに) 多いので、
# <CTRL>P キーで「古代にしていたように」署名するようにします。
# (Application/PGP) (訳注: MIME タイプは text/plain のままです)

macro   compose \CP     "Fgpg --clearsign\ny"

# 次に、<CTRL>S を押すとデフォルトに定義した秘密鍵で PGP/MIME を使った署名を
# するようにします。同じことが「P」で出るメニューからできるので、このマクロ
# は必要ではありませんが。

macro   compose \CS     "Fgpg --clearsign\ny^T^Uapplication/pgp; format=text; x-action=sign\n"

まだマクロを追加することもできますし、新バージョンの Mutt には、もういくつか デフォルトで設定されています。こういうオプションなどです。

この他にどんなオプションが有効なのか見るには、自分のいるメニューから ヘルプメニューに (「?」キーで) 行くべきです。


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