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:
1 2 3 4 5 6 7 8 9 | 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.