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
.
Здесь представлены функции кодирования:
- 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.
Сноски