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