email.encoders
: кодировщики¶
Данный модуль является частью устаревшего API электронной почты (Compat32
).
В новом 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
. Это хорошая кодировка для использования, когда большая часть полезной нагрузки представляет собой непечатаемые данные, поскольку это более компактная форма, чем закавыченная-печать. Недостатком кодировки base64 является то, что она делает текст нечитаемым человеком.
-
email.encoders.
encode_7or8bit
(msg)¶ На самом деле это не изменяет полезную нагрузку сообщения, но устанавливает для заголовка Content-Transfer-Encoding значение
7bit
или8bit
в зависимости от данных полезной нагрузки.
-
email.encoders.
encode_noop
(msg)¶ Ничего не делает; он даже не устанавливает заголовок Content-Transfer-Encoding.
Сноски
[1] | Обратите внимание, что кодирование с помощью encode_quopri()
также кодирует все табуляции и пробелы символов в данных. |