| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
この章は、上位階層での MIME メッセージのデコードと表示を扱いま す。
その主な目的は、最初に MIME の記事を解析してから、その解析の結 果として返される「ハンドル」のリストに基づいて、他のプログラムが処理を行 なうことができるようにすることです。
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
mm-dissect-buffer は MIME 記事の解体を担当する関数です。 マルチパートのメッセージが与えられると、メッセージを再帰的に掘り下げて構 造をたどり、そのメッセージの構造を描写する MIME ハンドルの木構 造を返します。
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Gnus はいくつかの MIME ではない添付ファイルも理解します。それ らは postscript, uuencode, binhex, yenc, shar, forward, gnatsweb, pgp, diff のようなものです。それぞれの機能は、mm-uu-configure-list に 項目を追加することによって無効にすることができます。例です。
(require 'mm-uu) (add-to-list 'mm-uu-configure-list '(pgp-signed . disabled)) |
postscriptuubinhexyencsharforwardgnatswebpgp-signedpgp-encryptedpgp-keyemacs-sourcesmm-uu-emacs-sources-regexp に合 致するグループでのみ動作します。
diffmm-uu-diff-groups-regexp に合致するグループで のみ動作します。
verbatim-marks(訳注: `#v+' と `#v-' の二行で囲まれたテキスト を MIME パートに見立てます。)
LaTeXmm-uu-tex-groups-regexp に合致する名前のグループで のみ動作します。 いくつかの MIME ではない添付は mm-uu-extract というフェー スを使って表示されます。ディフォルトではそれらのパート に MIME ボタンが付きません。K b (gnus-summary-display-buttonized) を使う か gnus-buttonized-mime-types に text/x-verbatim を加える ことによって、ボタンの表示を強制することができます。See 節 `MIME コマンド' in
(訳注: ここで唐突に text/x-verbatim のことが出てくるのは、フェー スが使われてボタンが付かない代表的なパートが verbatim-marks だか らです。)
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
MIME ハンドルは、MIME の構成要素を完全に描写するリス トです。
ハンドルの要素をアクセスするために、以下のマクロを使うことができます:
mm-handle-buffermm-handle-typeContent-Type を返します。
mm-handle-encodingContent-Transfer-Encoding を返します。
mm-handle-undisplayermm-handle-set-undisplayermm-handle-dispositionContent-Disposition (訳注: 配置指定) を返しま す。
mm-get-content-idContent-ID で参照されるハンドル (単数または複数) を返します。| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
表示し、消去し、保存するための関数です。
mm-display-partmm-remove-partmm-inlinable-pmm-automatic-display-pmm-destroy-partmm-save-partmm-pipe-partmm-interactively-view-part| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
mm-inline-media-testseval (評価) される式です。
この変数は、あるパートがインライン表示可能かどうかと、もし可能ならそのや り方を指定します。パートが現実にインライン表示されているかどうかを示すも のではありません。
mm-inlined-typesmm-automatic-displaymm-automatic-external-displaymm-keep-viewer-alive-types訳注: postscript や dvi など (変数のディフォルト値を参照のこと) のように、 読むのに時間がかかるかもしれないパートのタイプを含むリストです。一方、こ れに含まれない単純な画像のパートなどは、それが含まれていた記事の表示をや めたときに、自動的に外部ビューワーが kill されます。
mm-attachment-override-typesmm-discouraged-alternatives
(setq mm-discouraged-alternatives
'("text/html" "text/richtext")
mm-automatic-display
(remove "text/html" mm-automatic-display))
|
さらに、これに "image/.*" を追加することは役に立つでしょう。 Spammers は `multipart/alternative' メッセージの優先される側で画像 を使っていることがあるので、あなたはそれ以外のパートがあることに気が付か ないかもしれません。gnus-buttonized-mime-types も参照してくださ い (see 節 `MIME コマンド' in
gnus-buttonized-mime-types に "multipart/alternative" を追 加した後では、見たい側を手で選ぶことができます。例えば、このように設定す るれば良いでしょう:
(setq gnus-buttonized-mime-types
'("multipart/alternative" "multipart/signed")
mm-discouraged-alternatives
'("text/html" "image/.*"))
|
この場合、Gnus はそのような種類の spam メッセージのために、以下のように ラジオボタンを表示するでしょう:
1. (*) multipart/alternative ( ) image/gif 2. (*) text/plain ( ) text/html |
mm-inline-large-imagest に設定すると、この検査をさせなくして、ライブラリーにすべての 画像をサイズに関わりなくインラインで表示させます。もしこの変数 を resize にすると、Emacs に画像のサイズを変更する能力があれば、 画像はウィンドウに合うようにサイズが変更されて表示されます。
mm-inline-large-images-proportionmm-inline-override-typesmm-inlined-types は、例えばすべての `text/.*' パートをインラ インで表示することを指示するような正規表現を含んでいるかもしれません。一 方、インライン表示が可能だけれども添付ファイルとして扱いたいタイプがある ならば、そのタイプに合致する正規表現のリストをこの変数に設定することによっ て、それを実現することができます。例え ば mm-inlined-types が `text/.*' を含んでいるものとすると、 この変数に `text/html' を含ませることによって、`text/html' パー トは添付ファイルとして扱われるようになります。
mm-text-html-renderergnus-article-html, w3, w3m(1), links, lynx, w3m-standalone または html2text のシンボル群 のうちの一つを指定することによって選択します。もし nil だったら、 外部ビューワーを使います。さらに関数 (引数として MIME ハンドル が与えられて呼ばれる) を設定することもできます。
mm-inline-text-html-with-imagesnil に設定する (それがディフォルトです) ことによっ て、あなたの個人情報が流出するのを防ぐことができます。今のとこ ろ Emacs/W3 はこれを無視します。Emacs-w3m では、これが nil であっ ても、画像が埋め込まれた場所で t 命令を使うことによって画像を表示 することができます。(2)
mm-w3m-safe-url-regexpnil にすると、すべての URL が安全だと判 断します。Gnus では、これは gnus-safe-html-newsgroups の値に応じ て上書きされます。See 節 `いろいろのいろいろ' in
mm-inline-text-html-with-w3m-keymapnil に設定することによって、インライン表示され た text/html パートで emacs-w3m の命令キーを使うことができます。ディフォ ルト値は t です。
mm-external-terminal-programmm-enable-externalt だったら、定義されているすべての外部の MIME ハンドラー が使われます。nil にすると、ファイルはディスクに保存されま す (mailcap-save-binary-file)。これが ask というシンボルだっ たら、外部の MIME ハンドラーが起動される前に尋ねられるでしょう。
Mailcap (see 節 4.12 mailcap) を介して添付ファイルの表示を始めると、安全な ビューワーを最も安全なオプションで使うことを試みます (添付ファイルをディ スクに保存して、異なる手段 (コマンドラインかダブルクリック) でその表示を 始める場合とは違います)。とにかく、必ずどんな外部プログラムも使わないよ うにしたいのであれば、この変数を nil か ask に設定してくだ さい。
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
mm-default-directorynil だったら default-directory を使います。
mm-tmp-directorymm-file-name-rewrite-functionsmm-file-name-delete-controlmm-file-name-delete-gotchasmm-file-name-delete-whitespacemm-file-name-trim-whitespacemm-file-name-collapse-whitespacemm-file-name-replace-whitespacemm-file-name-replace-whitespace 変数に設定してください。Emacs 標準の関数である capitalize, downcase, upcase および upcase-initials も役に立つことがあるかもしれ ません。
mm-path-name-rewrite-functions| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
これは text/enriched パートをインライン表示するビューワーの例です:
(defun mm-display-enriched-inline (handle)
(let (text)
(with-temp-buffer
(mm-insert-part handle)
(save-window-excursion
(enriched-decode (point-min) (point-max))
(setq text (buffer-string))))
(mm-insert-inline handle text)))
|
この関数がパラメーターとして MIME ハンドルを受け取ることがわか りますね。それは一時バッファーに作業場所を移し、パートのテキストを挿入し、 そのテキストに何かの処理を施し、結果を覚えておいて、関数が呼ばれたときの バッファーに戻ってその結果を挿入します。
ここにある二つの重要なお助け関数 は mm-insert-part と mm-insert-inline です。最初の関数は、 ハンドルのテキストを現在のバッファーに挿入します。これは文字セットおよび エンコーディグ (content transfer decoding) を取り扱います。二番目の関数 は、挿入しろと言ったどんなテキストでも単に挿入しますが、テキストを手軽な 方法で「表示されなくする」(undisplayed にする) ことができるような諸設定 をも行ないます。
| [ << ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |