Como Enviar e-mails em Massa com Python e SendGrid Twilio
Você sabia que é possível enviar e-mails em massa com Python usando o SendGrid da Twilio? Aprenda o passo a passo necessário!
Para enviar e-mails em massa com Python, uma opção robusta é o SendGrid (da Twilio): crie uma conta, gere uma chave de API, instale a biblioteca com pip install sendgrid e envie as mensagens pelo código, percorrendo sua lista de destinatários. O SendGrid cuida da entrega, ajuda a evitar a caixa de spam e oferece relatórios de aberturas e cliques.
Se quiser pode acompanhar esse conteúdo em formato de vídeo ou pode acessar o nosso Canal do YouTube para mais vídeos!
O que você aprende neste vídeo
Resposta rápida: Nesta aula, o instrutor ensina a enviar e-mails em massa com Python usando o SendGrid (Twilio), a ferramenta que empresas como Uber, Spotify e Airbnb usam. Ele mostra o passo a passo: criar a conta e verificar o remetente (single sender), instalar e importar a biblioteca do SendGrid, montar e disparar o e-mail para vários destinatários e autenticar o domínio para melhorar a entrega.
Neste vídeo (22 min):
- 0:00 - Enviar e-mails em massa com Python usando o SendGrid (Twilio).
- 3:00 - Criar a conta e verificar o remetente (single sender verification).
- 6:00 - Instalar e importar a biblioteca do SendGrid.
- 12:00 - Montar e disparar o e-mail para vários destinatários.
- 18:00 - Autenticar o domínio para melhorar a entrega dos e-mails.
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.
O que você vai ver hoje?
Como Enviar e-mails em Massa com Python e SendGrid Twilio
O envio de e-mails em massa é uma ferramenta importante para empresas que desejam se comunicar de forma eficaz e rápida com seus clientes. Automatizar esse processo é essencial para garantir escalabilidade e eficiência.
Hoje, vou te mostrar como enviar e-mails em massa com Python usando a integração entre Twilio e SendGrid, uma abordagem amplamente utilizada por empresas como Uber e Spotify.
Você aprenderá a lógica de envio, como criar sua chave de API, além de todas as etapas de verificação necessárias para garantir o bom funcionamento da automação.
Também vou falar sobre boas práticas para aumentar as chances de seus e-mails não irem parar na caixa de spam do usuário.
O que é o SendGrid Twilio?
Existem várias formas de integrar Python com sistemas de e-mail e criar automações para o envio automático. Porém, esse tipo de integração é geralmente usado para um número limitado de e-mails.
Temos uma aula na Hashtag que ensina esse tipo de automação: Envio de E-mail com Python – Automação no Python
No entanto, se seu objetivo é realizar um envio em massa, será necessário um serviço especializado, como Twilio SendGrid ou Postmark. Ambos oferecem planos gratuitos e garantem que os e-mails cheguem à caixa de entrada dos destinatários.
Para este exemplo, usaremos o SendGrid Twilio devido à qualidade e clareza da documentação, que inclui exemplos detalhados de todo o processo. Confira a documentação aqui: Twilio SendGrid Doc

O SendGrid Twilio é uma plataforma de envio de e-mails da Twilio, utilizada por empresas como Uber, Spotify e Airbnb.
Ela oferece recursos poderosos e eficientes para o envio de e-mails transacionais e campanhas de marketing em grande escala.
Assim como outras APIs da Twilio, o SendGrid possui uma interface simples e uma API robusta, facilitando a integração com diversas aplicações e permitindo o envio de milhares de e-mails com rapidez e segurança.
Veja também: Como Enviar SMS com Python - Passo a Passo com Twilio
Criando e Configurando uma Conta no SendGrid Twilio
Para usar o SendGrid, você precisa criar uma conta gratuita no site da plataforma. Esse processo é rápido e simples.
A plataforma oferece um plano gratuito que permite o envio de até 100 e-mails por dia, ideal para testar as capacidades da API.
Após criar sua conta, você terá acesso ao dashboard da ferramenta. Se for seu primeiro acesso, verá uma mensagem de boas-vindas solicitando que crie uma identificação de remetente (Create sender identity).

