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

将有效负载添加到 Message 对象使用 add_payload() ,但有效负载已经是一个标量,消息的 Content-Type 主类型也不是 multipart 或者失踪了。 MultipartConversionError 乘法继承自 MessageError 以及内置的 TypeError .

自从 Message.add_payload() 已弃用,实际中很少引发此异常。但是,如果 attach() 方法是对派生自 MIMENonMultipart (例如) MIMEImage

这是缺陷清单 FeedParser 分析消息时找不到。请注意,缺陷会添加到发现问题的消息中,例如,如果消息嵌套在 multipart/alternative 如果头格式不正确,则嵌套的消息对象将有缺陷,但包含消息的则不会。

所有缺陷类都是从 email.errors.MessageDefect .

  • NoBoundaryInMultipartDefect --一条消息声称是多部分消息,但没有 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字符数无效(1大于4的倍数)。编码块保持原样。

  • InvalidDateDefect --解码无效或无法解析的日期字段时。原始值保持不变。