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.

Сноски