email.encoders: Кодировщики
Исходный код: Lib/email/encoders.py
Этот модуль является частью устаревшего (Compat32) API электронной почты. В новом API эта функциональность реализована параметром cte метода set_content().
Этот модуль считается устаревшим в Python 3. Не следует вызывать предоставляемые здесь функции напрямую, поскольку класс MIMEText задаёт тип содержимого и заголовок CTE, используя значения _subtype и _charset, переданные при создании экземпляра этого класса.
Остальной текст в этом разделе представляет собой исходную документацию модуля.
При создании объектов Message с нуля часто требуется кодировать полезные данные для передачи через соответствующие требованиям почтовые серверы. Это особенно актуально для сообщений типа image/* и text/*, содержащих двоичные данные.
Пакет email предоставляет несколько удобных кодировщиков в модуле encoders. Эти кодировщики фактически используются конструкторами классов MIMEAudio и MIMEImage для задания кодировок по умолчанию. Все функции кодирования принимают ровно один аргумент — объект сообщения, который нужно закодировать. Обычно они извлекают полезные данные, кодируют их и устанавливают вместо них новое закодированное значение. Они также должны при необходимости задавать заголовок Content-Transfer-Encoding.
Обратите внимание, что эти функции неприменимы к составным сообщениям. Их следует применять к отдельным частям, иначе при передаче сообщения составного типа будет вызвано исключение TypeError.
Доступны следующие функции кодирования:
-
email.encoders.encode_quopri(msg) -
Кодирует полезные данные в формате quoted-printable и задаёт заголовку Content-Transfer-Encoding значение
quoted-printable[1]. Этот способ кодирования подходит, когда большая часть полезных данных состоит из обычных печатных символов, но содержит несколько непечатаемых символов.
-
email.encoders.encode_base64(msg) -
Кодирует полезные данные в формате base64 и задаёт заголовку Content-Transfer-Encoding значение
base64. Этот способ кодирования подходит, когда большая часть полезных данных состоит из непечатаемых символов, поскольку он компактнее quoted-printable. Недостаток кодирования base64 в том, что текст становится нечитаемым для человека.
-
email.encoders.encode_7or8bit(msg) -
Эта функция фактически не изменяет полезные данные сообщения, но задаёт заголовку Content-Transfer-Encoding значение
7bitили8bitв зависимости от данных полезной нагрузки.
-
email.encoders.encode_noop(msg) -
Эта функция ничего не делает — даже не задаёт заголовок Content-Transfer-Encoding.
Сноски
© 2001–2025 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/library/email.encoders.html