18.1.8. email.errors:异常和缺陷类 — Python 文档

来自菜鸟教程
Python/docs/2.7/library/email.errors
跳转至:导航、​搜索

18.1.8. 电子邮件错误 : 异常和缺陷类

email.errors 模块中定义了以下异常类:

exception email.errors.MessageError
这是 email 包可以引发的所有异常的基类。 它派生自标准的 Exception 类并且没有定义额外的方法。
exception email.errors.MessageParseError
这是由 Parser 类引发的异常的基类。 它源自 MessageError
exception email.errors.HeaderParseError

在解析消息的 RFC 2822 标头时在某些错误条件下引发,此类派生自 MessageParseError。 它可以从 Parser.parseParser.parsestr 方法引发。

可以引发的情况包括在消息的第一个 RFC 2822 标头之后找到一个信封标头,在第一个 RFC 标头之前找到一个续行2822 找到标题,或在标题中找到既不是标题也不是续行的行。

exception email.errors.BoundaryError

在解析消息的 RFC 2822 标头时在某些错误条件下引发,此类派生自 MessageParseError。 它可以从 Parser.parseParser.parsestr 方法引发。

可以引发的情况包括在使用严格解析时无法在 multipart/* 消息中找到起始或终止边界。

exception email.errors.MultipartConversionError

当使用 add_payload() 将有效负载添加到 Message 对象时引发,但有效负载已经是标量并且消息的 Content-Type 主要类型不是 ]multipart 或丢失。 MultipartConversionError 乘法继承自 MessageError 和内置的 TypeError

由于 Message.add_payload() 已弃用,因此在实践中很少引发此异常。 但是,如果在从 MIMENonMultipart 派生的类的实例上调用 attach() 方法,也可能引发异常(例如 MIMEImage)。

以下是 FeedParser 在解析消息时可以发现的缺陷列表。 请注意,缺陷会添加到发现问题的消息中,例如,如果嵌套在 multipart/alternative 中的消息具有格式错误的标头,则该嵌套消息对象将具有缺陷,但是包含消息不会。

所有缺陷类都是从 email.errors.MessageDefect 继承的子类,但这个类是 不是 一个例外!

2.4 新功能: 所有缺陷类别已添加。


  • NoBoundaryInMultipartDefect – 一条声称是多部分的消息,但没有 boundary 参数。
  • StartBoundaryNotFoundDefect – 从未找到 Content-Type 标头中声明的起始边界。
  • FirstHeaderLineIsContinuationDefect – 消息有一个续行作为其第一个标题行。
  • MisplacedEnvelopeHeaderDefect - 在标题块的中间发现了“Unix From”标题。
  • MalformedHeaderDefect – 发现缺少冒号或格式不正确的标题。
  • MultipartInvariantViolationDefect – 一条消息声称是 multipart,但没有找到子部分。 请注意,当消息存在此缺陷时,其 is_multipart() 方法可能会返回 false,即使其内容类型声称为 multipart