[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3. MIME message の編集

MIME-Edit は GNU Emacs で動作する汎用的な MIME composer です。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1 MIME message を編集するための minor-mode

mime-edit-mode は MIME message を作成するための minor-mode です。 この mode では tag を使ってさまざまな種類の data を表現し、さま ざまな種類の data からなる複数の部分からなる message を編集することを可 能にしています。

tag には

の2つがあります。

single-part tag は single part を表現するための tag で、

 
        --[[TYPE/SUBTYPE;PARAMETERS][ENCODING]
        OPTIONAL-FIELDS]

というような形をしています。

TYPE/SUBTYPE および PARAMETERS は Content-Type ((mime-ja)Content-Type) 欄の type/subtype および parameters を表し ます。TYPE/SUBTYPE は必須であり、PARAMETERS は省略可です。

ENCODING は Content-Transfer-Encoding ((mime-ja)Content-Transfer-Encoding) 欄を表します。これも省略可で す。

OPTIONAL-FIELDS は Content-Type, Content-Transfer-Encoding 以外の field を書くための部分で、省略可です。

multi-part tag は multi part ((mime-ja)multipart) を表現するための tag で、

 
        --<<TYPE>>-@{

という形の multi-part 開始 tag と呼ばれる multi part の開始を示す tag と

 
        --@}-<<TYPE>>

という形の multi-part 終了 tag と呼ばれる multi part の終了を示す tag があります。

また、multi-part 開始 tag と multi-part 終了 tag で囲まれた部分を enclosure と呼びます。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.2 single-part に対する操作

single-part を作るための操作には以下のようなものがあります。

<C-c C-x C-t>

text part を表す single-part tag を挿入します。

<C-c C-x C-i>

file を MIME part として添付します。前に C-u を付けた場合、常に media-type, subtype 等を聞いて来ます。(cf. @ref{tag specification for inserted file})

<C-c C-x C-e>

external part を挿入します。

<C-c C-x C-v>

C-g が押されるまで録音を行い、音声 part を挿入します。(使 用できない場合があります)

<C-c C-x C-y>

現在表示中の (mail or news) message を挿入します。(実際の動作は使用し ている MUA に依存します)

<C-c C-x C-m>

mail message を挿入します。

<C-c C-x C-w>, <C-c C-x C-s>

signature を挿入します。

<C-c C-x C-k>

PGP (PGP) の公開鍵を挿入します。

<C-c C-x t>

任意の single-part tag を挿入します。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.3 enclosure に対する操作

enclosure を作るための操作としては以下のようなものがあります。

<C-c C-m C-a>

指定した region を multipart/alternative として囲みます。

<C-c C-x C-p>

指定した region を multipart/parallel として囲みます。

<C-c C-x C-m>

指定した region を multipart/mixed として囲みます。

<C-c C-x C-d>

指定した region を multipart/digest として囲みます。

<C-c C-x C-s>

指定した region に電子署名を行います。(cf. PGP)

<C-c C-x C-e>

指定した region を暗号化します。(cf. PGP)

<C-c C-x C-q>

指定した region 内の tag を無効にし、その tag を文字列として利用できる ようにします。(現在の版ではうまく働かないことがあります。また、電子署 名との併用に関しても不完全です)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.4 mime-edit-mode におけるその他の操作

mime-edit-mode におけるその他の操作を説明します。

<C-c C-c>

編集中の message を送信します。

<C-c C-x p>

編集中の message を preview します。(cf. MIME message の閲覧)

<C-c C-x C-z>

編集中の message を送信することなく、mime-edit-mode を終了します。

<C-c C-x />

大きな message を送信する場合に message/partial 形式に自動分割可能とす るかどうかを決めます。

<C-c C-x 7>

transfer level (transfer level) を 7bit ((mime-ja)7bit) にし ます。

<C-c C-x 8>

transfer level (transfer level) を 8bit ((mime-ja)8bit) にし ます。

<C-c C-x v>

message 全体を電子署名するかどうかを決めます。(cf. PGP)

<C-c C-x h>

message 全体を暗号化するかどうかを決めます。(cf. PGP)

<C-c C-x ?>

help message を表示します。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.5 挿入される file に対する tag の決定

C-c C-x C-i (mime-edit-insert-file) を実行した時、挿入され る file に対する media-type や encoding などの tag の情報は変数 mime-file-types によって file 名から推測されます。

前に C-u を付けた時、および、適当な値が見付からなかった場合、user に対して値の入力を促します。(前に C-u を付けた時、推測された値が 既定値として用いられます)

file 名に対する既定値を変えたい場合は変数 mime-file-types を設定して下さい。

Variable: mime-file-types

挿入される file の file 名に対する tag の既定値を与える。

この変数は

 
	(FILE_PAT TYPE SUBTYPE PARAMS ENCODING
	 DISPOSITION_TYPE DISPOSITION_PARAMS)

という list の list で、各要素は以下の通りである:

FILE_PAT

file 名を表す正規表現

TYPE

media type

SUBTYPE

media subtype

PARAMS

Content-Type field の parameter

ENCODING

Content-Transfer-Encoding

DISPOSITION_TYPE

disposition-type

DISPOSITION_PARAMS

Content-Disposition field の parameter

設定例: ‘*.rtf’ に対する media type を application/rtf に する場合

 
(eval-after-load
    "mime-edit"
  '(set-alist 'mime-file-types
	      "\\.rtf$"
	      '("application" "rtf" nil nil
		"attachment" (("filename" . file)))
	      ))

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.6 transfer level

