email.errors モジュールでは、以下の例外クラスが定義されています:
これは email パッケージが発生しうるすべての例外の基底クラスです。これは標準の Exception クラスから派生しており、追加のメソッドはまったく定義されていません。
これは Parser クラスが発生しうる例外の基底クラスです。 MessageError から派生しています。
メッセージの RFC 2822 ヘッダを解析している途中にある条件でエラーがおこると発生します。これは MessageParseError から派生しています。この例外が起こる可能性があるのは Parser.parse() メソッドと Parser.parsestr() メソッドです。
この例外が発生するのはメッセージ中で最初の RFC 2822 ヘッダが現れたあとにエンベロープヘッダが見つかったとか、最初の RFC 2822 ヘッダが現れる前に前のヘッダからの継続行が見つかったとかいう状況を含みます。あるいはヘッダでも継続行でもない行がヘッダ中に見つかった場合でもこの例外が発生します。
メッセージの RFC 2822 ヘッダを解析している途中にある条件でエラーがおこると発生します。これは MessageParseError から派生しています。この例外が起こる可能性があるのは Parser.parse() メソッドと Parser.parsestr() メソッドです。
この例外が発生するのは、厳格なパーズ方式が用いられているときに、 multipart/* 形式の開始あるいは終了の文字列が見つからなかった場合などです。
この例外は、 Message オブジェクトに add_payload() メソッドを使ってペイロードを追加するとき、そのペイロードがすでに単一の値である (訳注: リストでない) にもかかわらず、そのメッセージの Content-Type ヘッダのメインタイプがすでに設定されていて、それが multipart 以外になってしまっている場合にこの例外が発生します。 MultipartConversionError は MessageError と組み込みの TypeError を両方継承しています。
Message.add_payload() はもはや推奨されないメソッドのため、この例外はめったに発生しません。しかしこの例外は attach() メソッドが MIMENonMultipart から派生したクラスのインスタンス (例: MIMEImage など) に対して呼ばれたときにも発生することがあります。
以下は FeedParser がメッセージの解析中に検出する障害 (defect) の一覧です。これらの障害は、問題が見つかったメッセージに追加されるため、たとえば multipart/alternative 内にあるネストしたメッセージが異常なヘッダをもっていた場合には、そのネストしたメッセージが障害を持っているが、その親メッセージには障害はないとみなされることに注意してください。
すべての障害クラスは email.errors.MessageDefect のサブクラスですが、これは例外とは 違います ので注意してください。
バージョン 2.4 で追加: 全ての障害クラスが追加された。