Spec-Zone.ru › Python 3.6

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 – Сообщение указано как multipart, но параметр 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). Закодированный блок оставлен без изменений.

© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.6/library/email.errors.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API