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-printable. Это хорошая кодировка для использования, когда большая часть полезной нагрузки — обычные печатные символы, но она содержит несколько непечатных символов.
-
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 не устанавливается.
Примечания
© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.12/library/email.encoders.html