目次

前のトピックへ

19.5. mhlib — MH のメールボックスへのアクセス機構

次のトピックへ

19.7. mimetypes — ファイル名を MIME 型へマップする

このページ

19.6. mimetools — MIME メッセージを解析するためのツール

バージョン 2.3 で撤廃: email パッケージを mimetools モジュールより優先して使うべきです。このモジュールは、下位互換性維持のためにのみ存在しています。Python 3.x では削除されています。

このモジュールは、 rfc822 モジュールの Message クラスのサブクラスと、マルチパート MIME や符合化メッセージの操作に役に立つ多くのユーティリティ関数を定義しています。

これには以下の項目が定義されています:

class mimetools.Message(fp[, seekable])

Message クラスの新しいインスタンスを返します。 これは、 rfc822.Message クラスのサブクラスで、いくつかの追加のメソッドがあります(以下を参照のこと)。 seekable 引数は、 rfc822.Message のものと同じ意味を持ちます。

mimetools.choose_boundary()

パートの境界として使うことができる見込みが高いユニークな文字列を返します。 その文字列は、 'hostipaddr.uid.pid.timestamp.random' の形をしています。

mimetools.decode(input, output, encoding)

オープンしたファイルオブジェクト input から、許される MIME encoding を使って符号化されたデータを読んで、オープンされたファイルオブジェクト output に復号化されたデータを書きます。 encoding に許される値は、 'base64', 'quoted-printable', 'uuencode', 'x-uuencode', 'uue', 'x-uue', '7bit', および '8bit' です。 '7bit' あるいは '8bit' で符号化されたメッセージを復号化しても何も効果がありません。 入力が出力に単純にコピーされるだけです。

mimetools.encode(input, output, encoding)

オープンしたファイルオブジェクト input からデータを読んで、 それを許される MIME encoding を使って符号化して、オープンしたファイルオブジェクト output に書きます。 encoding に許される値は、 decode() のものと同じです。

mimetools.copyliteral(input, output)

オープンしたファイル input から行を EOF まで読んで、それらをオープンしたファイル output に書きます。

mimetools.copybinary(input, output)

オープンしたファイル input からブロックを EOF まで読んで、それらをオープンしたファイル output に書きます。 ブロックの大きさは現在 8192 に固定されています。

参考

Module email
圧縮電子メール操作パッケージ; mimetools モジュールに委譲。
Module rfc822
mimetools.Message のベースクラスを提供する。
Module multifile
MIME データのような、別個のパーツを含むファイルの読み込みをサポート。
http://faqs.cs.uu.nl/na-dir/mail/mime-faq/.html
MIME でよく訊ねられる質問。MIMEの概要に関しては、この文書の Part 1 の質問 1.1 への答えを見ること。

19.6.1. Message オブジェクトの追加メソッド

Message クラスは、 rfc822.Message メソッドに加えて、以下のメソッドを定義しています:

Message.getplist()

Content-Type ヘッダのパラメータリストを返します。 これは文字列のリストです。 key=value の形のパラメータに対しては、key は小文字に変換されますが、value は変換されません。 たとえば、もしメッセージに、ヘッダ Content-type: text/html; spam=1; Spam=2; Spam が含まれていれば、 getplist() は、Python リスト ['spam=1', 'spam=2', 'Spam'] を返すでしょう。

Message.getparam(name)

与えられた name の( name=value の形に対して getplist() が返す) 第1パラメータの value を返します。 もし value が、’<...>‘ あるいは ‘"..."‘ のように引用符で囲まれていれば、これらは除去されます。

Message.getencoding()

Content-Transfer-Encoding メッセージヘッダで指定された符号化方式を返します。もしそのようなヘッダが存在しなければ、'7bit' を返します。符号化方式文字列は小文字に変換されます。

Message.gettype()

Content-Type ヘッダで指定された (type/subtype の形での) メッセージ型を返します。 もしそのようなヘッダが存在しなければ、 'text/plain' を返します。 型文字列は小文字に変換されます。

Message.getmaintype()

Content-Type ヘッダで指定された主要型を返します。 もしそのようなヘッダが存在しなければ、 'text' を返します。 主要型文字列は小文字に変換されます。

Message.getsubtype()

Content-Type ヘッダで指定された下位型を返します。 もしそのようなヘッダが存在しなければ、 'plain' を返します。 下位型文字列は小文字に変換されます。