email.encoders: Кодировщики¶email.encoders: Encoders
Исходный код: Lib/email/encoders.py
Этот модуль является частью устаревшего (Compat32) API электронной почты. В
новом API эта функциональность предоставляется параметром cte
метода set_content().
Этот модуль устарел в Python 3. Функции, предоставленные здесь, не должны вызываться явно, так как класс MIMEText устанавливает тип содержимого и заголовок CTE, используя значения _subtype и _charset, переданные при создании экземпляра этого класса.
Оставшийся текст в этом разделе является оригинальной документацией модуля.
При создании объектов Message с нуля часто требуется
кодировать полезную нагрузку для передачи через совместимые почтовые серверы. Это
особенно актуально для сообщений типов image/* и text/*,
содержащих двоичные данные.
Пакет email предоставляет несколько удобных кодировок в своём модуле
encoders. Эти кодировщики фактически используются конструкторами классов
MIMEAudio и MIMEImage
для предоставления кодировок по умолчанию. Все функции-кодировщики принимают
ровно один аргумент – объект сообщения для кодирования. Обычно они извлекают
полезную нагрузку, кодируют её и заменяют payload на это новое закодированное значение.
Также они должны устанавливать заголовок Content-Transfer-Encoding соответствующим образом.
Обратите внимание, что эти функции не имеют смысла для многокомпонентного сообщения. Их
следует применять к отдельным подчастям, и они вызовут исключение
TypeError, если им передать сообщение типа multipart.
Вот предоставленные функции кодирования:
-
email.encoders.encode_quopri(msg)¶ Кодирует полезную нагрузку в формат quoted-printable и устанавливает заголовок Content-Transfer-Encoding в
quoted-printable1. Это хорошая кодировка, когда большая часть полезной нагрузки – обычные печатные данные, но содержит несколько непечатаемых символов.
-
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()также кодирует все символы табуляции и пробелы в данных.