> **Источник:** https://python-all.ru/3.13/library/email.errors.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# `email.errors`: классы исключений и дефектов

**Исходный код:** [Lib/email/errors.py](https://python-all.ru/src/3.13/Lib/email/errors.py)

---

В модуле `email.errors` определены следующие классы исключений:

#### `exception email.errors.MessageError`

Это базовый класс для всех исключений, которые может возбуждать пакет [`email`](https://python-all.ru/3.13/library/email.html#module-email). Он наследуется от стандартного класса [`Exception`](https://python-all.ru/3.13/library/exceptions.html#Exception) и не определяет дополнительных методов.

#### `exception email.errors.MessageParseError`

Это базовый класс для исключений, которые возбуждает класс [`Parser`](https://python-all.ru/3.13/library/email.parser.html#email.parser.Parser). Он унаследован от [`MessageError`](https://python-all.ru/3.13/library/email.errors.html#email.errors.MessageError). Кроме того, этот класс используется внутри парсера, который применяется в [`headerregistry`](https://python-all.ru/3.13/library/email.headerregistry.html#module-email.headerregistry).

#### `exception email.errors.HeaderParseError`

Возбуждается при некоторых ошибках во время разбора заголовков [**RFC 5322**](https://python-all.ru/3.13/library/email.errors.html) сообщения; этот класс унаследован от [`MessageParseError`](https://python-all.ru/3.13/library/email.errors.html#email.errors.MessageParseError). Метод [`set_boundary()`](https://python-all.ru/3.13/library/email.message.html#email.message.EmailMessage.set_boundary) возбудит это исключение, если тип содержимого неизвестен на момент вызова. [`Header`](https://python-all.ru/3.13/library/email.header.html#email.header.Header) может возбудить это исключение при некоторых ошибках декодирования base64, а также при попытке создать заголовок, который, по-видимому, содержит встроенный заголовок (то есть есть то, что должно быть строкой продолжения, но не имеет начального пробела и выглядит как заголовок).

#### `exception email.errors.BoundaryError`

Устарело и больше не используется.

#### `exception email.errors.MultipartConversionError`

Возбуждается, если метод [`attach()`](https://python-all.ru/3.13/library/email.compat32-message.html#email.message.Message.attach) вызывается у экземпляра класса, унаследованного от [`MIMENonMultipart`](https://python-all.ru/3.13/library/email.mime.html#email.mime.nonmultipart.MIMENonMultipart) (например, [`MIMEImage`](https://python-all.ru/3.13/library/email.mime.html#email.mime.image.MIMEImage)). `MultipartConversionError` множественно наследуется от [`MessageError`](https://python-all.ru/3.13/library/email.errors.html#email.errors.MessageError) и встроенного [`TypeError`](https://python-all.ru/3.13/library/exceptions.html#TypeError).

#### `exception email.errors.HeaderWriteError`

Возбуждается при ошибке, возникающей при выводе заголовков объектом [`generator`](https://python-all.ru/3.13/library/email.generator.html#module-email.generator).

#### `exception email.errors.MessageDefect`

Это базовый класс для всех дефектов, обнаруживаемых при разборе email-сообщений. Он унаследован от [`ValueError`](https://python-all.ru/3.13/library/exceptions.html#ValueError).

#### `exception email.errors.HeaderDefect`

Это базовый класс для всех дефектов, обнаруживаемых при разборе заголовков email. Он унаследован от [`MessageDefect`](https://python-all.ru/3.13/library/email.errors.html#email.errors.MessageDefect).

Вот список дефектов, которые может обнаружить [`FeedParser`](https://python-all.ru/3.13/library/email.parser.html#email.parser.FeedParser) при разборе сообщений. Обратите внимание, что дефекты добавляются в то сообщение, где была найдена проблема; например, если сообщение, вложенное в *multipart/alternative*, имеет некорректный заголовок, то у этого вложенного сообщения будет дефект, а у содержащих его сообщений – нет.

Все классы дефектов являются подклассами [`email.errors.MessageDefect`](https://python-all.ru/3.13/library/email.errors.html#email.errors.MessageDefect).

#### `exception email.errors.NoBoundaryInMultipartDefect`

Сообщение заявлено как multipart, но не имеет параметра *boundary*.

#### `exception email.errors.StartBoundaryNotFoundDefect`

Начальная граница, указанная в заголовке *Content-Type*, так и не была найдена.

#### `exception email.errors.CloseBoundaryNotFoundDefect`

Начальная граница найдена, но соответствующая закрывающая граница так и не была найдена.

Добавлено в версии 3.3.

#### `exception email.errors.FirstHeaderLineIsContinuationDefect`

Первая строка заголовка сообщения оказалась строкой продолжения.

#### `exception email.errors.MisplacedEnvelopeHeaderDefect`

В середине блока заголовков был найден заголовок “Unix From”.

#### `exception email.errors.MissingHeaderBodySeparatorDefect`

При разборе заголовков обнаружена строка без начального пробела, но не содержащая ':'. Разбор продолжается в предположении, что эта строка является первой строкой тела сообщения.

Добавлено в версии 3.3.

#### `exception email.errors.MalformedHeaderDefect`

Обнаружен заголовок, в котором отсутствовало двоеточие, или он был иным образом повреждён.

Устарело с версии 3.3: Этот дефект не использовался на протяжении нескольких версий Python.

#### `exception email.errors.MultipartInvariantViolationDefect`

Сообщение утверждает, что является *multipart*, но не было найдено ни одной вложенной части. Обратите внимание: когда сообщение имеет этот дефект, его метод [`is_multipart()`](https://python-all.ru/3.13/library/email.compat32-message.html#email.message.Message.is_multipart) может вернуть `False`, даже если его тип содержимого заявляет *multipart*.

#### `exception email.errors.InvalidBase64PaddingDefect`

При декодировании блока байтов, закодированных в base64, дополнение (padding) было некорректным. Добавляется достаточное количество дополнения для выполнения декодирования, но полученные декодированные байты могут быть недействительными.

#### `exception email.errors.InvalidBase64CharactersDefect`

При декодировании блока байтов, закодированных в base64, встретились символы, не входящие в алфавит base64. Эти символы игнорируются, но полученные декодированные байты могут быть недействительными.

#### `exception email.errors.InvalidBase64LengthDefect`

При декодировании блока байтов, закодированных в base64, количество символов base64 без учёта дополнения было недопустимым (на 1 больше, чем кратное 4). Закодированный блок был оставлен без изменений.

#### `exception email.errors.InvalidDateDefect`

При декодировании недопустимого или неразбираемого поля даты. Исходное значение сохраняется без изменений.