message に挿入する data は 7bit ((mime-ja)7bit) ないし 8bit ((mime-ja)8bit) もしくは binary ((mime-ja)binary) で表現する ことができます。

よって、7bit しか通さない MTA ((mime-ja)MTA) を経由する場合、7bit の data はそのままで送れますが、8bit や binary の data は 7bit に変換し なければなりません。

同様に、8bit しか通さない MTA を経由する場合、7bit や 8bit の data はそ のままで送れますが、binary の data は 7bit か 8bit に変換しなければなり ません。

[Memo]

EBCDIC しか通さない MTA を経由する場合、7bit の data も base64 等で変 換しないと送れませんが、私は EBCDIC のことまでは知りません。(^_^;

同様に、制御文字を通さない MTA のことや code 変換を行なう MTA も消えてな くなって欲しいです。(^_^;

binary も通す MTA も存在するんでしょうが、今のところあまり一般的とはいえ ないでしょう。

transfer level というのはどの範囲の data まで送れるか ということを表すものです。mime-edit は mime-transfer-level という変数を持っており、これで transfer level を表現します。

Variable: mime-transfer-level

transfer level を表す。

ある data の transfer level がこの値を越える場合、7bit data への変換が行 われる。

現在のところ、7 か 8 が有効である。既定値は 7 である。

EBCDIC を 5, ASCII printable のみを 6, binary を 9 とすることを計画して いるが、実装の予定はない。

[Memo]

transfer level は message header (@ref{header}) には関係しない。MIME は body において、8bit の data を使えるように STD 11 ((mime-ja)STD 11) を拡張しているが、message header では us-ascii ((mime-ja)us-ascii) のみを用いることを求めている。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.7 Splitting

Variable: mime-edit-split-message

Non-nil ならば大きなメッセージを分割して送信します。

Variable: mime-edit-message-default-max-lines

メッセージの最大行数のデフォルト値です。

Variable: mime-edit-message-max-lines-alist

メジャーモード対メッセージの最大行数から成る連想リストです。

メジャーモードがここで指定されてない場合には mime-edit-message-default-max-lines を用います。

Variable: mime-edit-split-blind-field-regexp

分割送信の際に無視されるフィールド名にマッチする正規表現です。


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Yasutaka SHINDOH on May 11, 2011 using texi2html 1.82.