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:

Codigo
pip install pywin32

Dica: 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.

Python
import win32com.client as win32 # Importa a biblioteca
outlook = win32.Dispatch('Outlook.Application') # Cria o objeto Outlook

2. 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.

Python
email = outlook.CreateItem(0) # 0 indica que é uma nova mensagem de e-mail

3. Enviar o E-mail:

Após configurar a mensagem, o comando final é simples:

Python
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.

Ícone PythonPython Impressionador

Você vai aprender a linguagem de Programação que mais cresce no Mundo para fazer automações incríveis, desenvolver sites, fazer análises de dados, trabalhar com Ciência de Dados, Inteligência Artificial, mesmo que você nunca tenha tido nenhum contato com Programação na vida.

Começar agoraSeta para a direita
Fundo PythonTelas Python
Luz Python

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.

PropriedadeFunçãoExemplo
email.ToEndereço(s) do(s) destinatário(s)."email1@exemplo.com.br; email2@exemplo.com.br"
email.SubjectAssunto do e-mail."Relatório Automático do Python"
email.HTMLBodyO corpo do e-mail (usaremos HTML para formatação).Veja a próxima seção.
captura da parte do código que serve para definir as configurações básicas do e-mail

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.

Python
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).

  1. Use aspas triplas (""") no início e fim do corpo do e-mail.
  2. Use a tag <p> no início do seu parágrafo e </p> no final.

Exemplo de formatação básica:

Python
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>
"""
captura da parte do código que formata o corpo do email

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.

  1. Basta adicionar um f minúsculo antes das aspas triplas.
  2. Coloque a variável que você deseja dentro de chaves ({ }).
Python
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.

Python
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

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!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Posts mais recentes de Python

Posts mais recentes da Hashtag Treinamentos