[ < ] | [ > ] | [ << ] | [ 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)) |
postscript
uu
binhex
yenc
shar
forward
gnatsweb
pgp-signed
pgp-encrypted
pgp-key
emacs-sources
mm-uu-emacs-sources-regexp
に合 致するグループでのみ動作します。
diff
mm-uu-diff-groups-regexp
に合致するグループで のみ動作します。
verbatim-marks
(訳注: `#v+' と `#v-' の二行で囲まれたテキスト を MIME パートに見立てます。)
LaTeX
mm-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-buffer
mm-handle-type
Content-Type
を返します。
mm-handle-encoding
Content-Transfer-Encoding
を返します。
mm-handle-undisplayer
mm-handle-set-undisplayer
mm-handle-disposition
Content-Disposition
(訳注: 配置指定) を返しま す。
mm-get-content-id
Content-ID
で参照されるハンドル (単数または複数) を返します。[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
表示し、消去し、保存するための関数です。
mm-display-part
mm-remove-part
mm-inlinable-p
mm-automatic-display-p
mm-destroy-part
mm-save-part
mm-pipe-part
mm-interactively-view-part
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
mm-inline-media-tests
eval
(評価) される式です。
この変数は、あるパートがインライン表示可能かどうかと、もし可能ならそのや り方を指定します。パートが現実にインライン表示されているかどうかを示すも のではありません。
mm-inlined-types
mm-automatic-display
mm-automatic-external-display
mm-keep-viewer-alive-types
訳注: postscript や dvi など (変数のディフォルト値を参照のこと) のように、 読むのに時間がかかるかもしれないパートのタイプを含むリストです。一方、こ れに含まれない単純な画像のパートなどは、それが含まれていた記事の表示をや めたときに、自動的に外部ビューワーが kill されます。
mm-attachment-override-types
mm-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-images
t
に設定すると、この検査をさせなくして、ライブラリーにすべての 画像をサイズに関わりなくインラインで表示させます。もしこの変数 を resize
にすると、Emacs に画像のサイズを変更する能力があれば、 画像はウィンドウに合うようにサイズが変更されて表示されます。
mm-inline-large-images-proportion
mm-inline-override-types
mm-inlined-types
は、例えばすべての `text/.*' パートをインラ インで表示することを指示するような正規表現を含んでいるかもしれません。一 方、インライン表示が可能だけれども添付ファイルとして扱いたいタイプがある ならば、そのタイプに合致する正規表現のリストをこの変数に設定することによっ て、それを実現することができます。例え ば mm-inlined-types
が `text/.*' を含んでいるものとすると、 この変数に `text/html' を含ませることによって、`text/html' パー トは添付ファイルとして扱われるようになります。
mm-text-html-renderer
gnus-article-html
, w3
, w3m
(1), links
, lynx
, w3m-standalone
または html2text
のシンボル群 のうちの一つを指定することによって選択します。もし nil
だったら、 外部ビューワーを使います。さらに関数 (引数として MIME ハンドル が与えられて呼ばれる) を設定することもできます。
mm-inline-text-html-with-images
nil
に設定する (それがディフォルトです) ことによっ て、あなたの個人情報が流出するのを防ぐことができます。今のとこ ろ Emacs/W3 はこれを無視します。Emacs-w3m では、これが nil
であっ ても、画像が埋め込まれた場所で t 命令を使うことによって画像を表示 することができます。(2)
mm-w3m-safe-url-regexp
nil
にすると、すべての URL が安全だと判 断します。Gnus では、これは gnus-safe-html-newsgroups
の値に応じ て上書きされます。See 節 `いろいろのいろいろ' in
mm-inline-text-html-with-w3m-keymap
nil
に設定することによって、インライン表示され た text/html パートで emacs-w3m の命令キーを使うことができます。ディフォ ルト値は t
です。
mm-external-terminal-program
mm-enable-external
t
だったら、定義されているすべての外部の MIME ハンドラー が使われます。nil
にすると、ファイルはディスクに保存されま す (mailcap-save-binary-file
)。これが ask
というシンボルだっ たら、外部の MIME ハンドラーが起動される前に尋ねられるでしょう。
Mailcap (see 節 4.12 mailcap) を介して添付ファイルの表示を始めると、安全な ビューワーを最も安全なオプションで使うことを試みます (添付ファイルをディ スクに保存して、異なる手段 (コマンドラインかダブルクリック) でその表示を 始める場合とは違います)。とにかく、必ずどんな外部プログラムも使わないよ うにしたいのであれば、この変数を nil
か ask
に設定してくだ さい。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
mm-default-directory
nil
だったら default-directory
を使います。
mm-tmp-directory
mm-file-name-rewrite-functions
mm-file-name-delete-control
mm-file-name-delete-gotchas
mm-file-name-delete-whitespace
mm-file-name-trim-whitespace
mm-file-name-collapse-whitespace
mm-file-name-replace-whitespace
mm-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 にする) ことができるような諸設定 をも行ないます。
[ << ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |