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