Ao clicar, você será levado à página para configurar a verificação de remetente (Single Sender Verification).

Preencha com seus dados ou os dados do e-mail da empresa que será utilizado.
Dica importante: Evite usar um domínio gratuito como Gmail ou Hotmail, pois isso reduz a credibilidade dos seus e-mails e aumenta as chances de irem para a caixa de spam. Se sua empresa tiver um domínio próprio, é recomendado utilizá-lo.
Feito isso, clique em Email API e acesse a opção Integration Guide, onde você encontrará o guia de integração da API do SendGrid ao seu código Python.

Integrando o SendGrid com Python – Instalando a Biblioteca
A API do SendGrid pode ser integrada ao Python de duas maneiras: por meio de requisições padrão, utilizando a biblioteca requests, ou pela biblioteca própria do SendGrid, que é o método que usaremos.
Para instalar a biblioteca, basta usar o seguinte comando no terminal: pip install sendgrid
Essa biblioteca simplifica o processo de conexão com a API do SendGrid, permitindo o envio de e-mails diretamente pelo Python de forma rápida e prática.
Configurando sua Chave da API
Para enviar e-mails, sua conta precisa ser autenticada pela API. Esse processo é feito com uma chave de API que garante um acesso único. Essa chave pode ser obtida dentro da página do SendGrid.
Para isso, acesse o Integration Guide do SendGrid, clique em Choose abaixo de Web API e selecione Python como a linguagem de programação.

Isso levará você a uma tela com os pré-requisitos e o guia de integração da API.
Entre as primeiras opções, haverá um campo para você preencher com o nome da sua chave de API e clicar em Create Key.


Certifique-se de armazenar sua chave de API com segurança e não compartilhá-la com outras pessoas.
Uma boa prática é armazená-la em variáveis de ambiente no seu sistema, em vez de incluí-la diretamente no código.
Saiba mais sobre variáveis de ambiente aqui: Variáveis de Ambiente no Python – O que São e Como Usá-las?
Código Python Para Enviar E-mails em Massa com SendGrid
Agora que o ambiente está configurado, podemos escrever o código Python responsável pelo envio dos e-mails.
Vamos começar importando as duas classes essenciais do SendGrid que nos permitirão criar e enviar os e-mails:
- SendGridAPIClient: Esta classe é responsável por se conectar à API do SendGrid e enviar as requisições de e-mail.
- Mail: A classe Mail é utilizada para criar a estrutura do e-mail, ou seja, definir o remetente, destinatário, assunto e conteúdo.
from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import MailEm seguida, vamos definir a chave da API do SendGrid. Neste exemplo, eu vou demonstrar usando a chave diretamente no código, mas lembre-se de que essa prática não é a mais recomendada em termos de segurança.
Veja a aula sobre Variáveis de Ambiente para aprender como lidar com isso de forma segura.
from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail
chave_api_sendgrid = "sua_chave_api"Feito isso, podemos criar uma instância do cliente usando a classe SendGridAPIClient, que receberá a chave da API para autenticar as requisições. A instância será armazenada no objeto conta_sendgrid, que será responsável por enviar os e-mails.
from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail
chave_api_sendgrid = "sua_chave_api"
conta_sendgrid = SendGridAPIClient(chave_api_sendgrid)Agora, vamos criar o nosso e-mail e definir todos os seus detalhes, utilizando a classe Mail.
Dentro dessa classe vamos definir os argumentos necessários para estruturar um e-mail básico:
- from_email: O endereço de e-mail do remetente, cadastrado na plataforma Twilio.
- to_emails: O destinatário do e-mail. Pode ser um único endereço ou uma lista de e-mails.
- subject: O assunto do e-mail enviado.
- html_content: O conteúdo do e-mail, escrito em HTML, permitindo o uso de links, imagens, botões e formatações especiais.
from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail
chave_api_sendgrid = "sua_chave_api"
conta_sendgrid = SendGridAPIClient(chave_api_sendgrid)
email = Mail(from_email="seuremetente@gmail.com", to_emails='seu_destinatario@hotmail.com',
subject="Email enviado pelo Sendgrid no Python",
html_content="<p>Email enviado com sucesso, seja bem vindo</p><p>Abraços e até o próximo e-mail.</p>")Uma vez que o e-mail foi configurado, só resta enviá-lo. Para isso, usamos o método send() da instância SendGridAPIClient que criamos (conta_sendgrid).
from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail
chave_api_sendgrid = "sua_chave_api"
conta_sendgrid = SendGridAPIClient(chave_api_sendgrid)
email = Mail(from_email="seuremetente@gmail.com", to_emails='seu_destinatario@hotmail.com',
subject="Email enviado pelo Sendgrid no Python",
html_content="<p>Email enviado com sucesso, seja bem vindo</p><p>Abraços e até o próximo e-mail.</p>")
resposta = conta_sendgrid.send(email)Esse código envia o e-mail e retorna uma resposta com os detalhes da operação, que podemos imprimir no terminal para monitorar. Por exemplo, podemos exibir os códigos de status da resposta (status_code).
from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail
chave_api_sendgrid = "sua_chave_api"
conta_sendgrid = SendGridAPIClient(chave_api_sendgrid)
email = Mail(from_email="seuremetente@gmail.com", to_emails='seu_destinatario@hotmail.com',
subject="Email enviado pelo Sendgrid no Python",
html_content="<p>Email enviado com sucesso, seja bem vindo</p><p>Abraços e até o próximo e-mail.</p>")
resposta = conta_sendgrid.send(email)
print(resposta.status_code)
Esse código de status nos informa se o e-mail foi enviado com sucesso ou se houve algum erro. Por exemplo, o código 202 significa que o e-mail foi enviado com sucesso.
Recomendo que você faça o primeiro envio para um e-mail de teste, para garantir que todo o processo esteja funcionando como esperado.

