Como enviar email com assunto ou conteúdo UTF-8 em Python

image_pdfimage_print

Esta dica servirá tanto para aqueles que usam Python2 ou Python3, desde que utilizem a biblioteca smtplib e email.

Para enviar um email utilizando UTF-8, basta retirar sua forma direta e padrão de criar o conteúdo a ser enviado e substituir pelo código abaixo:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

#Para criar a mensagem, utilize este formato
msg = MIMEMultipart("alternative")
msg["Subject"] = "ASSUNTO_AQUI"
msg.attach( MIMEText("MENSAGEM_UTF8_A_SER_ENVIADA_AQUI", "plain", "utf-8" ) )
msg = msg.as_string().encode('ascii')

E pronto. Bastaria utilizar o msg em sua função de envio de email, que no caso é provavelmente server.sendmail(from, to, msg), e seu email com conteúdo UTF-8 será enviado.

Caso queira saber como enviar email usando Python e smtplib, vá até este link de exemplo que utiliza o Gmail.

Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!