Enviar Email com Python: Automação com Outlook – Passo a Passo
Aprenda como enviar email com Python usando o Outlook, sem precisar configurar servidor ou autenticação. Tutorial completo com código e exemplos!
Enviar Email com Python – Automação
Você já quis automatizar o envio de e-mails com Python, mas achou o processo complicado por causa de servidores, portas e autenticações?
Boa notícia: isso pode ser feito com menos de 10 linhas de código — e usando o Outlook que você já tem instalado!
Neste guia, você vai aprender passo a passo como enviar e-mails automáticos com Python, anexar arquivos, incluir dados dinâmicos e criar mensagens com HTML de forma profissional e segura.
Tudo isso sem precisar configurar SMTP ou credenciais manuais. Essa é a forma mais simples e prática, especialmente para quem trabalha em ambiente corporativo.
Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:
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.
Por que Usar o Outlook para Enviar Emails com Python
Muitos tutoriais ensinam a enviar e-mails com Python via SMTP (como Gmail ou Yahoo), mas esse método exige:
- Liberação de acesso por apps menos seguros;
- Configuração de portas e certificados;
- Chaves de autenticação e permissões específicas.
Com o Outlook, tudo isso é desnecessário.
O Python aproveita a sessão já autenticada do aplicativo Outlook instalado, eliminando completamente as etapas manuais de configuração.
Vantagens da Integração Python + Outlook
Ao conectar o Python ao Outlook, você ganha:
- Facilidade: sem precisar configurar servidor, senha ou token.
- Segurança: usa as permissões e autenticações já existentes no Office.
- Compatibilidade: funciona com contas do Outlook, Hotmail e até Gmail configuradas no app.
- Automação corporativa: ideal para quem trabalha em empresas que utilizam o pacote Microsoft 365.
Se o Outlook envia manualmente, o Python também conseguirá enviar automaticamente!
Preparando o Ambiente: Instale a Biblioteca pywin32
Para que o Python se comunique com os programas do Office (como Outlook, Excel, Word), precisamos da biblioteca pywin32.
Essa biblioteca é um pacote de códigos prontos que permite ao Python interagir com os recursos do Windows.
Para instalá-la, abra o terminal (ou a linha de comando) do seu ambiente de desenvolvimento (IDE) e digite o seguinte comando:
pip install pywin32Dica: Essa biblioteca também é usada para automatizar tarefas no Excel e no Word, uma ótima aliada para quem quer criar rotinas corporativas completas.
Estrutura do Código em 3 Passos
O envio de e-mail com Python segue uma lógica simples composta por 3 etapas:
1. Importar a Biblioteca e Criar a Integração com o Outlook:
O primeiro passo é importar a biblioteca instalada e criar o objeto que representa o aplicativo Outlook.
import win32com.client as win32 # Importa a biblioteca
outlook = win32.Dispatch('Outlook.Application') # Cria o objeto Outlook2. Criar um Novo E-mail (Item):
Em seguida, pedimos ao objeto Outlook para criar um novo item, que, no contexto, é uma nova mensagem de e-mail.
email = outlook.CreateItem(0) # 0 indica que é uma nova mensagem de e-mail3. Enviar o E-mail:
Após configurar a mensagem, o comando final é simples:
email.Send()
print("E-mail Enviado")Com essas três etapas, o Python já consegue se comunicar com o Outlook e enviar mensagens.
Agora, vamos configurar o conteúdo desse e-mail.
Configurando o E-mail: Destinatários, Assunto e Corpo
Entre o passo 2 e o passo 3, precisamos definir as configurações básicas do e-mail. Você fará isso através das propriedades do objeto email que criamos.
| Propriedade | Função | Exemplo |
email.To | Endereço(s) do(s) destinatário(s). | "email1@exemplo.com.br; email2@exemplo.com.br" |
email.Subject | Assunto do e-mail. | "Relatório Automático do Python" |
email.HTMLBody | O corpo do e-mail (usaremos HTML para formatação). | Veja a próxima seção. |

Como enviar o e-mail para mais de um destinatário?
Para enviar o e-mail para múltiplos destinatários, basta separá-los com um ponto e vírgula (;) dentro da mesma string do email.To.
email.To = "destinatario1@empresa.com; destinatario2@empresa.com"Personalizando o Corpo do E-mail com HTML e Dados Dinâmicos
A propriedade email.HTMLBody aceita código HTML, permitindo criar mensagens com formatação (parágrafos, negrito, cores etc.). Isso nos permite criar um e-mail mais completo e personalizado.
Como formatar o corpo do e-mail?
Para escrever o corpo da mensagem, usamos o recurso de Triple Quotes (""") do Python, que permite escrever textos longos em múltiplas linhas, e usamos tags HTML básicas, como a tag <p> (parágrafo).
- Use aspas triplas (
""") no início e fim do corpo do e-mail. - Use a tag
<p>no início do seu parágrafo e</p>no final.
Exemplo de formatação básica:
email.HTMLBody = f"""
<p>Olá Lira, aqui é o código Python</p>
<p>O faturamento da loja foi de R$1.500</p>
<p>Vendemos 10 produtos</p>
<p>O ticket Médio foi de R$150</p>
<p>Abs,</p>
"""
Como Inserir Dados Dinâmicos (Variáveis) dentro do e-mail?
Você pode incluir informações calculadas diretamente no corpo do e-mail usando f-strings do Python.
- Basta adicionar um
fminúsculo antes das aspas triplas. - Coloque a variável que você deseja dentro de chaves (
{ }).
faturamento = 1500
quantidade_produtos = 10
ticket_medio = faturamento / quantidade_produtos
email.HTMLBody = f"""
<p>Olá,</p>
<p>O faturamento da loja foi de **R$ {faturamento}**.</p>
<p>A quantidade de produtos vendidos foi de **{quantidade_produtos}** e o tíquete médio de **R$ {ticket_medio}**.</p>
<p>Atenciosamente,</p>
"""Isso permite enviar mensagens personalizadas automaticamente, sem alterar o código a cada envio.
Anexando Arquivos e Enviando
Se seu relatório estiver em uma planilha ou PDF, você pode anexá-lo facilmente, mas precisará do caminho completo do arquivo.
Como anexar um arquivo no e-mail?
Você deve usar o método email.Attachments.Add(), passando o caminho completo (local no seu computador) do arquivo.
caminho_anexo = r"C:\Users\SeuUsuario\Downloads\relatorio.xlsx"
# O 'r' antes das aspas garante que o caminho seja lido corretamente
email.Attachments.Add(caminho_anexo)Você pode adicionar quantos anexos quiser repetindo o método.
Enviando o E-mail com Python
Com todas as configurações feitas, é só chamar o comando email.Send() para disparar sua automação!
Código Completo da Automação - Enviar Email com Python
import win32com.client as win32
# criar a integração com o outlook
outlook = win32.Dispatch('outlook.application')
# criar um email
email = outlook.CreateItem(0)
faturamento = 1500
qtde_produtos = 10
ticket_medio = faturamento / qtde_produtos
# configurar as informações do seu e-mail
email.To = "pythonimpressionador@gmail.com; pythonimpressionador+lira@gmail.com"
email.Subject = "E-mail automático do Python"
email.HTMLBody = f"""
<p>Olá Lira, aqui é o código Python</p>
<p>O faturamento da loja foi de R${faturamento}</p>
<p>Vendemos {qtde_produtos} produtos</p>
<p>O ticket Médio foi de R${ticket_medio}</p>
<p>Abs,</p>
<p>Código Python</p>
"""
# anexo = "C://Users/joaop/Downloads/arquivo.xlsx"
# email.Attachments.Add(anexo)
email.Send()
print("Email Enviado")Conclusão - Enviar E-mail com Python
Agora você aprendeu como enviar e-mails automáticos com Python e Outlook de forma prática, rápida e segura sem precisar configurar SMTP.
Essa automação é perfeita para:
- Enviar relatórios diários ou semanais automaticamente;
- Notificar equipes de vendas e resultados;
- Automatizar comunicações internas em empresas;
- Criar alertas e lembretes personalizados.
Dominar esse tipo de automação é o primeiro passo para automatizar rotinas corporativas completas com Python — e integrar ferramentas como Excel, Power BI e Gmail.
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
FAQ – Perguntas Frequentes
1. Como enviar e-mails automáticos com Python de forma simples?
A maneira mais fácil é usar o Outlook já instalado no computador. Com a biblioteca pywin32, o Python consegue acessar sua conta do Outlook e enviar mensagens automáticas sem precisar configurar servidor SMTP ou autenticação manual.
2. Preciso de servidor SMTP para enviar e-mails com Python?
Não, se você usar o Outlook. O Python se conecta diretamente ao aplicativo por meio da integração com win32com, aproveitando a conta já logada. Isso elimina o uso de portas, senhas e certificados.
3. Como enviar e-mails com anexos no Python?
Basta usar o método email.Attachments.Add() e informar o caminho completo do arquivo.
4. Posso personalizar o corpo do e-mail com HTML no Python?
Sim! Use a propriedade email.HTMLBody com tags HTML, como <p> e <b>, para criar mensagens formatadas. Assim, é possível incluir cores, parágrafos e até informações dinâmicas com variáveis do Python.
5. É possível enviar e-mails automáticos em segundo plano com Python?
Sim. Por padrão, o envio ocorre diretamente pelo Outlook, sem precisar abrir a janela de composição. O comando email.Send() dispara a mensagem automaticamente, tornando a automação rápida e discreta.
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.








