18.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 に固定されています。
参考
emailモジュール包括的な e-mail 処理パッケージです。
mimetoolsに取って代わります。rfc822モジュールmimetools.Messageのベースクラスを提供しています。multifileモジュールMIME データのような、別個のパーツを含むファイルの読み込みをサポート。
- http://faqs.cs.uu.nl/na-dir/mail/mime-faq/.html
 MIME でよく訊ねられる質問と回答。MIMEの概要に関しては、この文書の Part 1 の質問 1.1 への回答参照。
18.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'を返します。サブタイプ文字列は小文字に変換されます。
