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).
-
exception email.errors.MessageDefect -
Это базовый класс для всех дефектов, обнаруженных при разборе электронных сообщений. Он наследуется от
ValueError.
-
exception email.errors.HeaderDefect -
Это базовый класс для всех дефектов, обнаруженных при разборе заголовков электронных сообщений. Он наследуется от
MessageDefect.
Вот список дефектов, которые может найти 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). Закодированный блок сохраняется как есть. -
InvalidDateDefect– При декодировании некорректного или неразбираемого поля даты. Исходное значение сохраняется как есть.
© 2001–2023 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.11/library/email.errors.html