This file documents MIME-View, a MIME Viewer for GNU Emacs.
GNU Emacs 用の MIME Viewer である MIME-View について説明します。
MIME-View は GNU Emacs で動作する汎用的な MIME viewer です。
MIME-View は MIME message を閲覧するための利用者界面 (user interface) の核であり、この上で presentation-method と呼ばれる表示を作るプログラム を動かしたり、acting-method と呼ばれる entity の処理プログラムを動かす ことが可能で、さまざまな種類の entity を扱う事ができるようになっています。
Internet の電子書簡・ネットニュースなどの書面 (message) の表現形式は STD 11 に基づいています。STD 11 の書面本体 (message body) は行を唯一の 構造とする簡易文面 (plain text) であり、文字符号も us-ascii と定められ ています。実際には、文字符号を us-ascii の代わりにその言語圏で用いられ る文字符号とした『地域化された STD 11』書面も用いられてきましたが、こ の場合も書面の文字符号は1つです。このため、利用者界面 (Message User Agent) は、しばしば、byte 列 = us-ascii 文字列、ないしは、byte 列 = そ の言語圏で用いる文字符号の文字列のように見倣してきました。
しかしながら、MIME では書面は entity を単位とする木構造になり、また、 1つの書面で複数の文字符号を用いることができます。また、entity の内容 は文面や絵のような単純に表示可能なものだけでなく、音声や動画などの一定 時間再生されるようなものや特定のアプリケーションのデータやプログラムの ソース、あるいは、ftp や mail service の利用法や URL といった形で表さ れた外部参照などのさまざまなものが考えらます。このため、表示だけを考え ていた STD 11 における利用者界面の単純な延長では MIME の全ての機能を扱 うことはできません。つまり、MIME の形式に合わせて復号するだけでは不十 分であり、利用者との対話的な再生処理を考慮する必要があります。MIME 書 面の形式は自動処理がしやすく設計されていますが、MIME 書面に含まれる内 容の中にはセキュリティー上の問題から自動処理をするべきでないものがあり、 こういったものの再生に関しては利用者の判断を仰ぐように設計されるべきで しょう。結局、MIME 書面を扱うためには STD 11 および MIME の構文で記述 されたメッセージの情報交換用表現とその解釈結果である表示画面や再生等の 処理を区別して考える必要があります。また、利用者との対話的な再生処理が 必要です。
このため、MIME-View は1つの書面に対して、情報交換用表現を格納する mime-raw-buffer と表示用表現を格納する mime-preview-buffer の2つの buffer を用います。
MIME-View は mime-preview-buffer に対して mime-view-mode という MIME message を閲覧するための mode を提供します。利用者はここで各 entity に 対して操作を行うことができます。
mime-view-mode では各 entity に対して
以下に、表示例を示します。
標準では
最初の数字は message 中のこの entity の位置を節番号のように表したもの
で、
2番目の文字列は表題を表します。この情報は、
3番目の括弧の中の情報はその entity の media-type/subtype を表します。
非 MIME entity の場合、
この entity-button は entity の内容を象徴する icon のような役割を果た
します。例えば、
また、mouse 操作が可能な場合、entity-button を第2ボタン(3 button
mouse の場合、中央のボタン)で押せば、同様にその絵が表示されます。
これもひねりが足りないですが、まあ、そういうもんです。
とはいえ、実際には少しひねってます。
text entity の場合は charset に応じて code 変換したりしますし、XEmacs
では image entity を変換しないといけないし。
詳しくはまた後で。
mime-preview-buffer には以下の機能があります。
content-button を押せば、その part が再生される(*2)
URL-button を押せば、その WWW browser が起動される
(*1) MUA で mime-view の設定をしていない場合、Summary mode には戻りま
せん。
(*2) 実際の動作は対応する method に依ります。
entity-button
nil
が表示されます。
entity-header
entity-body
mime-preview-buffer での操作
概念索引
関数索引
変数索引