email.errors: 異常和缺陷類

原始碼: Lib/email/errors.py


以下異常類在 email.errors 模組中定義

exception email.errors.MessageError

這是 email 包可能引發的所有異常的基類。它派生自標準 Exception 類,並且沒有定義額外的的方法。

exception email.errors.MessageParseError

這是由 Parser 類引發的異常的基類。它派生自 MessageError。這個類也被 headerregistry 使用的解析器內部使用。

exception email.errors.HeaderParseError

當解析訊息的 RFC 5322 標頭時在某些錯誤條件下引發,這個類派生自 MessageParseErrorset_boundary() 方法在呼叫時,如果內容型別未知,則會引發此錯誤。Header 可能會因某些 base64 解碼錯誤,以及嘗試建立看起來包含嵌入式標頭的標頭(即,本應是延續行,但沒有前導空格且看起來像標頭)時引發此錯誤。

exception email.errors.BoundaryError

已棄用,不再使用。

exception email.errors.MultipartConversionError

當使用 add_payload() 將有效負載新增到 Message 物件,但該有效負載已經是標量且訊息的 Content-Type 主要型別不是 multipart 或缺失時引發。MultipartConversionError 多重繼承自 MessageError 和內建的 TypeError

由於 Message.add_payload() 已棄用,因此實際上很少引發此異常。但是,如果對派生自 MIMENonMultipart (例如 MIMEImage) 的類例項呼叫 attach() 方法,也可能引發此異常。

exception email.errors.HeaderWriteError

generator 輸出標頭時發生錯誤時引發。

exception email.errors.MessageDefect

這是在解析電子郵件訊息時發現的所有缺陷的基類。它派生自 ValueError

exception email.errors.HeaderDefect

這是在解析電子郵件標頭時發現的所有缺陷的基類。它派生自 MessageDefect

這是 FeedParser 在解析訊息時可以發現的缺陷列表。請注意,缺陷被新增到發現問題的訊息中,因此,例如,如果巢狀在 multipart/alternative 中的訊息有一個格式錯誤的標頭,則該巢狀訊息物件將有一個缺陷,但包含的訊息則不會。

所有缺陷類都從 email.errors.MessageDefect 繼承。

  • NoBoundaryInMultipartDefect – 訊息聲稱是 multipart,但沒有 boundary 引數。

  • StartBoundaryNotFoundDefectContent-Type 標頭中宣告的起始邊界未找到。

  • CloseBoundaryNotFoundDefect – 找到一個起始邊界,但從未找到相應的結束邊界。

    3.3 版本新增。

  • FirstHeaderLineIsContinuationDefect – 訊息的第一個標頭行是延續行。

  • MisplacedEnvelopeHeaderDefect - 在標頭塊中間找到一個“Unix From”標頭。

  • MissingHeaderBodySeparatorDefect - 在解析標頭時發現一行沒有前導空格,但不包含“:” 。解析繼續,假設該行表示正文的第一行。

    3.3 版本新增。

  • MalformedHeaderDefect – 找到一個缺少冒號或格式不正確的標頭。

    3.3 版本起已棄用: 此缺陷已在多個 Python 版本中未使用。

  • MultipartInvariantViolationDefect – 訊息聲稱是 multipart,但未找到子部分。 請注意,當訊息存在此缺陷時,它的 is_multipart() 方法可能返回 False,即使其內容型別宣告為 multipart

  • InvalidBase64PaddingDefect – 當解碼一個 base64 編碼的位元組塊時,填充不正確。 添加了足夠的填充來執行解碼,但生成的解碼位元組可能無效。

  • InvalidBase64CharactersDefect – 當解碼一個 base64 編碼的位元組塊時,遇到了 base64 字母表之外的字元。 這些字元被忽略,但生成的解碼位元組可能無效。

  • InvalidBase64LengthDefect – 當解碼一段 base64 編碼的位元組時,非填充的 base64 字元數量無效(比 4 的倍數多 1)。編碼塊保持原樣。

  • InvalidDateDefect – 當解碼無效或無法解析的日期欄位時。原始值保持原樣。