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 multiply наследуется от MessageError и встроенного TypeError.

Поскольку Message.add_payload() является устаревшим, на практике это исключение возникает редко. Однако исключение также может быть вызвано, если метод attach() вызывается для экземпляра класса, производного от MIMENonMultipart (например, MIMEImage).

exception email.errors.HeaderWriteError

Вызывается при возникновении ошибки, когда generator выводит заголовки.

exception email.errors.MessageDefect

Это базовый класс для всех дефектов, обнаруживаемых при анализе сообщений электронной почты. Он является производным от ValueError.

exception email.errors.HeaderDefect

Это базовый класс для всех ошибок, обнаруженных при разборе заголовков электронной почты. Он является производным от MessageDefect.

Вот список дефектов, которые FeedParser может обнаружить программа при разборе сообщений. Обратите внимание, что дефекты добавляются к сообщению, в котором была обнаружена проблема, поэтому, например, если у сообщения, вложенного в multipart/alternative, неправильный заголовок, этот вложенный объект сообщения будет иметь дефект, а содержащиеся в нем сообщения - нет.

Все классы дефектов являются подклассами, начиная с email.errors.MessageDefect.

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

  • InvalidDateDefect – При расшифровке недопустимого или неразборчивого поля даты. Исходное значение сохраняется как есть.

Вернуться на верх