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
– При расшифровке недопустимого или неразборчивого поля даты. Исходное значение сохраняется как есть.