Python IMAP:=? Utf-8? Q? en la secuencia del sujeto
email character-encoding (2)
Estoy mostrando un nuevo correo electrónico con IMAP
, y todo se ve bien, a excepción de un tema del mensaje que se muestra como:
=?utf-8?Q?Subject?=
¿Cómo puedo arreglarlo?
En la terminología MIME, esos fragmentos codificados se denominan palabras codificadas. Puedes decodificarlos así:
import email.Header
text, encoding = email.Header.decode_header(''=?utf-8?Q?Subject?='')[0]
Consulte los documentos por email.Header
. email.Header
para obtener más detalles.
Esta es una palabra codificada MIME. Puedes analizarlo con email.header
:
import email.header
def decode_mime_words(s):
return u''''.join(
word.decode(encoding or ''utf8'') if isinstance(word, bytes) else word
for word, encoding in email.header.decode_header(s))
print(decode_mime_words(u''=?utf-8?Q?Subject=c3=a4?=X=?utf-8?Q?=c3=bc?=''))