Deixo aqui uma pequena função em python para enviar correios com ou sem ficheiros em anexo. Eu costumo utilizar-la para determinados scripts que demoram muito em terminar, estando varias horas em funcionamento. Assim estando já fora do trabalho e com acesso ao correio posso saber em que estado se encontra ou se terminou com sucesso determinado script.
Nota: alterar a linhas 10 e 25 com o correio e palavra-chave correspondente. E o servidor SMTP é do gmail, só exprimentei com este. O codigo é o seguinte:
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(para, assunto, mensagem, anexo):
msg = MIMEMultipart()
msg['From'] = 'o_meu_correio@gmail.com'
msg['To'] = para
msg['Subject'] = assunto
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("smtp.gmail.com", 587)
mailServer.ehlo()
mailServer.starttls()
mailServer.ehlo()
mailServer.login(msg['From'], 'palavra-chave do teu correio')
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')