在线文档教程
Python

email.errors: Exception and Defect classes

email.errors: Exception and Defect classes

以下异常类在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

当有效载荷被添加到使用的Message对象时引发add_payload(),但有效载荷已经是标量,并且消息的Content-Type主类型不是多部分或缺失。MultipartConversionError乘法继承自MessageError内置TypeError

由于Message.add_payload()已被弃用,这种例外在实践中很少引起。但是,如果attach()方法在派生自MIMENonMultipart(eg MIMEImage)的类的实例上调用,也可能会引发异常。

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

所有的缺陷类都从子类别中划分出来email.errors.MessageDefect,但这个类不是例外!

版本2.4中的新功能:添加了所有缺陷类。

  • NoBoundaryInMultipartDefect- 声称是多部分的消息,但没有边界参数。

  • StartBoundaryNotFoundDefect- Content-Type头中声明的起始边界从未找到。

  • FirstHeaderLineIsContinuationDefect - 该消息有一个延续线作为其第一个标题行。

  • MisplacedEnvelopeHeaderDefect - 在标题块的中间找到“Unix From”标题。

  • MalformedHeaderDefect - 发现头部缺少冒号,或者是其他格式不正确。

  • MultipartInvariantViolationDefect- 一条消息声称是多部分,但没有发现子部分。请注意,当消息具有此缺陷时,is_multipart()即使其内容类型声称为多部分,其方法也可能返回false 。