email.errors.md
1> **Источник:** https://python-all.ru/3.3/library/email.errors.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 19.1.10. [`email.errors`](https://python-all.ru/3.3/library/email.errors.html#module-email.errors): классы Исключение и Defect89В модуле [`email.errors`](https://python-all.ru/3.3/library/email.errors.html#module-email.errors) определены следующие классы исключений:1011#### `exception email.errors.MessageError`1213Это базовый класс для всех исключений, которые пакет [`email`](https://python-all.ru/3.3/library/email.html#module-email) может возбуждать. Он производный от стандартного класса [`Exception`](https://python-all.ru/3.3/library/exceptions.html#Exception) и не определяет дополнительных методов.1415#### `exception email.errors.MessageParseError`1617Это базовый класс для исключений, возбуждаемых классом [`Parser`](https://python-all.ru/3.3/library/email.parser.html#email.parser.Parser). Он производный от [`MessageError`](https://python-all.ru/3.3/library/email.errors.html#email.errors.MessageError).1819#### `exception email.errors.HeaderParseError`2021Возбуждается при некоторых ошибках при разборе заголовков [**RFC 2822**](https://python-all.ru/3.3/library/email.errors.html) сообщения. Этот класс производный от [`MessageParseError`](https://python-all.ru/3.3/library/email.errors.html#email.errors.MessageParseError). Он может быть возбуждён из методов [`Parser.parse`](https://python-all.ru/3.3/library/email.parser.html#email.parser.Parser.parse) или [`Parser.parsestr`](https://python-all.ru/3.3/library/email.parser.html#email.parser.Parser.parsestr).2223Ситуации, в которых он может быть вызван, включают обнаружение конвертного заголовка после первого [**RFC 2822**](https://python-all.ru/3.3/library/email.errors.html) заголовка сообщения, обнаружение строки продолжения до того, как найден первый [**RFC 2822**](https://python-all.ru/3.3/library/email.errors.html) заголовок, или обнаружение строки в заголовках, которая не является ни заголовком, ни строкой продолжения.2425#### `exception email.errors.BoundaryError`2627Возбуждается при некоторых ошибках при разборе заголовков [**RFC 2822**](https://python-all.ru/3.3/library/email.errors.html) сообщения. Этот класс производный от [`MessageParseError`](https://python-all.ru/3.3/library/email.errors.html#email.errors.MessageParseError). Он может быть возбуждён из методов [`Parser.parse`](https://python-all.ru/3.3/library/email.parser.html#email.parser.Parser.parse) или [`Parser.parsestr`](https://python-all.ru/3.3/library/email.parser.html#email.parser.Parser.parsestr).2829Ситуации, в которых он может быть вызван, включают невозможность найти начальную или конечную границу в *multipart/\** сообщении при строгом разборе.3031#### `exception email.errors.MultipartConversionError`3233Возбуждается, когда к объекту [`Message`](https://python-all.ru/3.3/library/email.message.html#email.message.Message) добавляется полезная нагрузка с помощью `add_payload()`, но нагрузка уже является скаляром, а основной тип содержимого сообщения (*Content-Type*) не равен *multipart* или отсутствует. [`MultipartConversionError`](https://python-all.ru/3.3/library/email.errors.html#email.errors.MultipartConversionError) множественно наследует от [`MessageError`](https://python-all.ru/3.3/library/email.errors.html#email.errors.MessageError) и встроенного [`TypeError`](https://python-all.ru/3.3/library/exceptions.html#TypeError).3435Поскольку `Message.add_payload()` устарел, это исключение редко возбуждается на практике. Однако исключение может также возбуждаться, если метод [`attach()`](https://python-all.ru/3.3/library/email.message.html#email.message.Message.attach) вызывается на экземпляре класса, производного от [`MIMENonMultipart`](https://python-all.ru/3.3/library/email.mime.html#email.mime.nonmultipart.MIMENonMultipart) (например, [`MIMEImage`](https://python-all.ru/3.3/library/email.mime.html#email.mime.image.MIMEImage)).3637Вот список дефектов, которые [`FeedParser`](https://python-all.ru/3.3/library/email.parser.html#email.parser.FeedParser) может обнаружить при разборе сообщений. Обратите внимание, что дефекты добавляются к тому сообщению, где была найдена проблема; так, например, если сообщение, вложенное в *multipart/alternative*, имело некорректный заголовок, то этот вложенный объект сообщения будет содержать дефект, а содержащие его сообщения – нет.3839Все классы дефектов являются подклассами `email.errors.MessageDefect`, но этот класс *не* является исключением!4041- `NoBoundaryInMultipartDefect` – Сообщение заявляло, что оно является multipart, но не имело параметра *boundary*.42- `StartBoundaryNotFoundDefect` – Начальная граница, указанная в заголовке *Content-Type*, не была найдена.43- `CloseBoundaryNotFoundDefect` – Начальная граница была найдена, но соответствующая закрывающая граница не была найдена.4445 Новое в версии 3.3.46- `FirstHeaderLineIsContinuationDefect` – Сообщение имело строку продолжения в качестве первой строки заголовка.47- `MisplacedEnvelopeHeaderDefect` – Заголовок “Unix From” был найден в середине блока заголовков.48- `MissingHeaderBodySeparatorDefect` – При разборе заголовков была найдена строка, не имеющая начальных пробелов, но не содержащая двоеточия. Разбор продолжается в предположении, что эта строка является первой строкой тела сообщения.4950 Новое в версии 3.3.51- `MalformedHeaderDefect` – Был найден заголовок, в котором отсутствовало двоеточие или который был иным образом некорректен.5253 Устарело с версии 3.3: Этот дефект не использовался на протяжении нескольких версий Python.54- `MultipartInvariantViolationDefect` – Сообщение заявляло, что оно является *multipart*, но подчасти не были найдены. Обратите внимание, что когда сообщение имеет этот дефект, его метод [`is_multipart()`](https://python-all.ru/3.3/library/email.message.html#email.message.Message.is_multipart) может возвращать false, даже если его тип содержимого заявляет *multipart*.55- `InvalidBase64PaddingDefect` – При декодировании блока байтов, закодированных в base64, заполнение было некорректным. Добавляется достаточное заполнение для выполнения декодирования, но результирующие декодированные байты могут быть недействительными.56- `InvalidBase64CharactersDefect` – При декодировании блока байтов, закодированных в base64, были встречены символы за пределами алфавита base64. Эти символы игнорируются, но результирующие декодированные байты могут быть недействительными.57