Spec-Zone.ru › Python 3.9

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–2022 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.9/library/email.errors.html

Spec-Zone.ru

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