email.encoders: Codificadores

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 (deprecated) 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.