Spec-Zone.ru › Python 3.11

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, если им будет передано сообщение типа multipart.

Вот функции кодирования, предоставляемые здесь:

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

Spec-Zone.ru

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