Embora os clientes de e-mail comercial ofereçam a conveniência de uma interface de usuário amigável, muitas vezes eles não têm o flexibilidade e personalização que muitos desenvolvedores ou criadores de conteúdo desejam para seus e-mails precisa.

Seja para enviar um e-mail de agradecimento a um novo assinante em seu canal de mídia social ou adicionar a funcionalidade de e-mail para seu projeto mais recente, a capacidade de enviar mensagens automatizadas usando SMTP em Python é algo que certamente virá acessível.

Continue lendo para descobrir como você pode fazer com que um script Python envie e-mails rodando em sua máquina hoje.

O que é SMTP?

Simplificando, SMTP, ou Simple Mail Transfer Protocol, é um protocolo de comunicação para servidores de correio para transmitir e-mail pela Internet.

É parte integrante da camada de aplicação do pacote TCP / IP, que é um conjunto de protocolos usados ​​para comunicação pela Internet ou outras redes semelhantes. Em uma rede onde o SMTP é implementado, um processo conhecido como armazenar e encaminhar ajuda a mover o correio entre as redes.

instagram viewer

Em cada terminal, o software conhecido como Mail Transfer Agent (MTA) usa armazenamento e encaminhamento para facilitar a comunicação entre os servidores SMTP participantes. A principal função do SMTP, portanto, é simplesmente ditar onde e como o e-mail se move de um ponto a outro em uma rede.

Começando

Você precisa ter uma conta de e-mail para enviar e-mails usando este programa. Isso ocorre porque usaremos o serviço SMTP do cliente de e-mail para enviar e-mails. Para este tutorial, usaremos o Gmail.

Você também pode usar um servidor de depuração SMTP local para enviar e-mails de teste, mas por enquanto usaremos uma conta de e-mail para enviar e-mails, pois é mais intuitivo.

É possível simplesmente usar uma conta existente do Gmail, mas à medida que você brinca com seu programa, ele pode logo ficar cheio de e-mails de teste. É por isso que recomendamos a criação de uma conta "descartável" para fins de teste.

Agora, ative a opção de permitir aplicativos menos seguros para acessar sua conta do Gmail. Este é outro motivo para usar um e-mail descartável, pois não é recomendável brincar com as configurações de privacidade do seu e-mail principal.

Escrevendo o e-mail em Python

O Python 3 vem pré-instalado com um módulo chamado smtplib (abreviação de biblioteca smtp), que pode ser usado para trabalhar com servidores SMTP.

Como qualquer outro módulo Python, a primeira coisa que você precisa fazer é importar smtplib.

importar smtplib

Inicializando um objeto SMTP

Agora, você pode usar o smtplib para criar um objeto SMTP, que fornecerá a maioria das funcionalidades de um cliente de e-mail convencional. No entanto, as funções de um objeto SMTP só podem ser usadas por meio de métodos de instância. Então, naturalmente, o próximo passo é declarar uma instância do objeto.

mySMTP = smtplib. SMTP ("smtp.google.com") 

Isso configura o objeto SMTP para enviar e-mails usando o servidor SMTP do Google.

Depois disso, especificamos os e-mails do remetente e do destinatário. É aqui que a conta do Gmail que você criou antes é útil.

emailSender = “[email protected]
meuThroaway = "[email protected]"
emailRecipients = [myThroaway]

Algo a ser observado aqui é que a lista de destinatários é, na verdade, um array, o que significa que foi projetada para armazenar valores não atômicos. Como resultado, você pode até especificar uma lista de e-mails inteira neste campo!

Escrevendo a Mensagem

Provavelmente a parte mais direta do processo, aqui você tem que inserir valores que normalmente adicionaria ao compor um novo e-mail. Isso inclui:

  • Detalhes do remetente
  • Detalhes do destinatário
  • Sujeito
  • Corpo da mensagem

Esses campos são colocados entre aspas triplas e são demarcados da seguinte forma:

newEmail = De: De Pessoa 
Para: Para Pessoa
Assunto: Teste de Email
Este é o corpo do e-mail.

Enviando o e-mail

Finalmente, podemos usar o comando sendmail para enviar o e-mail do seu servidor SMTP para o servidor do destinatário.

mySMTP.sendmail (emailSender, emailRecipients, newEmail)

Agora, há apenas uma etapa final: reorganizar o código para evitar travamentos previsíveis do programa.

Solução de problemas de seu programa de e-mail Python

Às vezes, seu servidor SMTP pode falhar ao estabelecer uma conexão com o do destinatário ou pode haver um problema com o envio de um e-mail de uma porta SMTP para outra. Nesse caso, seu programa pode travar inesperadamente.

