18.1.8. email.errors:例外クラスと欠陥クラス—Pythonドキュメント
18.1.8。 email.errors :例外クラスと欠陥クラス
email.errors モジュールでは、次の例外クラスが定義されています。
- exception email.errors.MessageError
- これは、 email パッケージが発生する可能性のあるすべての例外の基本クラスです。 これは、標準の
Exception
クラスから派生しており、追加のメソッドを定義していません。
- exception email.errors.MessageParseError
- これは、 Parser クラスによって発生する例外の基本クラスです。 MessageError から派生しています。
- exception email.errors.HeaderParseError
メッセージの RFC 2822 ヘッダーを解析するときに、いくつかのエラー条件下で発生するこのクラスは、 MessageParseError から派生します。 Parser.parse または Parser.parsestr メソッドから発生させることができます。
発生する可能性のある状況には、メッセージの最初の RFC 2822 ヘッダーの後のエンベロープヘッダーの検索、最初の RFCの前の継続行の検索などがあります。 2822 ヘッダーが見つかりました。または、ヘッダー内にヘッダーでも継続行でもない行が見つかりました。
- exception email.errors.BoundaryError
メッセージの RFC 2822 ヘッダーを解析するときに、いくつかのエラー条件下で発生するこのクラスは、 MessageParseError から派生します。 Parser.parse または Parser.parsestr メソッドから発生させることができます。
厳密な解析が使用されている場合、 multipart / * メッセージで開始境界または終了境界を見つけることができないなど、発生する可能性のある状況があります。
- exception email.errors.MultipartConversionError
add_payload()
を使用してペイロードが Message オブジェクトに追加されたが、ペイロードはすでにスカラーであり、メッセージの Content-Type メインタイプもではない場合に発生します] multipart または欠落しています。 MultipartConversionError は、 MessageError と組み込みのTypeError
から乗算を継承します。Message.add_payload()
は非推奨であるため、この例外が実際に発生することはめったにありません。 ただし、 attach()メソッドが MIMENonMultipart から派生したクラスのインスタンスで呼び出された場合にも、例外が発生する可能性があります(例: MIMEImage )。
FeedParser がメッセージの解析中に見つけることができる欠陥のリストは次のとおりです。 問題が見つかったメッセージに欠陥が追加されることに注意してください。たとえば、 multipart / Alternative 内にネストされたメッセージに不正な形式のヘッダーがある場合、そのネストされたメッセージオブジェクトには欠陥がありますが、メッセージを含むことはしません。
すべての欠陥クラスはemail.errors.MessageDefect
からサブクラス化されていますが、このクラスは例外ではありません。
バージョン2.4の新機能:すべての欠陥クラスが追加されました。
NoBoundaryInMultipartDefect
–メッセージはマルチパートであると主張されましたが、境界パラメーターがありませんでした。StartBoundaryNotFoundDefect
– Content-Type ヘッダーで要求された開始境界が見つかりませんでした。FirstHeaderLineIsContinuationDefect
–メッセージの最初のヘッダー行として継続行がありました。MisplacedEnvelopeHeaderDefect
-ヘッダーブロックの中央に「UnixFrom」ヘッダーが見つかりました。MalformedHeaderDefect
–コロンが欠落しているか、その他の方法で不正な形式のヘッダーが見つかりました。MultipartInvariantViolationDefect
–メッセージはマルチパートであると主張されましたが、サブパートが見つかりませんでした。 メッセージにこの欠陥がある場合、そのコンテンツタイプが multipart であると主張していても、その is_multipart()メソッドはfalseを返す場合があることに注意してください。