As emocionantes aventuras de um sysadmin linux na procura pelo uptime perfeito!

Python: Chega de enviar email sem acento!

Posted: agosto 7th, 2007 | Author: coredump | Filed under: Programação | Tags: ,

Então, quem já escreveu um script Bash ou mesmo PHP já entendeu os problemas que acontecem ao tentar enviar acentos e arquivos, sem contar tentar montar uma mensagem HTML para enviar via email.

Felizmente Python já tem a solução:

from email.MIMEText import MIMEText
from email.Header import Header

texto = “Um texto qualquer com acentos a ser enviado.”
mensagem = MIMEText(texto)
remetente = ‘endereco@dequem.envia’
destino = ‘endereco@dequem.recebe’

# Eu sempre uso utf-8, mas pode ser qualquer charset

mensagem.set_charset(‘utf-8′)
assunto = Header(‘Assunto com acentos’, ‘utf-8′)
mensagem['Subject'] = assunto
mensagem['From'] = remetente
mensagem['To'] = destino

E pronto. Você consegue uma cópia prontinha en ascii da mensagem para colocar como corpo do seu email usando mensagem.as_string(), pode ser usando inclusive no método sendmail da classe smtplib.SMTP (que é o ideal).

Para fazer uma mensagem HTML basta criar uma mensagem Multipart e adicionar um MIME de HTML e quem sabe de imagens. Mais informações e exemplo em: http://docs.python.org/lib/node162.html

Python comanda.

intel

Compartilhe:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
  • Identi.ca
  • Twitter

Posts relacionados:

  1. Como funciona a parada da Gestão da Porta 25 Baseado nesse post do br-linux e nas dúvidas do povo...
  2. CherryPy Session e message queue Tem vezes que eu faço umas coisas que eu acho...
  3. Meus Projetos Parados Costumo plagiar meu amigo Bruno lá de Divinópolis: “Eu tenho...
  4. (quase) Trocando o Prism por um script de 60 linhas Quase, mas quase mesmo. O Prism é o antigo xulrunner...
  5. Trac Hacks Indispensáveis Então, eu uso bastante o trac como gerenciador de projetos....

2 Comments »

2 Comments on “Python: Chega de enviar email sem acento!”

  1. 1 Cesar Cardoso said at 20:51 on agosto 11th, 2007:

    Python comanda de qualquer jeito. :)

  2. 2 Ataliba said at 17:19 on janeiro 28th, 2009:

    Quanto mais eu me enveredo nos caminhos do Python, eu concordo com o Cesar .. Python realmente comanda :-)


Leave a Reply