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

在解码一个无效或无法解析的日期字段时发生。原始值将保持原样。