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¶
在解码一个无效或无法解析的日期字段时发生。原始值将保持原样。