Saiba mais sobre os códigos de status HTTP: Códigos de Status HTTP – Explicação Completa
Monitorar o Envio dos E-mails
Uma funcionalidade muito interessante fornecida pelo SendGrid é a possibilidade de acompanhar e visualizar os resultados dos envios de e-mails diretamente no painel da plataforma.

Nesse painel, você pode monitorar diversas informações relacionadas aos e-mails enviados, como:
- Taxa de Entrega: Quantos e-mails foram enviados e entregues com sucesso.
- Taxa de Abertura: Quantos e-mails foram abertos pelos destinatários.
- Taxa de Cliques: Quantos cliques em links foram registrados nos e-mails enviados.
A partir dessas métricas, você pode analisar o sucesso e a eficácia das campanhas de e-mail marketing da sua empresa.
Boas Práticas para Garantir que os E-mails Sejam Entregues
Existem diversas práticas para o envio de e-mail marketing que aumentam a probabilidade de seus e-mails serem entregues corretamente aos usuários. Algumas sugestões que o próprio SendGrid recomenda são:
- Usar Domínio Próprio: A utilização de um domínio de e-mail próprio, em vez de serviços gratuitos como Gmail, reduz as chances de o e-mail ser identificado como spam.
- Configurações de Autenticação de Domínio: Configure autenticações como Single Sender Verification, DNS e DMARC para validar que seus e-mails e domínios são legítimos.
- Evite Anexos Pesados: Para envios em massa, evite anexar arquivos grandes. É mais eficiente compartilhar links que redirecionam para os arquivos (por exemplo, hospedados no Google Drive ou Dropbox).
Recursos Avançados com SendGrid
Você também pode combinar o SendGrid com recursos e funcionalidades avançadas, como:
- Modelos de E-mail: Crie templates de e-mails dinâmicos que permitem a personalização de conteúdo com variáveis, tornando suas campanhas de e-mail mais direcionadas e eficientes.
- Automação de E-mails: Crie fluxos automáticos para enviar e-mails transacionais, como confirmações de pedidos, ou configure campanhas recorrentes.
É importante verificar a documentação do SendGrid e os preços dos planos disponíveis na plataforma para encontrar a opção que melhor se encaixa nas suas necessidades de envio em massa.
Perguntas frequentes
1. Como enviar e-mails em massa com Python?
Use um serviço de envio como o SendGrid: gere uma chave de API, instale a biblioteca sendgrid (pip install sendgrid) e percorra sua lista de contatos enviando a mensagem para cada um. O serviço cuida da entrega e da reputação do remetente.
2. Por que usar SendGrid em vez de SMTP comum?
Enviar muitos e-mails por SMTP comum costuma esbarrar em limites e cair em spam. O SendGrid é feito para volume: gerencia reputação de IP, autenticação (SPF, DKIM), filas de envio e relatórios, aumentando a taxa de entrega das mensagens.
3. É possível enviar e-mails grátis com o SendGrid?
O SendGrid oferece um plano gratuito com um limite diário de envios, suficiente para testes e pequenos volumes. Para grandes campanhas, há planos pagos por faixa de envio. A integração com Python é a mesma em todos eles.
4. Como evitar que os e-mails caiam em spam?
Configure a autenticação do domínio (SPF, DKIM e DMARC), use uma lista de contatos que optaram por receber, evite palavras de spam no assunto e mantenha uma boa reputação de envio. Serviços como o SendGrid facilitam essas configurações.
Conclusão – Como Enviar e-mails em Massa com Python e SendGrid Twilio
Na aula de hoje, mostrei como enviar e-mails em massa com Python e SendGrid. Esse é um processo simples, mas muito poderoso e escalável para qualquer empresa que queira melhorar a comunicação com seus clientes de forma eficiente.
A plataforma do SendGrid é uma das opções disponíveis para esse serviço e oferece uma maneira clara, segura e fácil de integrar a API com o código Python.
A automação do envio de e-mails pode economizar tempo e ampliar a comunicação da sua empresa, desde que você siga as boas práticas de verificação e segurança para garantir a entrega eficaz dos seus e-mails.
Com poucos ajustes no código aprendido hoje, você pode escalar o envio de e-mails da sua empresa de forma confiável e eficiente, monitorando os resultados pela própria plataforma do SendGrid.
E caso você queira aprender a construir uma automação completa com Python a partir do zero, conheça o nosso Minicurso Gratuito de Automação com Python.
Hashtag Treinamentos
Para acessar outras publicações de Python, clique aqui!
Posts mais recentes de Python
- Curso Básico de Python: Saia do Zero em 10 Aulas GrátisAprenda com o curso básico de Python gratuito da Hashtag: 10 aulas práticas, exercícios e projetos reais para sair do zero em programação.
- Agentes RAG com Python: como criar um assistente de IAAprenda a criar Agentes RAG com Python do zero: LangChain, FAISS e OpenAI para montar um assistente de IA que responde com base nos seus documentos.
- 25 Tipos de Gráficos em Python: Guia Completo com CódigoAprenda a criar os principais tipos de gráficos em Python com Plotly: barras, pizza, mapas e mais, com código pronto para copiar e usar.
Posts mais recentes da Hashtag Treinamentos
- Planilha de Controle de Notas Fiscais no Excel [Grátis]Baixe a planilha de controle de notas fiscais no Excel grátis: calcule ISS e retenções, veja o que está em aberto e gere a cobrança de cada nota de serviço.
- Qual IA usar na empresa: ChatGPT, Claude ou Perplexity?Qual IA usar na empresa: veja as diferenças entre ChatGPT, Claude e Perplexity e quando cada um rende mais em cada área da sua equipe.
- Apostilas Gratuitas em PDF: Excel, Power BI, Python e IABaixe apostilas gratuitas em PDF de Excel, Power BI, Python, Claude e agentes de IA, com exercícios e gabarito. Escolha a sua e comece hoje.








