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-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.
Сноски
Эта страница – перевод. Оригинал на английском – docs.python.org. Нашли неточность? Сообщите нам.