domingo, 21 de dezembro de 2014

Hoje trazemos um exemplo de um script em Python que enviar automaticamente um e-mail (via Gmail) dado que uma determinada tarefa é completada. A biblioteca que contém as funções desta tarefa é a smtplib. Este módulo criar uma sessão de um objeto cliente SMTP que é então utilizado para o envio da mensagem, via o listener SMTP do Gmail ('smtp.gmail.com:587'). Em nosso exemplo, vamos criar a função alertaEmail que receberá como parâmetro a mensagem que queremos enviar.

#Importa o smtplib
import smtplib

 #Cria a função de envio  
 def alertaEmail(msg):  
  fromaddr = 'seuemail@gmail.com'  
  toaddrs = 'destinatario@email.com.br'  
  msg = msg  
  username = 'seuUsername'  
  password = 'suaSenha'  
  server = smtplib.SMTP('smtp.gmail.com:587')  
  server.starttls()  
  server.login(username,password)  
  server.sendmail(fromaddr,toaddrs,msg)  
  server.quit()  
 #envia uma mensagem teste  
 msg = "Teste - Email Python"  
 alertaEmail(msg)  

Veja que enviando um e-mail utilizando a função exatamente neste formato fará com que nossa mensagem chegue "sem assunto" e sem informações sobre o remetente e destinatário. O corpo do e-mail conterá a mensagem "Teste - Email Python".

Podemos customizar o envio, adicionando informações mais detalhada sobre o remetente, incluindo um assunto e também enviando o e-mail com o seu conteúdo em formato HTML. Para isso, a única alteração necessária é customizar o conteúdo da variável msg. Por exemplo:

 msg = """From: Monitor seu@gmail.com>  
 To: Cliente <management@artedosdados.com.br>  
 MIME-Version: 1.0  
 Content-type: text/html  
 Subject: Teste  
 <div align="center"><p><b>Welcome "USER"! This is your requested report.</b></p></div>  
 """  

Agora, temos novos parâmetros dentro da variável. Começamos com a customização do remetente (From) onde colocamos a palavra Monitor antes do e-mail enviado. Ela será o que aparecerá como nome no e-mail. O mesmo raciocínio é válido para o To, onde podemos, por exemplo, inserir o nome do cliente antes do seu e-mail. Na sequência, parametrizamos o corpo do e-mail como sendo um HTML, definimos o assunto em Suject e depois temos o corpo do e-mail propriamente dito.

Lembre-se que em qualquer um destes campos podem ser passados variáveis de algum outro script que você esteja trabalhando. Por exemplo, você pode monitorar as notícias via script que ensinamos no post Construindo um RSS Reader com o Python e MongoDB e, cada vez que encontrar uma notícia com um assunto do seu interesse, utilizar isso como gatilho para o envio do e-mail utilizando a função alertaEmail() mostrada no post de hoje.

Um abraço e até o próximo!



0 comentários:

Postar um comentário