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 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.14/library/email.encoders.html