email.errors.md
1> **Источник:** https://python-all.ru/3.10/library/email.errors.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# [`email.errors`](https://python-all.ru/3.10/library/email.errors.html#module-email.errors): классы исключений и дефектов89**Исходный код:** [Lib/email/errors.py](https://python-all.ru/src/3.10/Lib/email/errors.py)1011---1213В модуле [`email.errors`](https://python-all.ru/3.10/library/email.errors.html#module-email.errors) определены следующие классы исключений:1415#### `exception email.errors.MessageError`1617Это базовый класс для всех исключений, которые может возбуждать пакет [`email`](https://python-all.ru/3.10/library/email.html#module-email). Он наследуется от стандартного класса [`Exception`](https://python-all.ru/3.10/library/exceptions.html#Exception) и не определяет дополнительных методов.1819#### `exception email.errors.MessageParseError`2021Это базовый класс для исключений, которые возбуждает класс [`Parser`](https://python-all.ru/3.10/library/email.parser.html#email.parser.Parser). Он унаследован от [`MessageError`](https://python-all.ru/3.10/library/email.errors.html#email.errors.MessageError). Кроме того, этот класс используется внутри парсера, который применяется в [`headerregistry`](https://python-all.ru/3.10/library/email.headerregistry.html#module-email.headerregistry).2223#### `exception email.errors.HeaderParseError`2425Возбуждается при некоторых ошибках во время разбора заголовков [**RFC 5322**](https://python-all.ru/3.10/library/email.errors.html) сообщения; этот класс унаследован от [`MessageParseError`](https://python-all.ru/3.10/library/email.errors.html#email.errors.MessageParseError). Метод [`set_boundary()`](https://python-all.ru/3.10/library/email.message.html#email.message.EmailMessage.set_boundary) возбудит это исключение, если тип содержимого неизвестен на момент вызова. [`Header`](https://python-all.ru/3.10/library/email.header.html#email.header.Header) может возбудить это исключение при некоторых ошибках декодирования base64, а также при попытке создать заголовок, который, по-видимому, содержит встроенный заголовок (то есть есть то, что должно быть строкой продолжения, но не имеет начального пробела и выглядит как заголовок).2627#### `exception email.errors.BoundaryError`2829Устарело и больше не используется.3031#### `exception email.errors.MultipartConversionError`3233Вызывается, когда к объекту [`Message`](https://python-all.ru/3.10/library/email.compat32-message.html#email.message.Message) добавляется полезная нагрузка с помощью `add_payload()`, но эта нагрузка уже является скаляром, а основной тип *Content-Type* сообщения не является ни *multipart*, ни отсутствующим. [`MultipartConversionError`](https://python-all.ru/3.10/library/email.errors.html#email.errors.MultipartConversionError) множественно наследуется от [`MessageError`](https://python-all.ru/3.10/library/email.errors.html#email.errors.MessageError) и встроенного [`TypeError`](https://python-all.ru/3.10/library/exceptions.html#TypeError).3435Поскольку `Message.add_payload()` устарел, это исключение редко возникает на практике. Однако исключение также может возникнуть, если метод [`attach()`](https://python-all.ru/3.10/library/email.compat32-message.html#email.message.Message.attach) вызывается для экземпляра класса, производного от [`MIMENonMultipart`](https://python-all.ru/3.10/library/email.mime.html#email.mime.nonmultipart.MIMENonMultipart) (например, [`MIMEImage`](https://python-all.ru/3.10/library/email.mime.html#email.mime.image.MIMEImage)).3637#### `exception email.errors.HeaderWriteError`3839Возбуждается при ошибке, возникающей при выводе заголовков объектом [`generator`](https://python-all.ru/3.10/library/email.generator.html#module-email.generator).4041Вот список дефектов, которые может обнаружить [`FeedParser`](https://python-all.ru/3.10/library/email.parser.html#email.parser.FeedParser) при разборе сообщений. Обратите внимание, что дефекты добавляются в то сообщение, где была найдена проблема; например, если сообщение, вложенное в *multipart/alternative*, имеет некорректный заголовок, то у этого вложенного сообщения будет дефект, а у содержащих его сообщений – нет.4243Все классы дефектов являются подклассами `email.errors.MessageDefect`.4445- `NoBoundaryInMultipartDefect` – Сообщение, которое объявлено как multipart, но не имеет параметра *boundary*.46- `StartBoundaryNotFoundDefect` – Начальная граница, объявленная в заголовке *Content-Type*, так и не была найдена.47- `CloseBoundaryNotFoundDefect` – Начальная граница найдена, но соответствующая закрывающая граница так и не найдена.4849 Новое в версии 3.3.50- `FirstHeaderLineIsContinuationDefect` – У сообщения была строка продолжения в качестве первой строки заголовка.51- `MisplacedEnvelopeHeaderDefect` – Во время разбора заголовка в середине блока заголовков обнаружен заголовок “Unix From”.52- `MissingHeaderBodySeparatorDefect` – Во время разбора заголовков найдена строка без начального пробела, но и без символа ‘:’. Разбор продолжается в предположении, что эта строка представляет первую строку тела.5354 Новое в версии 3.3.55- `MalformedHeaderDefect` – Обнаружен заголовок, в котором отсутствовало двоеточие или который был искажён.5657 Устарело с версии 3.3: Этот дефект не использовался на протяжении нескольких версий Python.58- `MultipartInvariantViolationDefect` – Сообщение утверждает, что является *multipart*, но не найдено ни одной подобчасти. Обратите внимание: если сообщение имеет этот дефект, его метод [`is_multipart()`](https://python-all.ru/3.10/library/email.compat32-message.html#email.message.Message.is_multipart) может возвращать `False`, даже если его тип содержимого утверждает, что это *multipart*.59- `InvalidBase64PaddingDefect` – При декодировании блока байтов в кодировке base64 дополнение было некорректным. Добавляется достаточно дополнения для выполнения декодирования, но полученные декодированные байты могут быть недействительными.60- `InvalidBase64CharactersDefect` – При декодировании блока байтов в кодировке base64 встречены символы, не входящие в алфавит base64. Эти символы игнорируются, но полученные декодированные байты могут быть недействительными.61- `InvalidBase64LengthDefect` – При декодировании блока байтов в кодировке base64 количество недополнительных символов base64 было недопустимым (на 1 больше, чем кратно 4). Закодированный блок оставлен без изменений.62- `InvalidDateDefect` – При декодировании недопустимого или неразбираемого поля даты. Исходное значение сохраняется без изменений.63