# `email.encoders`: Encoders

Вихідний код: Lib/email/encoders.py

Цей модуль є частиною застарілого (`Compat32`) API електронної пошти. У новому API функціональні можливості забезпечуються параметром cte методу `set_content()`.

Цей модуль є застарілим у Python 3. Надані тут функції не слід викликати явно, оскільки клас `MIMEText` встановлює тип вмісту та заголовок CTE за допомогою значень _subtype і _charset передана під час створення екземпляра цього класу.

Решта тексту в цьому розділі є оригінальною документацією модуля.

Під час створення об’єктів `Message` з нуля вам часто потрібно закодувати корисні дані для транспортування через сумісні поштові сервери. Особливо це стосується повідомлень типу image/* і text/*, що містять двійкові дані.

The `email` package provides some convenient encoders in its `encoders` module. These encoders are actually used by the `MIMEAudio` and `MIMEImage` class constructors to provide default encodings. All encoder functions take exactly one argument, the message object to encode. They usually extract the payload, encode it, and reset the payload to this newly encoded value. They should also set the Content-Transfer-Encoding header as appropriate.

Зауважте, що ці функції не мають значення для багатокомпонентного повідомлення. Натомість вони повинні застосовуватися до окремих підчастин і викличуть `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()` також кодує всі символи табуляції та пробілів у даних.