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¶
當在派生自
MIMENonMultipart
(例如MIMEImage
)的類的例項上呼叫attach()
方法時引發。MultipartConversionError
多重繼承自MessageError
和內建的TypeError
。
- 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¶
在解碼一個無效或無法解析的日期欄位時發生。原始值將保持原樣。