Cyber Monday Sale 40% off unlimited courses & creative assets! 40% off unlimited assets! Save Now
Advertisement
  1. Code
  2. Python

Envio de E-mails em Python com SMTP

by
Read Time:7 minsLanguages:

Portuguese (Português) translation by André (you can also view the original English article)

Este tutorial vai te dar uma introdução sobre o SMTP, um módulo Python utilizado para enviar email. Também será demonstrado como enviar diferentes tipos de e-mails, como e-mails simples de texto, e-mails com anexo, e e-mails com conteúdo HTML.

Introdução ao SMTP

O "Simple Mail Transfer Protocol (SMTP) - ou, em tradução livre: Protocolo Simples de Transferência de Correspondência" - lida com o envio e direcionamento de e-mails entre servidores.

Em Python, o módulo smtplib define um objeto de sessão de cliente SMTP que pode ser utilizado para enviar e-mail para toda máquina conectada à Internet que possua um serviço de processamento SMTP ou ESMTP.

Aqui está como criar um objeto SMTP

Criar e enviar um E-mail Simples

O código a seguir vai te permitir enviar um e-mail via o servidor SMTP do Gmail. Entretanto, o Google, à princípio, não vai te permitir realizar o login via smtplib porque ele considera esse tipo de conexão "menos segura". Para resolver isso, vá em https://www.google.com/settings/security/lesssecureapps enquanto estiver logado na sua conta Google, e mude para "ON" a oção de "Allow less secure apps". Veja a imagem abaixo.

Create and Send a Simple EmailCreate and Send a Simple EmailCreate and Send a Simple Email

Nós vamos seguir os próximas passos a fim realizar essa tarefa:

  • Criar um objeto SMTP para conexão com o servidor.
  • Realizar o login na sua conta.
  • Definir o cabeçalho da sua mensagem e as suas credenciais para a realização do login.
  • Criar um objeto MIMEMultipart e associar a ele o cabeçalho relevante - exemplo: De:, Para:, e Assunto.
  • Associar uma mensagem ao objeto de mensagem MIMEMultipart.
  • Finalmente, enviar a mensagem.

O processo é tão simples como é mostrado abaixo.

Note que os endereços de 'To' ('Para:') e 'From' ('De:') devem ser incluídos explicitamente no cabeçalho da mensagem.

Criar e Enviar um E-mail com Anexo

Nesse exemplo, nós vamos enviar um e-mail com uma imagem em anexo. O processo é similar ao envio de e-mail simples.

  • Criar um objeto SMTP para conexão com o servidor.
  • Realizar o login na sua conta.
  • Definir o cabeçalho da sua mensagem e as suas credenciais para a realização do login.
  • Criar um objeto MIMEMultipart e associar a ele o cabeçalho relevante - exemplo: De:, Para:, e Assunto.
  • Ler e anexar a imagem à mensagem através do objeto MIMEMultipart.
  • Finalmente, enviar a mensagem.

A classe MIMEImage é uma subclasse de MIMENonMultipart que é utilizada para criar objetos MIME do tipo imagem. Outras classes disponíveis incluem
MIMEMessage e MIMEAudio.

Criar e Enviar E-mails HTML

A primeira coisa que nós vamos fazer é criar um template HTML.

Criar um Template HTML

Aqui está um código HTML para um template, e ele contem uma tabela de duas colunas com uma imagem e prévia do conteúdo em cada uma delas. Se você preferir um template profissional já pronto, escolha um dos nossos melhores templates de e-mail. Nós temos várias opções com design responsivo e de fácil customização para você começar a utilizar.

O template vai parecer com algo assim quando estiver pronto:

The HTML TemplateThe HTML TemplateThe HTML Template

Abaixo está o código para enviar um e-mail com conteúdo HTML. O conteúdo do template vai estar na nossa mensagem do e-mail.

Execute o seu código, e se não houver erros, então o e-mail terá sido enviado com sucesso. Agora vá para a sua caixa de entrada e você deve vê-lo lá, com o conteúdo HTML bem formatado.

Formatted HTML emailFormatted HTML emailFormatted HTML email

Conclusão

Esse tutorial cobriu a maior parte do que é preciso saber para enviar e-mails nas suas aplicações. Existem várias APIs disponíveis para enviar e-mail, por isso, você não precisa começar do zero - exemplo: SendGrid, mas também é importante conhecer a base. Para mais informações, visite a Documentação do Python.

Por último, não exite em conferir o que nós temos disponível para venda e para estudo na Envato Market, e por favor, envie qualquer dúvida e dê seu feedback utilizando a seção abaixo.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.