6. その他

6.1. (付録 A) PGP の設定

GnuPG を使った暗号化メッセイジのやりとりのために必要な設定について 概説しましょう。ただ、 /usr/share/config-sample/mutt/dot.mutt.gpg を見れば大体の内容はわかると思います。

もし自分の鍵を持っていなければ、まず生成します。

$ gpg --gen-key

で質問に答えていくだけです。 鍵の ID を覚えておきましょう。 そして、できれば ID ではなくフィンガープリント (指紋) を muttrc 中の pgp_sign_as に指定しましょう。

公開鍵は鍵サーバに登録しておくと便利です。

$ gpg --send-keys 0xDEADBEEF

のようにして、自分の ID またはフィンガープリントを指定して登録しておきます。

署名してあるメッセイジを受け取った場合には、鍵サーバから その人の公開鍵を取得してメッセイジを検証できます。 muttrcpgp_getkeys_command は設定しないでおくのが良いでしょう。 自動取得したい場合には GnuPG を使うことをお勧めします。 ~/.gnupg/gpg.conf の中に

keyserver-options auto-key-retrieve

という記述があれば、自動で鍵サーバから取得してくれます。

また、まだあまり安定していませんが、newpg パケジに含まれる gpg-agent を使うと パスワードを何度も入力する必要がなくなります。 Mutt もパスワードを覚えてくれるのですが、 quit すると当然忘れてしまいます。 こうした点で、gpg-agent が便利だと思う人もいるはずです。 gpg-agent を使うには、 例えば ~/.xinit.d/hook

eval `gpg-agent --daemon`

としておきます。すると X の同一セッションの間は gpg-agent が有効になるので、 あらゆるアプリケイションからの GnuPG パスワード入力が 統一して管理されます。GnuPG が gpg-agent を使うよう、~/.gnupg/gpg.conf

use-agent

と書いておきましょう。

[メモ] メモ

ただ、依然として Mutt もパスワードを尋ねてきますので、ちと面倒です。 pinentry にだけ答えればいいので、 Mutt の方はリターンだけ押すなどしてシノギましょう。 mutt-dev で問題提起されたので、そのうち 設定で Mutt への入力を回避できるようになるはずです。

あとはどういう場合に署名したり暗号化したりするか[16]の設定などです。 /usr/share/config-sample/mutt/dot.mutt.gpg/usr/share/doc/mutt-*/manual.txt などを参照して、 好みに合わせて設定しましょう。

6.2. (付録 B) X-Face について

slrnface パッチの当たっている Mutt は、 ~/.muttrc

set xface=yes

と設定してあると X-Face: ヘッダを解釈して X 端末上で表示してくれますが、 自分が送信するメイルに X-Face を付けるのには、ちょっとしたコツがあります。

まず 48x48 の白黒画像 (階調なし、正真正銘の白黒) を用意します。これを

$ convert face.jpg face.xbm
$ xbm2ikon < face.xbm > face.ikon
$ compface face.ikon face.data

とすると、生データの X-Face ができます。 しかし、~/.muttrc

my_hdr X-Face: `cat face.data`

と書いても、まずうまくいきません。これは X-Face が BASE64 等と違い、 「`」でもなんでも使ってしまうためです。また、改行や空白も邪魔です。そこで、

$ cat face.data | tr -d ' \n' | sed -e 's/\([^0-9a-zA-Z]\)/\\\1/g' > face.mutt

というように加工してやってから、そちら (ここでは face.mutt) を使用します。 もちろん、

my_hdr X-Face: `cat face.data | tr -d ' \n' | sed -e 's/\([^0-9a-zA-Z]\)/\\\1/g'`

でも良いはずです。

6.3. (付録 C) HTML 等の自動表示

この節の大部分は日本語 Mutt の長老であられる菊谷 (poo) 師からの投稿に 基づいております。

html オンリーのメイルが来ると、default 設定の Mutt は 冷たく「サポートしてないよ」と言って表示もしてくれないので [17]、 次の設定をします。 まず ~/.mailcap

text/html; w3m -dump %s ; nametemplate=%s.html ; copiousoutput

# 参考までに、ちょっと違うオプションで UTF-8 表示する例
# text/html; w3m-m17n -dump -I %{charset} -O UTF-8 -T text/html ; copiousoutput

と書いておきます。そして ~/.muttrc には

# mailcap の検索順序を変えたければここを調整する
# (Mutt 専用の mailcap を ~/.mutt 以下に置きたいときなど)
# mailcap_path="~/.mutt/mailcap:~/.mailcap:/etc/mailcap"

# 明示したものを自動表示
auto_view text/html

# copiousoutput ならなんでも自動表示する場合
# set implicit_autoview=yes

を書いておきます。 これで text/html が pager で読めるようになるはずです。

[メモ] メモ

manual.txt の MIME Autoview[18] の項目にも、 同様の例が載っています。 その前後には mailcap に関する詳細情報もあるので、 熟読しておきましょう。

6.4. (付録 D) 複数の From を切り換える

この節も、菊谷師からの投稿を少し編集したものです。

特定の宛先[19]にだけ 特定の From で出したいときは、send-hook を使います。 次の例は、普段 real というアドレスを使い、 Momonga のリストにだけ lists というアドレスで送る設定です。

# デフォルト
send-hook . 'my_hdr From: "Real Name" real@exact.server'
send-hook . 'unmy_hdr Sender:'

# {To,Cc}: *.{ja,en}@momonga-linux.org にのみ適用
send-hook '~C"\.(ja|en)@momonga-linux\.org"' 'my_hdr From: "A. N. Other" <lists@host.domain>'
send-hook '~C"\.(ja|en)@momonga-linux\.org"' 'my_hdr Sender: real@exact.server'

# 複数のアドレスを自分のアドレスとみなす
set alternates="(^real@exact\.server$|^lists@host\.domain$)"

[メモ] メモ

Sender を付けないと単なる From の詐称になってしまい、よろしくありません。

[メモ] メモ

manual.txt の Using Hooks[20] にも似たような例があります。



[16] pgp_autosign, pgp_autoencrypt, crypt_replyencrypt, crypt_replysign, crypt_replysignencrypted

[17] multipart/alternative があれば大丈夫だが

[18] HTML 版の id は "auto_view"

[19] 特にメーリングリスト

[20] HTML における id は "hooks"