# `email.encoders`: Encoders

Código fuente: Lib/email/encoders.py

Este módulo forma parte de la anterior API de correo electrónico (`Compat32`). En la nueva API, la funcionalidad la proporciona el parámetro cte del método `set_content()`.

Este módulo está obsoleto en Python 3. Las funciones que aparecen aquí no deberían ser llamadas explícitamente ya que la clase `MIMEText` establece el tipo de contenido y el encabezado CTE utilizando los valores del _subtype y del _charset que se pasan cuando se instancia esa clase.

El texto que viene a continuación corresponde a la documentación original del módulo.

Cuando se crean objetos `Message` desde 0, a menudo se necesita codificar el contenido del mensaje para transportarlo a través de servidores de correo electrónico adecuados. Esto es así especialmente para el tipo de mensajes image/* y text/* que contienen datos binarios.

El paquete `email` proporciona algunos codificadores adecuados en su módulo `encoders`. Estos codificadores son en realidad utilizados por los constructores de las clases `MIMEAudio` y `MIMEImage` para proporcionar codificadores por defecto. Todas las funciones de codificación tienen exactamente un argumento, el mensaje a codificar. Normalmente extraen el contenido, lo codifican y borran el contenido para introducir el nuevo contenido codificado. También deberían marcar el encabezado Content-Transfer-Encoding como apropiado.

Ten en cuenta que estas funciones no sirven para un mensaje con múltiples partes. En lugar de aplicarlo al mensaje completo, las funciones deben aplicarse a cada subparte individual. Si se pasa un mensaje de múltiples partes como argumento se activara un mensaje de error `TypeError`.

A continuación, una lista de las funciones de codificación facilitadas:

email.encoders.encode_quopri(msg)

  Codifica el contenido en formularios entrecomillados e imprimibles y marca el encabezado Content-Transfer-Encoding como `quoted-printable` [1]. Es un buen codificador para usar cuando la mayoría del contenido son datos imprimibles normales pero hay algún dato que no es imprimible.

email.encoders.encode_base64(msg)

  Codifica el contenido en un formulario base64 y marca el encabezado Content-Transfer-Encoding como `base64`. Esta codificación es buena cuando la mayoría del contenido son datos no imprimibles ya que es un formulario más compacto que formularios entrecomillados e imprimibles. La desventaja es que incluye el texto que no es leíble por los humanos.

email.encoders.encode_7or8bit(msg)

  Esto, en realidad, no modifica el contenido del mensaje, pero fija el encabezado Content-Transfer-Encoding a `7bit` u `8bit`, lo que considere más adecuado en función del contenido del mensaje.

email.encoders.encode_noop(msg)

  Esto no hace nada; ni siquiera fija el encabezado Content-Transfer-Encoding.

Notas

[1]

El codificado con `encode_quopri()` también codifica todas las tabulaciones y caracteres de espacios en los datos.