以下はテキスト解析の際に適用されるいくつかの規約です:
- ほとんどの 非multipart形式のメッセージは単一の文字列ペイロードをもつ
単一のメッセージオブジェクトとして解析されます。このオブジェクトは
is_multipart() に対して
False
を返します。このオブジェクトに
対する get_payload() メソッドは文字列オブジェクトを返します。
- multipart形式のメッセージはすべてメッセージ内
コンポーネント (sub-message object) のリストとして解析されます。
外側のコンテナメッセージオブジェクトは is_multipart() に対して
True
を返し、このオブジェクトに対する get_payload() メソッドは
Message subpart のリストを返します。
- message/* の Content-Type をもつほどんどのメッセージ
(例: message/delivery-status や message/rfc822 など) も
コンテナメッセージオブジェクトとして解析されますが、
ペイロードのリストの長さは 1 になります。このオブジェクトは
is_multipart() メソッドに対して
True
を返し、
リスト内にあるひとつだけの要素がメッセージ内のコンポーネントオブジェクトになります。
- いくつかの標準的でないメッセージは、multipart の使い方に
統一がとれていない場合があります。このようなメッセージは
ヘッダに multipart を指定しているものの、
その is_multipart() メソッドは
False
を返すことがあります。
もしこのようなメッセージが FeedParser によって解析されると、
その defects 属性のリスト中には MultipartInvariantViolationDefect クラスの
インスタンスが現れます。詳しい情報については email.Errors を
参照してください。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。