Spec-Zone.ru › Python 3.12

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.

Обратите внимание, что эти функции не предназначены для сообщений multipart. Вместо этого их следует применять к отдельным частям, иначе при передаче сообщения типа multipart будет вызвано исключение 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.

Сноски

[1]

Обратите внимание, что кодирование с помощью encode_quopri() также кодирует все символы табуляции и пробелы в данных.

© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.12/library/email.encoders.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API