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 соответствующим образом.
Обратите внимание, что эти функции не имеют смысла для составных сообщений. Их необходимо применять к отдельным подчастям, а при передаче сообщения с типом multipart будет возбуждено исключение TypeError.
Вот функции кодирования, предоставляемые модулем:
-
email.encoders.encode_quopri(msg) -
Кодирует полезные данные в формате quoted-printable и устанавливает заголовок Content-Transfer-Encoding в
quoted-printable1. Это хорошее кодирование для использования, когда большая часть полезных данных — это обычные печатные символы, но содержатся некоторые непечатаемые символы.
-
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()также кодирует все символы табуляции и пробелы в данных.
© 2001–2023 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.10/library/email.encoders.html