18.1.8. email.errors:异常和缺陷类 — Python 文档
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.parse 或 Parser.parsestr 方法引发。
可以引发的情况包括在消息的第一个 RFC 2822 标头之后找到一个信封标头,在第一个 RFC 标头之前找到一个续行2822 找到标题,或在标题中找到既不是标题也不是续行的行。
- exception email.errors.BoundaryError
在解析消息的 RFC 2822 标头时在某些错误条件下引发,此类派生自 MessageParseError。 它可以从 Parser.parse 或 Parser.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。