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 для обеспечения кодировок по умолчанию. Все функции кодировщика принимают только один аргумент - объект message для кодирования. Обычно они извлекают полезную нагрузку, кодируют ее и возвращают полезную нагрузку к этому новому закодированному значению. Они также должны соответствующим образом устанавливать заголовок 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. Это хорошая кодировка для использования, когда большая часть полезной нагрузки представляет собой непечатаемые данные, поскольку это более компактная форма, чем для печати в кавычках. Недостатком кодировки base64 является то, что она делает текст нечитаемым для человека.

email.encoders.encode_7or8bit(msg)

На самом деле это не изменяет полезную нагрузку сообщения, но устанавливает для заголовка Content-Transfer-Encoding значение либо 7bit, либо 8bit в зависимости от данных полезной нагрузки.

email.encoders.encode_noop(msg)

Это ничего не дает; он даже не устанавливает заголовок Content-Transfer-Encoding.

Сноски

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