Spec-Zone.ru › Python 3.8

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, они вызовут исключение 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–2022 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.8/library/email.encoders.html

Spec-Zone.ru

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