Para contabilizar essas possibilidades, você pode usar um tentar exceto bloquear e colocar as instruções sujeitas a erros dentro do tentar quadra. Todo o seu programa, junto com o bloco try-except, deve ser parecido com isto:

importar smtplib
emailSender = “[email protected]
myThroaway = ‘[email protected]
emailRecipients = [myThroaway]
newEmail = De: De Pessoa
Para: Para Pessoa
Assunto: Teste de Email
Este é o corpo do e-mail.

tentar:
smtpObj = smtplib. SMTP (‘smtp.gmail.com’)
mySMTP.sendmail (emailSender, emailRecipients, newEmail)
imprimir (“Email enviado com sucesso!”)
exceto SMTPException:
print ("Erro: ocorreu um erro ao enviar seu e-mail.")

Protegendo seus e-mails

Se você pretende usar Python em uma configuração do mundo real para enviar e-mails, é importante certificar-se de que a comunicação seja segura em ambas as extremidades.

Usar um servidor SMTP simples com a porta padrão não fornece nenhuma camada de criptografia para a comunicação. Isso significa que, se qualquer terceiro estiver ouvindo em sua rede, ele poderá acessar suas credenciais de login e as informações contidas em seu e-mail.

Uma maneira de contornar esse problema é usar o protocolo TLS (Transport Layer Security) para criptografar sua comunicação. Este é o mesmo protocolo usado pelos principais clientes de e-mail, como Gmail e Outlook, para garantir que seus e-mails nunca caiam nas mãos erradas.

Para fazer isso, precisamos fazer algumas pequenas alterações no programa que criamos anteriormente.

A primeira etapa, é claro, é importar o ssl biblioteca junto com smtplib. O ssl A biblioteca oferece a capacidade de criar um contexto SSL seguro e se comunicar por meio de uma rede criptografada, conectando-se a portas específicas em ambas as extremidades.

Um contexto SSL seguro nada mais é do que uma coleção de cifras, versões de protocolo, certificados confiáveis, opções TLS e extensões TLS.

Em seguida, podemos especificar a porta TLS e adicionar alguns ssl funções de biblioteca para criar um emailer seguro.

O código, com todas as alterações feitas, é semelhante a este:

importar smtplib, ssl
smtpServer = "smtp.gmail.com"
porta = 587
meuEmail = "[email protected]"
senha = "minha_senha"
#email e senha também podem ser campos de entrada do usuário
context = ssl.create_default_context ()
newEmail = De: De Pessoa
Para: Para Pessoa
Assunto: Teste de Email
Este é o corpo do e-mail.

tentar:
servidor = smtplib. SMTP (smtpServer, porta)
server.starttls (context = context)
server.login (newEmail, senha)
exceto exceção como e:
imprimir ("o e-mail não pôde ser enviado.")
finalmente:
server.quit ()

Como antes, você deve criar e usar a instância SMTP em um bloco try-except para evitar travamentos abruptos do programa.

O que você pode fazer com este script Python

Agora que você adquiriu a habilidade incrível e surpreendentemente útil de automatizar e-mails usando código, pode aplicá-la a qualquer plataforma que requeira o envio de e-mails para uma lista de mala direta diversificada.

Desde usá-lo em seu site pessoal para enviar e-mails de confirmação automatizados até usá-lo para enviar cartões de Natal ou convites para sua família e amigos, os usos deste pequeno script Python são limitados apenas pelo seu criatividade.

Além disso, essa é apenas uma das muitas coisas incríveis que você pode fazer com Python. Com seu suporte de desenvolvedor onipresente e sintaxe fácil de aprender, aprender uma habilidade em Python nunca foi tão fácil.

Para continuar criando coisas legais com código, confira nosso guia sobre como construa seu próprio bot do Telegram com Python 3!

O email
Como atualizar suas habilidades em Python e IA com Keras, Pytorch, Tensorflow e muito mais

Atualize suas habilidades de programação e desenvolvimento web em Python, Inteligência Artificial, Keras, PyTorch e muito mais

Tópicos relacionados
  • Programação
  • Gmail
  • Dicas de e-mail
  • Pitão
  • Automação de Tarefas
Sobre o autor
Yash Chellani (8 artigos publicados)

Yash é um aspirante a estudante de ciência da computação que adora construir coisas e escrever sobre todas as coisas relacionadas à tecnologia. Em seu tempo livre, ele gosta de jogar Squash, ler uma cópia do último Murakami e caçar dragões em Skyrim.

Mais de Yash Chellani

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Mais um passo…!

Confirme o seu endereço de e-mail no e-mail que acabamos de enviar.

.