email.errors
: классы исключений и дефектов
Определены следующие классы исключений в модуле 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
— сообщение заявлено как состоящее из нескольких частей, но не содержит параметра 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). Закодированный блок был сохранен как есть.