email.errors
: 異常和缺陷類¶
原始碼: Lib/email/errors.py
以下異常類在 email.errors
模組中定義
- exception email.errors.MessageParseError¶
這是由
Parser
類引發的異常的基類。它派生自MessageError
。這個類也被headerregistry
使用的解析器內部使用。
- exception email.errors.HeaderParseError¶
當解析訊息的 RFC 5322 標頭時在某些錯誤條件下引發,這個類派生自
MessageParseError
。set_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.MessageDefect¶
這是在解析電子郵件訊息時發現的所有缺陷的基類。它派生自
ValueError
。
- exception email.errors.HeaderDefect¶
這是在解析電子郵件標頭時發現的所有缺陷的基類。它派生自
MessageDefect
。
這是 FeedParser
在解析訊息時可以發現的缺陷列表。請注意,缺陷被新增到發現問題的訊息中,因此,例如,如果巢狀在 multipart/alternative 中的訊息有一個格式錯誤的標頭,則該巢狀訊息物件將有一個缺陷,但包含的訊息則不會。
所有缺陷類都從 email.errors.MessageDefect
繼承。
NoBoundaryInMultipartDefect
– 訊息聲稱是 multipart,但沒有 boundary 引數。StartBoundaryNotFoundDefect
– Content-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
– 當解碼無效或無法解析的日期欄位時。原始值保持原樣。