Como enviar email utilizando Python

Cansado de programar?

Cansado(a) de quebrar a cabeça para aprender a programar Python de verdade?

Conheça a melhor e mais completa formação de Python e Django e sinta-se um programador verdadeiramente competente. Além de Python e Django, você também vai aprender Banco de Dados, SQL, HTML, CSS, Javascript, Bootstrap e muito mais!

Quero aprender Python e Django de Verdade! Quero aprender!
Suporte

Tire suas dúvidas diretamente com o professor

Suporte

Projetos práticos voltados para o mercado de trabalho

Suporte

Formação moderna com foco na prática profissional

Salve salve Pythonista :wave:

Enviar emails é uma tarefa muito útil em várias aplicações, como envio de notificações, newsletters e mensagens automatizadas.

Felizmente, o Python oferece uma biblioteca chamada smtplib que facilita muito o envio de emails por meio do protocolo SMTP (Simple Mail Transfer Protocol).

Neste artigo, vamos explorar como enviar email no Python.

Vamos nessa!

Vá Direto ao Assunto…

Configurando o ambiente

Antes de começar a enviar emails no Python, é necessário configurar o ambiente.

Você precisa ter uma conta de email válida com as informações do seu servidor de SMTP.

Geralmente, essas informações incluem:

  • O endereço do servidor SMTP;
  • A porta de envio;
  • Suas credenciais (usuário e senha).

Por exemplo, para utilizar o GMail do Google para enviar emails, os dados serão:

  • Endereço do Servidor SMTP: smtp.google.com
  • Porta: 587
  • Seu email e senha do Google

Importando a biblioteca smtplib

O primeiro passo é importar a biblioteca smtplib para utilizar suas funcionalidades.

Para isso, basta executar o seguinte código:

1
import smtplib

Importante ressaltar que a biblioteca smtplib faz parte do próprio Python, não necessitando portanto a instalação com o pip.

Estabelecendo uma conexão com o servidor de email

Após importar a biblioteca smtplib, é necessário estabelecer uma conexão com o servidor de email.

Para isso, utilize a função smtplib.SMTP() e forneça o endereço do servidor SMTP e a porta de envio como argumentos.

Por exemplo:

1
servidor_email = smtplib.SMTP('smtp.gmail.com', 587)

No exemplo acima, estamos utilizando o servidor SMTP do Gmail e a porta de envio é a 587.

É importante verificar as informações corretas para o servidor de email que você está utilizando.

Habilitando a comunicação com o servidor de email

Após estabelecer a conexão com o servidor de email, é necessário habilitar a comunicação usando o método starttls().

Esse método inicia o modo de transporte de camada de segurança (TLS).

Veja o exemplo:

1
servidor_email.starttls()

A saída será:

1
(220, b'2.0.0 Ready to start TLS')

E aí, tá curtindo? Que tal aprender Python e Django DE VERDADE em um curso prático, voltado pro mercado?! :point_down:

Jornada Python Jornada Python

Autenticando-se no servidor de email

Após habilitar a comunicação, é necessário autenticar-se no servidor de email utilizando suas credenciais de login.

Para isso, utilize o método login() fornecendo seu usuário e senha como argumentos.

Por exemplo:

1
servidor_email.login('[email protected]', 'sua_senha')

Enviando um email

Agora que você estabeleceu uma conexão com o servidor e autenticou-se com sucesso, é possível enviar um email utilizando o método sendmail().

Esse método recebe três argumentos: o endereço de email remetente, uma lista com os endereços de email destinatários e o conteúdo do email.

Veja um exemplo:

1
2
3
4
5
remetente = '[email protected]'
destinatarios = ['[email protected]', '[email protected]']
conteudo = 'Olá, este é um email de teste.'

servidor_email.sendmail(remetente, destinatarios, conteudo)

No exemplo acima, estamos enviando um email a partir do endereço “[email protected]” para os destinatários da lista destinatarios.

O conteúdo do email é a string “Olá, este é um email de teste.”

Encerrando a conexão com o servidor de email

Após enviar o email com sucesso, é importante encerrar a conexão com o servidor de email para liberar os recursos.

Utilize o método quit() para fazer isso:

1
servidor_email.quit()

Está curtindo esse conteúdo? :thumbsup:

Que tal receber 30 dias de conteúdo direto na sua Caixa de Entrada?

Sua assinatura não pôde ser validada.
Você fez sua assinatura com sucesso.

Assine a PyDicas e receba 30 dias do melhor conteúdo Python direto na sua Caixa de Entrada: direto e sem enrolação!

Lidando com exceções

Durante o processo de envio de emails, podem ocorrer erros.

Por isso, é importante lidar com exceções para tratar possíveis problemas.

Você pode utilizar um bloco try-except para capturar exceções e realizar ações específicas em caso de erro.

Veja um exemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
try:
    servidor_email = smtplib.SMTP('smtp.gmail.com', 587)
    servidor_email.starttls()
    servidor_email.login('[email protected]', 'sua_senha')
    
    remetente = '[email protected]'
    destinatarios = ['[email protected]', '[email protected]']
    conteudo = 'Olá, este é um email de teste.'
    
    servidor_email.sendmail(remetente, destinatarios, conteudo)
except Exception as e:
    print(f"Erro ao enviar email: {e}")
finally:
    servidor_email.quit()

No exemplo acima, estamos utilizando um bloco try-except para capturar qualquer exceção que ocorrer durante o envio de emails.

Caso ocorra algum erro, o código será executado no bloco except e, em seguida, a conexão com o servidor será encerrada.

Conclusão

Neste artigo, exploramos como enviar emails usando a biblioteca smtplib do Python.

Aprendemos a estabelecer uma conexão com o servidor de email, autenticar-se, enviar um email e lidar com exceções.

Agora você tem os conhecimentos necessários para automatizar o envio de emails utilizando o Python.

Experimente essa funcionalidade em suas próximas aplicações e aproveite todos os benefícios que o envio de emails pode trazer.

Nos vemos na próxima, Pythonista :wave:

#newsletter Olá :wave: Curtiu o artigo? Então faça parte da nossa Newsletter! Privacidade Não se preocupe, respeitamos sua privacidade. Você pode se descadastrar a qualquer momento.