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 標頭時,在某些錯誤條件下會引發此異常,該類派生自 MessageParseError。如果在呼叫 set_boundary() 方法時內容型別未知,該方法將引發此錯誤。Header 可能會針對某些 base64 解碼錯誤,以及在嘗試建立包含嵌入標頭(即,本應是續行但沒有前導空格且看起來像一個標頭)的標頭時引發此錯誤。

exception email.errors.BoundaryError

已棄用,不再使用。

exception email.errors.MultipartConversionError

當在派生自 MIMENonMultipart (例如 MIMEImage)的類的例項上呼叫 attach() 方法時引發。MultipartConversionError 多重繼承自 MessageError 和內建的 TypeError

exception email.errors.HeaderWriteError

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

exception email.errors.MessageDefect

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

exception email.errors.HeaderDefect

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

下面列出了 FeedParser 在解析郵件訊息時可能發現的缺陷。請注意,缺陷會被新增到發現問題的郵件訊息中,因此,舉例來說,如果巢狀在 multipart/alternative 中的郵件訊息有格式錯誤的標頭,那麼這個巢狀的郵件訊息物件將帶有一個缺陷,而包含它的郵件訊息則不會。

所有缺陷類都派生自 email.errors.MessageDefect

exception email.errors.NoBoundaryInMultipartDefect

一條訊息聲稱是 multipart 型別,但沒有 boundary 引數。

exception email.errors.StartBoundaryNotFoundDefect

Content-Type 標頭中宣告的起始邊界從未被找到。

exception email.errors.CloseBoundaryNotFoundDefect

找到了起始邊界,但從未找到對應的結束邊界。

在 3.3 版本加入。

exception email.errors.FirstHeaderLineIsContinuationDefect

訊息的第一個標頭行是一個續行。

exception email.errors.MisplacedEnvelopeHeaderDefect

在標頭塊的中間找到了一個 “Unix From” 標頭。

exception email.errors.MissingHeaderBodySeparatorDefect

在解析標頭時發現某行沒有前導空格,但也不包含 ':'。解析將繼續進行,並假定該行是正文的第一行。

在 3.3 版本加入。

exception email.errors.MalformedHeaderDefect

發現一個缺少冒號或格式不正確的標頭。

自 3.3 版本起不推薦使用: 這個缺陷在近幾個 Python 版本中已不再使用。

exception email.errors.MultipartInvariantViolationDefect

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

exception email.errors.InvalidBase64PaddingDefect

在解碼 base64 編碼的位元組塊時,填充不正確。系統會新增足夠的填充以執行解碼,但解碼後的位元組可能會無效。

exception email.errors.InvalidBase64CharactersDefect

在解碼 base64 編碼的位元組塊時,遇到了 base64 字母表之外的字元。這些字元會被忽略,但解碼後的位元組可能會無效。

exception email.errors.InvalidBase64LengthDefect

在解碼 base64 編碼的位元組塊時,非填充的 base64 字元數無效(比 4 的倍數多 1)。編碼塊將保持原樣。

exception email.errors.InvalidDateDefect

在解碼一個無效或無法解析的日期欄位時發生。原始值將保持原樣。