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