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