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)

Кодирует полезную нагрузку в цитируемую печатную форму и устанавливает заголовок 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() также кодирует все символы табуляции и пробела в данных.

Вернуться на верх