Enviando email com Python e SMTP

O envio de emails é a melhor forma para se comunicar com os usuários de uma aplicação. Além de ser gratuito (na maioria das vezes), é seguro e muito utilizado em todo o mundo.

Pensando nisso, veremos neste artigo como enviar e-mails em aplicações Python utilizando SMTP.

Configurando servidor gmail

Em nosso exemplo, veremos como enviar um email utilizando o serviço do gmail (pois ele é o mais utilizado no mundo). Porém, antes de iniciar o desenvolvimento do nosso projeto, precisamos criar um token para ser utilizado como password, caso você utilize o recurso de autenticação em duas etapas (recurso que só permite que seu usuário seja autenticado caso você o libere em seu smartphone) ou não quer que sua senha seja utilizada em aplicações não seguras.

Criando token

Para criar um token que será utilizado como senha em nossa aplicação, precisamos ir até o seguinte link: https://security.google.com/settings/security/apppasswords.

Na página, vamos selecionar a opção “Outro” para definir um nome para nosso projeto. Em seguida, determinamos o nome da aplicação e geramos o token:

Ao clicar em “GERAR”, seremos redirecionados para a tela de login da nossa conta. Ao inserir o email e senha, clicamos em “Próxima” e nosso token será gerado com sucesso:

É essa “senha de app” que vamos utilizar para autenticar com nosso gmail na aplicação (lembre-se de copiá-la).

Criando script para envio de email

Nosso script será bem simples. Basicamente, vamos informar o email e senha (conforme gerada no tópico anterior) da conta que será usada para enviar o email, o destinatário e o conteúdo do email. Sendo assim, o código final será o seguinte:

import smtplib

server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
server.login("seu_email@gmail.com", "senha_gerada_topico_anterior")
server.sendmail(
  "remetente@gmail.com",
  "destinatario@gmail.com",
  "Conteúdo da mensagem")
server.quit()

Basicamente, o código acima irá criar uma conexão com o serviço de SMTP do gmail por meio da porta 456, realizar o login com as credenciais do usuário e enviar o email conforme os parâmetros enviados pelo método sendmail(). Ao concluir o processo, finalizamos o servidor e o email deve chegar no destinatário.

Sendo assim, ao executar o código acima (você pode utilizar qualquer editor de texto, IDE ou terminal), o email será enviado com sucesso, chegando até o destinatário:

Conclusão

Neste artigo vimos o quão simples é enviar um email utilizando Python. Claro que há várias melhorias que podemos fazer (adicionar o assunto do email, enviar um código HTML como conteúdo do email), mas isso nós veremos em um outro artigo 🙂

Deixe seu comentário

Professor na TreinaWeb e graduando em Sistemas de Informação pelo Instituto Federal da Bahia. Apaixonado por desenvolvimento web, desktop e mobile desde os 12 anos de idade. Já utilizou todos os sistemas operacionais possíveis, mas hoje se contenta com o OSX instalado em seu notebook Samsung. Até passou em uma peneira do Cruzeiro, mas preferiu estudar Python.