# 12.9 `mimify` -- 電子メイルメッセージの MIME 処理

リリース 2.3 以降で撤廃された仕様です。 `mimify` モジュールを使うよりも `email` パッケージを使うべきです。このモジュールは 以前のバージョンとの互換性のために保守されているにすぎません。

`mimify` モジュールでは電子メイルメッセージから MIME へ、 および MIME から電子メイルメッセージへの変換を行うための二つの関数を 定義しています。電子メイルメッセージは単なるメッセージでも、 MIME 形式でもかまいません。各パートは個別に扱われます。 メッセージ (の一部) の MIME 化 (mimify) の際、7 ビット ASCII 文字を使って表現できない何らかの文字が含まれていた場合、メッセージの quoted-printable への符号化が伴います。メッセージが送信される前に 編集しなければならない場合、MIME 化および非 MIME 化は特に便利です。 典型的な使用法は以下のようになります:

    unmimify message
    edit message
    mimify message
    send message

モジュールでは以下のユーザから呼び出し可能な関数と、ユーザが設定可能な 変数を定義しています:

`mimify`( | infile, outfile)

  infile を outfile にコピーします。その際、パートを quoted-printable に変換し、必要なら MIME メイルヘッダを追加します。 infile および outfile はファイルオブジェクト (実際には、`readline()` メソッドを持つ (infile) か、 `write` (outfile) メソッドを持つあらゆるオブジェクト) か、ファイル名を指す文字列を指定することができます。 infile および outfile が両方とも文字列の場合、 同じ値にすることができます。

`unmimify`( | infile, outfile[, decode_base64])

  infile を outfile にコピーします。その際、全ての quoted-printable 化されたパートを復号化します。infile および outfile はファイルオブジェクト (実際には、`readline()` メソッドを持つ (infile) か、 `write` (outfile) メソッドを持つあらゆるオブジェクト) か、ファイル名を指す文字列を指定することができます。 decode_base64 引数が与えられており、その値が真である場合、 base64 符号で符号化されているパートも同様に復号化されます。

`mime_decode_header`( | line)

  line 内の符号化されたヘッダ行が復号化されたものを 返します。ISO 8859-1 文字セット (Latin-1) だけをサポートします。

`mime_encode_header`( | line)

  line 内のヘッダ行が MIME 符号化されたものを返します。

`MAXLEN`
  標準では、非 ASCII 文字 (8 ビット目がセットされている文字) を含む か、`MAXLEN` 文字 (標準の値は 200 です) よりも長い 部分は quoted-printable 形式で符号化されます。

`CHARSET`
  文字セットがメイルヘッダで指定されていない場合指定しなければ なりません。使われている文字セットを表す文字列は `CHARSET` に記憶されます。標準の値は ISO-8859-1 (Latin1 (latin-one) としても 知られています)。

このモジュールはコマンドラインから利用することもできます。 以下のような使用法:

    mimify.py -e [-l length] [infile [outfile]]
    mimify.py -d [-b] [infile [outfile]]

で、それぞれ符号化 (mimify) および復号化 (unmimify) を行います。 標準の設定では infile は標準入力で、putfile は標準出力 です。入出力に同じファイルを指定することもできます。

符号化の際に -l オプションを与えた場合、length で 指定した長さより長い行があれば、その長さに含まれる部分が符号化 されます。

復号化の際に -b オプションが与えられていれば、base64 パート も同様に復号化されます。

参考資料:

`quopri`モジュール:
  MIME quoted-printable 形式ファイルのエンコード およびデコード。.