Como enviar mensagens de e-mail automatizadas em Python

Como enviar mensagens de e-mail automatizadas em Python

Embora os clientes de email comercial ofereçam a conveniência de uma GUI amigável, eles geralmente não têm a flexibilidade e personalização que muitos desenvolvedores ou criadores de conteúdo desejam para suas necessidades de email.





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





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.



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.

import smtplib

Inicializando um objeto SMTP

Agora, você pode usar 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 anteriormente se torna útil.

emailSender = senderMail@sender.com
myThroaway = 'myEmail@gmail.com'
emailRecipients = [myThroaway]

Uma coisa a ser observada aqui é que a lista de destinatários é, na verdade, uma matriz, 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 redigir 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:

assistir youtube ao mesmo tempo
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

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, o 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 tais possibilidades, você pode usar um tentar exceto bloquear e colocar as instruções sujeitas a erros dentro do Experimente bloquear. Todo o seu programa, junto com o bloco try-except, deve ser parecido com isto:

import smtplib
emailSender = senderMail@sender.com
myThroaway = ‘my_email@gmail.com’
emailRecipients = [myThroaway]
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''
try:
smtpObj = smtplib.SMTP(‘smtp.gmail.com’)
mySMTP.sendmail(emailSender, emailRecipients, newEmail)
print (Email sent successfully!)
except SMTPException:
print ('Error: There was an error in sending your email.')

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:

import smtplib, ssl
smtpServer = 'smtp.gmail.com'
port = 587
myEmail = 'my_email@gmail.com'
password = 'my_password'
#email and password can also be user input fields
context = ssl.create_default_context()
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''
try:
server = smtplib.SMTP(smtpServer,port)
server.starttls(context=context)
server.login(newEmail, password)
except Exception as e:
print('the email could not be sent.')
finally:
server.quit()

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

que versão do ubuntu eu tenho

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 desse pequeno script Python são limitados apenas por sua própria 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 !

Compartilhado Compartilhado Tweet 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

Leia a seguir
Tópicos relacionados
  • Programação
  • Gmail
  • Dicas de e-mail
  • Pitão
  • Automação de Tarefas
Sobre o autor Yash Chellani(10 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!

Clique aqui para se inscrever