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
– Сообщение утверждало, что является многокомпонентным, но не имело параметра boundary.StartBoundaryNotFoundDefect
– Начальная граница, указанная в заголовке Content-Type, не найдена.CloseBoundaryNotFoundDefect
– Была найдена начальная граница, но не была найдена соответствующая близкая граница.Added in version 3.3.
FirstHeaderLineIsContinuationDefect
– Сообщение имело строку продолжения в качестве первой строки заголовка.MisplacedEnvelopeHeaderDefect
- В середине блока заголовков обнаружен заголовок «Unix From».MissingHeaderBodySeparatorDefect
- При разборе заголовков была обнаружена строка, в которой отсутствуют пробелы, но нет „:“. Парсинг продолжается, предполагая, что эта строка представляет собой первую строку тела.Added in version 3.3.
MalformedHeaderDefect
– Был найден заголовок, в котором отсутствовало двоеточие или он был неправильно оформлен.Не рекомендуется, начиная с версии 3.3: Этот дефект не использовался в нескольких версиях Python.
MultipartInvariantViolationDefect
– Сообщение заявлено как multipart, но не найдено ни одной вложенной части. Обратите внимание, что когда сообщение имеет этот дефект, его методis_multipart()
может вернутьFalse
, даже если тип содержимого утверждает, что это multipart.InvalidBase64PaddingDefect
– При декодировании блока байт, закодированных в base64, была неправильно добавлена прокладка. Для выполнения декодирования добавляется достаточное количество прокладок, но результирующие декодированные байты могут быть недействительными.InvalidBase64CharactersDefect
– При декодировании блока байтов, закодированных в base64, были встречены символы, выходящие за пределы алфавита base64. Эти символы игнорируются, но результирующие декодированные байты могут быть недействительными.InvalidBase64LengthDefect
– При декодировании блока байт, закодированных в base64, количество символов base64, не содержащих вставки, было недопустимым (на 1 больше, чем кратно 4). Закодированный блок был сохранен как есть.InvalidDateDefect
– При декодировании недействительного или непарсируемого поля даты. Исходное значение сохраняется как есть.