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.
Сноски