quarta-feira, novembro 11, 2009

Envio de email autenticado e com anexo em Python

Posto abaixo um exemplo que funcionou:

# -*- coding: utf-8 -*-
import os
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email import Encoders

def enviar_correio(de, senha, smtp, para, assunto, mensagem, anexo):
 msg = MIMEMultipart()
 msg['To'] = para
 msg['Subject'] = assunto
 msg['From'] = de
 msg['Pass'] = senha
 msg['SMTP'] = smtp
 if mensagem != '':
  msg.attach(MIMEText(mensagem))
 part = MIMEBase('application', 'octet-stream')
 if anexo != '':
  part.set_payload(open(anexo, 'rb').read())
  part.add_header('Content-Disposition', 'attachment; filename="%s"' %  os.path.basename(anexo))
 msg.attach(part)
 Encoders.encode_base64(part)
 mailServer = smtplib.SMTP(msg['SMTP'], 587)
 mailServer.ehlo()
 mailServer.starttls()
 mailServer.ehlo()
 mailServer.login(msg['From'], msg['Pass'])
 mailServer.sendmail(msg['From'], para, msg.as_string())
 mailServer.close()
 print 'Correio enviado'

# exemplo para enviar correio sem mensagem e sem anexo
# enviar_correio('correio_destino@servidor.com', 'assunto', '', '')
# exemplo para enviar correio com mensagem e com anexo
# enviar_correio('correio_destino@servidor.com', 'assunto', 'mensagem', '/home/utilizador/anexo.pdf')
enviar_correio('login@dominio.com.br','senha','smtp.dominio.com.br','destino@dominio.com.br','Envio de email em Python','Aqui a mensagem do email','/caminho/arquivo.ext')

retirado de: http://eloiribeiro.wordpress.com/2009/05/25/como-enviar-um-correio-electronico-com-python/

Um comentário:

Rafael disse...

Me ajudou d+ esse post
eu queria saber também como mostrar a data de envio, vlw